summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.txt397
-rw-r--r--academic/Gridcoin-Research/Gridcoin-Research.SlackBuild2
-rw-r--r--academic/Gridcoin-Research/Gridcoin-Research.info6
-rw-r--r--academic/Gridcoin-Research/README4
-rw-r--r--academic/R/R.SlackBuild2
-rw-r--r--academic/R/R.info6
-rw-r--r--academic/bcftools/bcftools.SlackBuild6
-rw-r--r--academic/bcftools/bcftools.info6
-rw-r--r--academic/cadabra2/cadabra2.SlackBuild2
-rw-r--r--academic/cadabra2/cadabra2.info6
-rw-r--r--academic/copasi/copasi.SlackBuild2
-rw-r--r--academic/copasi/copasi.info10
-rw-r--r--academic/fet/fet.SlackBuild2
-rw-r--r--academic/fet/fet.info6
-rw-r--r--academic/nco/nco.SlackBuild2
-rw-r--r--academic/nco/nco.info6
-rw-r--r--academic/pspp/pspp.SlackBuild2
-rw-r--r--academic/pspp/pspp.info6
-rw-r--r--academic/samtools/samtools.SlackBuild12
-rw-r--r--academic/samtools/samtools.info6
-rw-r--r--academic/smath-studio/smath-studio.SlackBuild2
-rw-r--r--academic/smath-studio/smath-studio.desktop2
-rw-r--r--academic/smath-studio/smath-studio.info6
-rw-r--r--academic/stellarsolver/stellarsolver.info8
-rw-r--r--audio/ardour/ardour.SlackBuild10
-rw-r--r--audio/ardour/ardour.info6
-rw-r--r--audio/ardour/libxml2-2.12-fix.patch53
-rw-r--r--audio/ardour/vendor_qm-dsp.patch37
-rw-r--r--audio/audacity/audacity.SlackBuild8
-rw-r--r--audio/audacity/audacity.info10
-rw-r--r--audio/lxmusic/0001-Use-themed-icon.patch49
-rw-r--r--audio/lxmusic/README4
-rw-r--r--audio/lxmusic/lxmusic.SlackBuild14
-rw-r--r--audio/lxmusic/lxmusic.appdata.xml21
-rw-r--r--audio/openvino-plugins-ai-audacity/README16
-rw-r--r--audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.SlackBuild158
-rw-r--r--audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.info20
-rw-r--r--audio/openvino-plugins-ai-audacity/slack-desc19
-rw-r--r--audio/rack/rack.SlackBuild2
-rw-r--r--audio/rack/rack.info6
-rw-r--r--audio/yabridge/yabridge.info2
-rw-r--r--desktop/BlockstreamGreen/BlockstreamGreen.SlackBuild2
-rw-r--r--desktop/BlockstreamGreen/BlockstreamGreen.info6
-rw-r--r--desktop/Matcha-gtk-theme/Matcha-gtk-theme.SlackBuild4
-rw-r--r--desktop/Matcha-gtk-theme/Matcha-gtk-theme.info6
-rw-r--r--desktop/adapta-gtk-theme/README15
-rw-r--r--desktop/adapta-gtk-theme/adapta-gtk-theme.SlackBuild113
-rw-r--r--desktop/adapta-gtk-theme/adapta-gtk-theme.info10
-rw-r--r--desktop/adapta-gtk-theme/doinst.sh15
-rw-r--r--desktop/adapta-gtk-theme/slack-desc19
-rw-r--r--desktop/arc-theme/arc-theme.SlackBuild50
-rw-r--r--desktop/arc-theme/arc-theme.info12
-rw-r--r--desktop/buku/buku.SlackBuild18
-rw-r--r--desktop/buku/buku.info6
-rw-r--r--desktop/dunst/dunst.SlackBuild4
-rw-r--r--desktop/dunst/dunst.info8
-rw-r--r--desktop/durden/durden.info2
-rw-r--r--desktop/dwmblocks/dwmblocks.SlackBuild4
-rw-r--r--desktop/dwmblocks/dwmblocks.info6
-rw-r--r--desktop/e16.theme.pack/e16.theme.pack.SlackBuild5
-rw-r--r--desktop/e16.theme.pack/e16.theme.pack.info2
-rw-r--r--desktop/gtklock-playerctl-module/gtklock-playerctl-module.SlackBuild4
-rw-r--r--desktop/gtklock-playerctl-module/gtklock-playerctl-module.info6
-rw-r--r--desktop/gtklock-powerbar-module/gtklock-powerbar-module.SlackBuild4
-rw-r--r--desktop/gtklock-powerbar-module/gtklock-powerbar-module.info6
-rw-r--r--desktop/gtklock-userinfo-module/gtklock-userinfo-module.SlackBuild4
-rw-r--r--desktop/gtklock-userinfo-module/gtklock-userinfo-module.info6
-rw-r--r--desktop/gtklock/gtklock.SlackBuild41
-rw-r--r--desktop/gtklock/gtklock.info8
-rw-r--r--desktop/libqtxdg/libqtxdg.SlackBuild4
-rw-r--r--desktop/libqtxdg/libqtxdg.info6
-rw-r--r--desktop/lxappearance-obconf/lxappearance-obconf.SlackBuild9
-rw-r--r--desktop/lxappearance/README6
-rw-r--r--desktop/lxappearance/lxappearance.SlackBuild34
-rw-r--r--desktop/lxpanel/README6
-rw-r--r--desktop/lxpanel/lxpanel.SlackBuild19
-rw-r--r--desktop/lxpanel/lxpanel.info2
-rw-r--r--desktop/mwm-utils/mwm-utils.SlackBuild7
-rw-r--r--desktop/mwm-utils/mwm-utils.info4
-rw-r--r--desktop/neutrality-cursor-theme/README4
-rw-r--r--desktop/neutrality-cursor-theme/neutrality-cursor-theme.SlackBuild72
-rw-r--r--desktop/neutrality-cursor-theme/neutrality-cursor-theme.info10
-rw-r--r--desktop/neutrality-cursor-theme/slack-desc19
-rw-r--r--desktop/nwg-displays/nwg-displays.SlackBuild4
-rw-r--r--desktop/nwg-displays/nwg-displays.info6
-rw-r--r--desktop/nwg-panel/nwg-panel.SlackBuild2
-rw-r--r--desktop/nwg-panel/nwg-panel.info6
-rw-r--r--desktop/nwg-shell-config/nwg-shell-config.SlackBuild2
-rw-r--r--desktop/nwg-shell-config/nwg-shell-config.info6
-rw-r--r--desktop/nwg-shell/nwg-shell.SlackBuild4
-rw-r--r--desktop/nwg-shell/nwg-shell.info6
-rw-r--r--desktop/nwg-shell/slackware.diff (renamed from desktop/nwg-shell/defaults.patch)174
-rw-r--r--desktop/oomox/oomox.SlackBuild23
-rw-r--r--desktop/oomox/oomox.info8
-rw-r--r--desktop/oomox/slack-desc2
-rw-r--r--desktop/papirus-icon-theme/doinst.sh.gzbin672890 -> 680359 bytes
-rw-r--r--desktop/papirus-icon-theme/papirus-icon-theme.SlackBuild4
-rw-r--r--desktop/papirus-icon-theme/papirus-icon-theme.info6
-rw-r--r--desktop/waybar/waybar.info2
-rw-r--r--desktop/wlsunset/wlsunset.SlackBuild4
-rw-r--r--desktop/wlsunset/wlsunset.info6
-rw-r--r--development/Bear/Bear.SlackBuild3
-rw-r--r--development/Bear/Bear.info8
-rw-r--r--development/Bear/fcc90e43eebe9250abeeb81aab429053864da325.patch34
-rw-r--r--development/OpenCL-CLHPP/OpenCL-CLHPP.SlackBuild (renamed from perl/perl-Test-Script/perl-Test-Script.SlackBuild)70
-rw-r--r--development/OpenCL-CLHPP/OpenCL-CLHPP.info10
-rw-r--r--development/OpenCL-CLHPP/README1
-rw-r--r--development/OpenCL-CLHPP/slack-desc (renamed from libraries/lua-readline/slack-desc)22
-rw-r--r--development/acpica/acpica.SlackBuild4
-rw-r--r--development/acpica/acpica.info6
-rw-r--r--development/avrdude/avrdude.SlackBuild2
-rw-r--r--development/avrdude/avrdude.info6
-rw-r--r--development/aws-cdk/aws-cdk.SlackBuild2
-rw-r--r--development/aws-cdk/aws-cdk.info6
-rw-r--r--development/bluefish/bluefish.SlackBuild2
-rw-r--r--development/bluefish/bluefish.info6
-rw-r--r--development/composer/composer.SlackBuild2
-rw-r--r--development/composer/composer.info6
-rw-r--r--development/edb-debugger/edb-debugger.SlackBuild8
-rw-r--r--development/edb-debugger/edb-debugger.info6
-rw-r--r--development/eovim/eovim.info2
-rw-r--r--development/gdb-dashboard/gdb-dashboard.SlackBuild12
-rw-r--r--development/gdb-dashboard/gdb-dashboard.info6
-rw-r--r--development/github-cli/github-cli.SlackBuild2
-rw-r--r--development/github-cli/github-cli.info10
-rw-r--r--development/gitlab-cli/gitlab-cli.SlackBuild2
-rw-r--r--development/gitlab-cli/gitlab-cli.info18
-rw-r--r--development/gsoap/gsoap.SlackBuild4
-rw-r--r--development/gsoap/gsoap.info6
-rw-r--r--development/heroku-cli/heroku-cli.SlackBuild4
-rw-r--r--development/heroku-cli/heroku-cli.info6
-rw-r--r--development/hhvm/README59
-rw-r--r--development/hhvm/doinst.sh20
-rw-r--r--development/hhvm/etc/php.ini1
-rw-r--r--development/hhvm/etc/rc.hhvm163
-rw-r--r--development/hhvm/etc/server.ini9
-rw-r--r--development/hhvm/hhvm.SlackBuild209
-rw-r--r--development/hhvm/hhvm.info40
-rw-r--r--development/hhvm/patches/0001-liburing.patch37
-rw-r--r--development/hhvm/patches/0002-download.patch247
-rw-r--r--development/hhvm/patches/0003-iquote.patch18
-rw-r--r--development/hhvm/slack-desc19
-rw-r--r--development/hipSYCL/hipSYCL.SlackBuild20
-rw-r--r--development/hipSYCL/hipSYCL.info6
-rw-r--r--development/inform/inform.info2
-rw-r--r--development/jdk11/README7
-rw-r--r--development/jdk11/jdk11.SlackBuild9
-rw-r--r--development/jdk11/jdk11.info6
-rw-r--r--development/jupyter-nbconvert/jupyter-nbconvert.SlackBuild2
-rw-r--r--development/jupyter-nbconvert/jupyter-nbconvert.info6
-rw-r--r--development/jupyter_server_terminals/jupyter_server_terminals.SlackBuild16
-rw-r--r--development/jupyter_server_terminals/jupyter_server_terminals.info6
-rw-r--r--development/kForth-32/kForth-32.info2
-rw-r--r--development/kForth-64/kForth-64.info8
-rw-r--r--development/kdiff3/kdiff3.info2
-rw-r--r--development/liberica-jdk-bin/liberica-jdk-bin.SlackBuild18
-rw-r--r--development/liberica-jdk-bin/liberica-jdk-bin.csh3
-rw-r--r--development/liberica-jdk-bin/liberica-jdk-bin.sh3
-rw-r--r--development/mold/mold.SlackBuild2
-rw-r--r--development/mold/mold.info6
-rw-r--r--development/mongodb-compass/mongodb-compass.SlackBuild2
-rw-r--r--development/mongodb-compass/mongodb-compass.info6
-rw-r--r--development/mongodb-shell/mongodb-shell.SlackBuild2
-rw-r--r--development/mongodb-shell/mongodb-shell.info6
-rw-r--r--development/oneTBB/oneTBB.SlackBuild2
-rw-r--r--development/openjdk7/openjdk7.info8
-rw-r--r--development/openjdk8/README3
-rw-r--r--development/openjdk8/openjdk8.info8
-rw-r--r--development/protoc-gen-go/protoc-gen-go.SlackBuild2
-rw-r--r--development/protoc-gen-go/protoc-gen-go.info6
-rw-r--r--development/pylint/pylint.SlackBuild7
-rw-r--r--development/rust16/rust16.SlackBuild4
-rw-r--r--development/rust16/rust16.info14
-rw-r--r--development/sqlcl/sqlcl.SlackBuild16
-rw-r--r--development/sqlcl/sqlcl.info6
-rw-r--r--development/sqldeveloper/sqldeveloper.SlackBuild4
-rw-r--r--development/sqldeveloper/sqldeveloper.info8
-rw-r--r--development/textadept/textadept.SlackBuild6
-rw-r--r--development/textadept/textadept.info14
-rw-r--r--development/uftrace/uftrace.SlackBuild4
-rw-r--r--development/uftrace/uftrace.info6
-rw-r--r--development/valgrind/valgrind.SlackBuild2
-rw-r--r--development/valgrind/valgrind.info6
-rw-r--r--development/vscode-bin/vscode-bin.SlackBuild4
-rw-r--r--development/vscode-bin/vscode-bin.info6
-rw-r--r--development/whisper.cpp/README16
-rw-r--r--development/whisper.cpp/slack-desc19
-rw-r--r--development/whisper.cpp/whisper.cpp.SlackBuild113
-rw-r--r--development/whisper.cpp/whisper.cpp.info10
-rw-r--r--development/xmake/xmake.SlackBuild2
-rw-r--r--development/xmake/xmake.info6
-rw-r--r--games/Mindustry/Mindustry.SlackBuild21
-rw-r--r--games/Mindustry/Mindustry.info6
-rw-r--r--games/Mindustry/Mindustry.pngbin0 -> 13869 bytes
-rw-r--r--games/PrismLauncher/PrismLauncher.SlackBuild2
-rw-r--r--games/PrismLauncher/PrismLauncher.info6
-rw-r--r--games/PrismLauncher/README11
-rw-r--r--games/PyLotRO/HTTPSConnectionFix.patch22
-rw-r--r--games/PyLotRO/PyLotRO.SlackBuild86
-rw-r--r--games/PyLotRO/PyLotRO.info10
-rw-r--r--games/PyLotRO/README11
-rw-r--r--games/PyLotRO/doinst.sh3
-rw-r--r--games/ags/ags.SlackBuild2
-rw-r--r--games/ags/ags.info6
-rw-r--r--games/atari_8bit_utils/README90
-rw-r--r--games/atari_8bit_utils/atari_8bit_utils.SlackBuild117
-rw-r--r--games/atari_8bit_utils/atari_8bit_utils.info10
-rw-r--r--games/atari_8bit_utils/slack-desc19
-rw-r--r--games/boosteroid/boosteroid.info2
-rw-r--r--games/ddnet/ddnet.SlackBuild5
-rw-r--r--games/ddnet/ddnet.info6
-rw-r--r--games/dwarffortress/dwarffortress.SlackBuild16
-rw-r--r--games/dwarffortress/dwarffortress.info6
-rw-r--r--games/dwarffortress/slack-desc2
-rw-r--r--games/freeciv/freeciv.SlackBuild4
-rw-r--r--games/freeciv/freeciv.info6
-rw-r--r--games/gzdoom/README6
-rw-r--r--games/gzdoom/gzdoom.info8
-rw-r--r--games/lbreakouthd/lbreakouthd.SlackBuild2
-rw-r--r--games/lbreakouthd/lbreakouthd.info6
-rw-r--r--games/melonds/melonds.info8
-rw-r--r--games/openttd/openttd.SlackBuild2
-rw-r--r--games/openttd/openttd.info6
-rw-r--r--games/planetblupi/planetblupi.SlackBuild2
-rw-r--r--games/planetblupi/planetblupi.info6
-rw-r--r--games/quakespasm/quakespasm.SlackBuild7
-rw-r--r--games/quakespasm/quakespasm.info6
-rw-r--r--games/scid_vs_pc/scid_vs_pc.info2
-rw-r--r--games/wesnoth/wesnoth.SlackBuild2
-rw-r--r--games/wesnoth/wesnoth.info6
-rw-r--r--games/xemu/xemu.info8
-rw-r--r--games/zsnes/zsnes.info2
-rw-r--r--gis/eccodes/eccodes.SlackBuild2
-rw-r--r--gis/eccodes/eccodes.info6
-rw-r--r--gis/gpxsee/doinst.sh7
-rw-r--r--gis/gpxsee/gpxsee.SlackBuild2
-rw-r--r--gis/gpxsee/gpxsee.info6
-rw-r--r--gis/osgEarth/osgEarth.info2
-rw-r--r--gis/saga-gis/README25
-rw-r--r--gis/saga-gis/saga-gis.SlackBuild20
-rw-r--r--gis/saga-gis/saga-gis.info6
-rw-r--r--graphics/Blender/Blender.SlackBuild9
-rw-r--r--graphics/Blender/overloaded_min.diff51
-rw-r--r--graphics/FSPViewer/FSPViewer.SlackBuild6
-rw-r--r--graphics/FSPViewer/FSPViewer.info2
-rw-r--r--graphics/XnViewMP/XnViewMP.info2
-rw-r--r--graphics/converseen/converseen.SlackBuild4
-rw-r--r--graphics/converseen/converseen.info6
-rw-r--r--graphics/gimp-wideangle-plugin/gimp-wideangle-plugin.SlackBuild4
-rw-r--r--graphics/graphviz/graphviz.SlackBuild2
-rw-r--r--graphics/graphviz/graphviz.info6
-rw-r--r--graphics/hugin/boost-1.85.0-patch.gzbin0 -> 388 bytes
-rw-r--r--graphics/hugin/hugin.SlackBuild6
-rw-r--r--graphics/qcustomplot/qcustomplot.info2
-rw-r--r--graphics/ueberzugpp/ueberzugpp.info2
-rw-r--r--graphics/veles/README2
-rw-r--r--graphics/veles/veles.SlackBuild9
-rw-r--r--graphics/veles/veles.info2
-rw-r--r--graphics/wine-nine-standalone/wine-nine-standalone.info2
-rw-r--r--ham/cm256cc/cm256cc.SlackBuild4
-rw-r--r--ham/cm256cc/cm256cc.info6
-rw-r--r--ham/dab_lib/dab_lib.SlackBuild14
-rw-r--r--ham/dab_lib/dab_lib.info6
-rw-r--r--ham/libsigmf/libsigmf.SlackBuild4
-rw-r--r--ham/libsigmf/libsigmf.info8
-rw-r--r--ham/mbelib/mbelib.SlackBuild9
-rw-r--r--ham/mbelib/mbelib.info6
-rw-r--r--ham/qlog/qlog.SlackBuild2
-rw-r--r--ham/qlog/qlog.info10
-rw-r--r--ham/satdump/satdump.SlackBuild2
-rw-r--r--ham/satdump/satdump.info6
-rw-r--r--ham/sdrangel/README2
-rw-r--r--ham/sdrangel/sdrangel.SlackBuild5
-rw-r--r--ham/sdrangel/sdrangel.info6
-rw-r--r--ham/sgp4/sgp4.SlackBuild12
-rw-r--r--ham/sgp4/sgp4.info6
-rw-r--r--libraries/CLI11/CLI11.SlackBuild2
-rw-r--r--libraries/CLI11/CLI11.info6
-rw-r--r--libraries/ell/README2
-rw-r--r--libraries/ell/ell.SlackBuild109
-rw-r--r--libraries/ell/ell.info10
-rw-r--r--libraries/ell/slack-desc19
-rw-r--r--libraries/goffice/goffice.SlackBuild18
-rw-r--r--libraries/goffice/goffice.info6
-rw-r--r--libraries/goffice/import-ryu97
-rw-r--r--libraries/goffice/patches/NEWS.patch11
-rw-r--r--libraries/goffice/patches/configure.ac.patch29
-rw-r--r--libraries/goffice/patches/go-dtoa.c.patch19
-rw-r--r--libraries/goffice/patches/go-ryu.c.patch204
-rw-r--r--libraries/goffice/patches/go-ryu.h.patch12
-rw-r--r--libraries/grpc/grpc.SlackBuild5
-rw-r--r--libraries/grpc/grpc.info6
-rw-r--r--libraries/gtk-session-lock/README5
-rw-r--r--libraries/gtk-session-lock/gtk-session-lock.SlackBuild111
-rw-r--r--libraries/gtk-session-lock/gtk-session-lock.info10
-rw-r--r--libraries/gtk-session-lock/slack-desc19
-rw-r--r--libraries/htslib/htslib.SlackBuild2
-rw-r--r--libraries/htslib/htslib.info6
-rw-r--r--libraries/libbass/libbass.info2
-rw-r--r--libraries/libbassmidi/libbassmidi.info2
-rw-r--r--libraries/libbpg/README4
-rw-r--r--libraries/libbpg/libbpg.SlackBuild21
-rw-r--r--libraries/libbpg/libbpg.info8
-rw-r--r--libraries/libcpuid/libcpuid.SlackBuild2
-rw-r--r--libraries/libcpuid/libcpuid.info6
-rw-r--r--libraries/libfabric/changelog4
-rw-r--r--libraries/libfabric/libfabric.SlackBuild3
-rw-r--r--libraries/libfabric/libfabric.info6
-rw-r--r--libraries/libfaketime/libfaketime.SlackBuild4
-rw-r--r--libraries/libfaketime/libfaketime.info6
-rw-r--r--libraries/libfm/README8
-rw-r--r--libraries/libfm/libfm.SlackBuild25
-rw-r--r--libraries/libgusb/libgusb.SlackBuild4
-rw-r--r--libraries/libgusb/libgusb.info6
-rw-r--r--libraries/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch22
-rw-r--r--libraries/libheif/libheif.SlackBuild4
-rw-r--r--libraries/libliftoff/libliftoff.SlackBuild6
-rw-r--r--libraries/libliftoff/libliftoff.info2
-rw-r--r--libraries/libqtpas/changelog4
-rw-r--r--libraries/libqtpas/libqtpas.SlackBuild4
-rw-r--r--libraries/libqtpas/libqtpas.info4
-rw-r--r--libraries/librepfunc/librepfunc.SlackBuild2
-rw-r--r--libraries/librepfunc/librepfunc.info6
-rw-r--r--libraries/libtecla/libtecla.SlackBuild4
-rw-r--r--libraries/libtorch-cxx11-abi-shared-with-deps/README4
-rw-r--r--libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.info10
-rw-r--r--libraries/libtorch-cxx11-abi-shared-with-deps/slack-desc19
-rw-r--r--libraries/libxmlb/libxmlb.SlackBuild6
-rw-r--r--libraries/libxmlb/libxmlb.info8
-rw-r--r--libraries/lua-readline/README5
-rw-r--r--libraries/lua-readline/lua-readline.SlackBuild109
-rw-r--r--libraries/lua-readline/lua-readline.info10
-rw-r--r--libraries/lxqt-build-tools/lxqt-build-tools.SlackBuild2
-rw-r--r--libraries/lxqt-build-tools/lxqt-build-tools.info2
-rw-r--r--libraries/lxqt-qtplugin/lxqt-qtplugin.SlackBuild4
-rw-r--r--libraries/lxqt-qtplugin/lxqt-qtplugin.info6
-rw-r--r--libraries/mimalloc/mimalloc.SlackBuild2
-rw-r--r--libraries/mimalloc/mimalloc.info6
-rw-r--r--libraries/nng/nng.SlackBuild2
-rw-r--r--libraries/nng/nng.info6
-rw-r--r--libraries/opencl-amd/opencl-amd.info4
-rw-r--r--libraries/openvdb/openvdb.info8
-rw-r--r--libraries/openvino/README9
-rw-r--r--libraries/openvino/openvino.SlackBuild181
-rw-r--r--libraries/openvino/openvino.info20
-rw-r--r--libraries/openvino/slack-desc19
-rw-r--r--libraries/pcl/pcl.SlackBuild4
-rw-r--r--libraries/pcl/pcl.info6
-rw-r--r--libraries/pytorch/README3
-rw-r--r--libraries/pytorch/pytorch.SlackBuild134
-rw-r--r--libraries/pytorch/pytorch.info10
-rw-r--r--libraries/pytorch/slack-desc (renamed from games/PyLotRO/slack-desc)22
-rw-r--r--libraries/rapidjson/fix-build-on-gcc7.diff13
-rw-r--r--libraries/rapidjson/rapidjson.SlackBuild24
-rw-r--r--libraries/rapidjson/rapidjson.info12
-rw-r--r--libraries/rapidjson/slack-desc2
-rw-r--r--libraries/scafacos/scafacos.SlackBuild4
-rw-r--r--libraries/spdlog/spdlog.SlackBuild4
-rw-r--r--libraries/spdlog/spdlog.info8
-rw-r--r--libraries/tclws/tclws.info2
-rw-r--r--libraries/td_lib/td_lib.SlackBuild13
-rw-r--r--libraries/yascreen/yascreen.SlackBuild4
-rw-r--r--libraries/yascreen/yascreen.info6
-rw-r--r--misc/bitwarden-desktop/bitwarden-desktop.SlackBuild2
-rw-r--r--misc/bitwarden-desktop/bitwarden-desktop.info6
-rw-r--r--misc/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild2
-rw-r--r--misc/par2cmdline-tbb/par2cmdline-tbb.info2
-rw-r--r--misc/sigrok-firmware-fx2lafw/patches/00-fx2lafw__silence_integer_overflow_compile_warnings.patch26
-rw-r--r--misc/sigrok-firmware-fx2lafw/patches/01-fx2lib__Update___interrupt_syntax_for_sdcc_4.2.3.patch575
-rw-r--r--misc/sigrok-firmware-fx2lafw/patches/02-fx2lafw__Update___interrupt_syntax_for_sdcc_4.2.3.patch108
-rw-r--r--misc/sigrok-firmware-fx2lafw/patches/03-fx2lafw__Update___at_syntax_for_sdcc_4.2.3.patch300
-rw-r--r--misc/sigrok-firmware-fx2lafw/patches/04-fx2lib_fix_SDCC_warning_283.patch686
-rw-r--r--misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.SlackBuild23
-rw-r--r--misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.info2
-rw-r--r--misc/yubioath-desktop/yubioath-desktop.SlackBuild5
-rw-r--r--misc/yubioath-desktop/yubioath-desktop.info6
-rw-r--r--multimedia/droidcam/droidcam.SlackBuild7
-rw-r--r--multimedia/droidcam/droidcam.info6
-rw-r--r--multimedia/intel-media-driver/intel-media-driver.info8
-rw-r--r--multimedia/kodi/kodi.info2
-rw-r--r--multimedia/kvazaar/changelog4
-rw-r--r--multimedia/kvazaar/kvazaar.SlackBuild4
-rw-r--r--multimedia/kvazaar/kvazaar.info6
-rw-r--r--multimedia/sfnt2woff/sfnt2woff.SlackBuild16
-rw-r--r--multimedia/sfnt2woff/sfnt2woff.info6
-rw-r--r--multimedia/shine/fix-bugs.patch12394
-rw-r--r--multimedia/shine/shine.SlackBuild14
-rw-r--r--multimedia/shine/shine.info6
-rw-r--r--multimedia/spot/spot.SlackBuild2
-rw-r--r--multimedia/spot/spot.info1008
-rw-r--r--multimedia/svt-av1/changelog4
-rw-r--r--multimedia/svt-av1/svt-av1.SlackBuild4
-rw-r--r--multimedia/svt-av1/svt-av1.info6
-rw-r--r--multimedia/uavs3d/changelog21
-rw-r--r--multimedia/uavs3d/fix-build-issue.patch7618
-rw-r--r--multimedia/uavs3d/fix-libdir.patch (renamed from multimedia/uavs3d/fix-libdir-in-cmakelists.patch)6
-rw-r--r--multimedia/uavs3d/uavs3d.SlackBuild23
-rw-r--r--multimedia/uavs3d/uavs3d.info6
-rw-r--r--multimedia/vgmplay/slack-desc2
-rw-r--r--multimedia/vgmplay/vgmplay.SlackBuild9
-rw-r--r--multimedia/vgmplay/vgmplay.info6
-rw-r--r--multimedia/vvenc/README15
-rw-r--r--multimedia/vvenc/vvenc.SlackBuild5
-rw-r--r--multimedia/vvenc/vvenc.info10
-rw-r--r--multimedia/w_scan_cpp/w_scan_cpp.SlackBuild4
-rw-r--r--multimedia/w_scan_cpp/w_scan_cpp.info4
-rw-r--r--multimedia/winff/changelog5
-rw-r--r--multimedia/winff/patches/unit1-pas.patch60
-rw-r--r--multimedia/winff/patches/unit3-pas.patch61
-rw-r--r--multimedia/winff/patches/winff-lpi.patch22
-rw-r--r--multimedia/winff/winff.SlackBuild2
-rw-r--r--multimedia/winff/winff.info6
-rw-r--r--multimedia/xavs2/xavs2.SlackBuild37
-rw-r--r--multimedia/xavs2/xavs2.info8
-rw-r--r--network/QuiteRSS/QuiteRSS.info2
-rw-r--r--network/argus-clients/argus-clients.SlackBuild16
-rw-r--r--network/argus-clients/argus-clients.info6
-rw-r--r--network/bpfmon/bpfmon.SlackBuild4
-rw-r--r--network/bpfmon/bpfmon.info6
-rw-r--r--network/brave-browser/brave-browser.SlackBuild2
-rw-r--r--network/brave-browser/brave-browser.info6
-rw-r--r--network/cacti/cacti.SlackBuild5
-rw-r--r--network/cacti/cacti.info6
-rw-r--r--network/davmail/davmail.SlackBuild4
-rw-r--r--network/davmail/davmail.info6
-rw-r--r--network/discord/discord.SlackBuild2
-rw-r--r--network/discord/discord.info6
-rw-r--r--network/dnsproxy-bin/dnsproxy-bin.SlackBuild2
-rw-r--r--network/dnsproxy-bin/dnsproxy-bin.info14
-rw-r--r--network/drawterm/drawterm.info2
-rw-r--r--network/dropbear/dropbear.SlackBuild8
-rw-r--r--network/dropbear/dropbear.info6
-rw-r--r--network/dropbox/dropbox.SlackBuild2
-rw-r--r--network/dropbox/dropbox.info10
-rw-r--r--network/enet/enet.SlackBuild6
-rw-r--r--network/enet/enet.info8
-rw-r--r--network/fail2ban/doinst.sh1
-rw-r--r--network/fail2ban/fail2ban.SlackBuild12
-rw-r--r--network/freedownloadmanager/freedownloadmanager.SlackBuild5
-rw-r--r--network/freedownloadmanager/freedownloadmanager.info4
-rw-r--r--network/goimapnotify/go.mod4
-rw-r--r--network/goimapnotify/go.sum4
-rw-r--r--network/goimapnotify/goimapnotify.SlackBuild4
-rw-r--r--network/goimapnotify/goimapnotify.info10
-rw-r--r--network/goimapnotify/modules.txt2
-rw-r--r--network/hylafax+/hylafax+.SlackBuild2
-rw-r--r--network/hylafax+/hylafax+.info6
-rw-r--r--network/kismet/kismet.SlackBuild14
-rw-r--r--network/kismet/kismet.info8
-rw-r--r--network/monkey/monkey.info2
-rw-r--r--network/movgrab/movgrab.SlackBuild17
-rw-r--r--network/movgrab/movgrab.info8
-rw-r--r--network/movgrab/slack-desc2
-rw-r--r--network/mptcpd/README6
-rw-r--r--network/mptcpd/mptcpd.SlackBuild113
-rw-r--r--network/mptcpd/mptcpd.info10
-rw-r--r--network/mptcpd/slack-desc19
-rw-r--r--network/mullvadvpn-app/mullvadvpn-app.SlackBuild4
-rw-r--r--network/mullvadvpn-app/mullvadvpn-app.info10
-rw-r--r--network/neomutt/neomutt.SlackBuild2
-rw-r--r--network/neomutt/neomutt.info6
-rw-r--r--network/nessus/README2
-rw-r--r--network/nessus/nessus.SlackBuild2
-rw-r--r--network/nessus/nessus.info6
-rw-r--r--network/nextcloud-desktop/nextcloud-desktop.SlackBuild2
-rw-r--r--network/nextcloud-desktop/nextcloud-desktop.info6
-rw-r--r--network/ngrok/ngrok.SlackBuild2
-rw-r--r--network/ngrok/ngrok.info10
-rw-r--r--network/noip-duc/README15
-rw-r--r--network/noip-duc/noip-duc.SlackBuild104
-rw-r--r--network/noip-duc/noip-duc.info10
-rw-r--r--network/noip-duc/slack-desc19
-rw-r--r--network/opera/opera.SlackBuild2
-rw-r--r--network/opera/opera.info6
-rw-r--r--network/owncloud-server/owncloud-server.info2
-rw-r--r--network/phppgadmin/phppgadmin.SlackBuild17
-rw-r--r--network/phppgadmin/phppgadmin.info8
-rw-r--r--network/purple-hangouts/LICENSE674
-rw-r--r--network/purple-hangouts/README10
-rw-r--r--network/purple-hangouts/purple-hangouts.info10
-rw-r--r--network/purple-hangouts/slack-desc19
-rw-r--r--network/signal-desktop/signal-desktop.SlackBuild2
-rw-r--r--network/signal-desktop/signal-desktop.info6
-rw-r--r--network/teamviewer/teamviewer.SlackBuild2
-rw-r--r--network/teamviewer/teamviewer.info10
-rw-r--r--network/telegram/telegram.SlackBuild2
-rw-r--r--network/telegram/telegram.info6
-rw-r--r--network/tor-browser/tor-browser.SlackBuild6
-rw-r--r--network/translate/translate.info2
-rw-r--r--network/viber/viber.SlackBuild2
-rw-r--r--network/viber/viber.info4
-rw-r--r--network/vimb/vimb.SlackBuild2
-rw-r--r--network/vimb/vimb.info2
-rw-r--r--network/vivaldi/vivaldi.SlackBuild2
-rw-r--r--network/vivaldi/vivaldi.info10
-rw-r--r--network/vmware-horizon-client/README33
-rw-r--r--network/vmware-horizon-client/doinst.sh26
-rw-r--r--network/vmware-horizon-client/douninst.sh3
-rw-r--r--network/vmware-horizon-client/slack-desc12
-rw-r--r--network/vmware-horizon-client/vmware-bundle.eclass84
-rw-r--r--network/vmware-horizon-client/vmware-horizon-client.SlackBuild186
-rw-r--r--network/vmware-horizon-client/vmware-horizon-client.info16
-rw-r--r--network/xmrig/xmrig.SlackBuild2
-rw-r--r--network/xmrig/xmrig.info6
-rw-r--r--network/zoom-linux/zoom-linux.SlackBuild2
-rw-r--r--network/zoom-linux/zoom-linux.info6
-rw-r--r--office/1password/1password.info2
-rw-r--r--office/LibreOffice/LibreOffice.SlackBuild2
-rw-r--r--office/LibreOffice/LibreOffice.info10
-rw-r--r--office/calibre-bin/calibre-bin.SlackBuild2
-rw-r--r--office/calibre-bin/calibre-bin.info6
-rw-r--r--office/epr/README11
-rw-r--r--office/epr/epr.SlackBuild79
-rw-r--r--office/epr/epr.info10
-rw-r--r--office/epr/slack-desc19
-rw-r--r--office/gnumeric/gnumeric.SlackBuild6
-rw-r--r--office/gnumeric/gnumeric.info6
-rw-r--r--office/krop/krop.SlackBuild2
-rw-r--r--office/krop/krop.info2
-rw-r--r--office/libreoffice-helppack/libreoffice-helppack.SlackBuild2
-rw-r--r--office/libreoffice-helppack/libreoffice-helppack.info6
-rw-r--r--office/libreoffice-langpack/libreoffice-langpack.SlackBuild2
-rw-r--r--office/libreoffice-langpack/libreoffice-langpack.info6
-rw-r--r--office/libreoffice/libreoffice.SlackBuild2
-rw-r--r--office/libreoffice/libreoffice.info6
-rw-r--r--office/lotus123/lotus123.info2
-rw-r--r--office/semantik/changelog4
-rw-r--r--office/semantik/semantik.SlackBuild7
-rw-r--r--office/semantik/semantik.info6
-rw-r--r--office/xtrkcad/slack-desc2
-rw-r--r--office/xtrkcad/xtrkcad.SlackBuild15
-rw-r--r--office/xtrkcad/xtrkcad.info8
-rw-r--r--perl/perl-ExtUtils-Config/perl-ExtUtils-Config.SlackBuild7
-rw-r--r--perl/perl-ExtUtils-Config/perl-ExtUtils-Config.info8
-rw-r--r--perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.SlackBuild7
-rw-r--r--perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.info6
-rw-r--r--perl/perl-Locale-Codes/perl-Locale-Codes.SlackBuild2
-rw-r--r--perl/perl-Locale-Codes/perl-Locale-Codes.info6
-rw-r--r--perl/perl-Locale-Msgfmt/README9
-rw-r--r--perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.info10
-rw-r--r--perl/perl-Locale-Msgfmt/slack-desc19
-rw-r--r--perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.SlackBuild2
-rw-r--r--perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.info6
-rw-r--r--perl/perl-Module-Install/perl-Module-Install.SlackBuild5
-rw-r--r--perl/perl-Module-Install/perl-Module-Install.info8
-rw-r--r--perl/perl-Module-Manifest/perl-Module-Manifest.SlackBuild2
-rw-r--r--perl/perl-Module-Manifest/perl-Module-Manifest.info6
-rw-r--r--perl/perl-Mojolicious/perl-Mojolicious.SlackBuild2
-rw-r--r--perl/perl-Mojolicious/perl-Mojolicious.info6
-rw-r--r--perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.SlackBuild7
-rw-r--r--perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.info6
-rw-r--r--perl/perl-PDF-API2/perl-PDF-API2.SlackBuild5
-rw-r--r--perl/perl-PDF-API2/perl-PDF-API2.info10
-rw-r--r--perl/perl-Test-Script/README6
-rw-r--r--perl/perl-Test-Script/perl-Test-Script.info10
-rw-r--r--perl/perl-Test-Script/slack-desc19
-rw-r--r--perl/perl-WWW-Curl/curl-7.71.0.patch.gzbin497 -> 527 bytes
-rw-r--r--perl/perl-WWW-Curl/perl-WWW-Curl.SlackBuild7
-rw-r--r--perl/perl-YAML-Tiny/perl-YAML-Tiny.SlackBuild5
-rw-r--r--perl/perl-YAML-Tiny/perl-YAML-Tiny.info8
-rw-r--r--perl/perl-html-form/perl-html-form.SlackBuild7
-rw-r--r--perl/perl-html-form/perl-html-form.info8
-rw-r--r--python/PyPy/PyPy.SlackBuild2
-rw-r--r--python/PyPy/PyPy.info6
-rw-r--r--python/PyPy3/PyPy3.SlackBuild2
-rw-r--r--python/PyPy3/PyPy3.info6
-rw-r--r--python/certbot-dns-cloudflare/certbot-dns-cloudflare.SlackBuild4
-rw-r--r--python/certbot-dns-cloudflare/certbot-dns-cloudflare.info8
-rw-r--r--python/mypy/mypy.SlackBuild2
-rw-r--r--python/mypy/mypy.info6
-rw-r--r--python/pyPdf/README16
-rw-r--r--python/pyPdf/pyPdf.info10
-rw-r--r--python/pyPdf/slack-desc19
-rw-r--r--python/pypy/pypy.SlackBuild2
-rw-r--r--python/pypy/pypy.info10
-rw-r--r--python/pypy3/pypy3.SlackBuild2
-rw-r--r--python/pypy3/pypy3.info10
-rw-r--r--python/pytest/pytest.info2
-rw-r--r--python/python-mysql-replication/python-mysql-replication.SlackBuild2
-rw-r--r--python/python-mysql-replication/python-mysql-replication.info6
-rw-r--r--python/python2-pluggy/README6
-rw-r--r--python/python2-pluggy/python2-pluggy.SlackBuild (renamed from libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.SlackBuild)27
-rw-r--r--python/python2-pluggy/python2-pluggy.info10
-rw-r--r--python/python2-pluggy/slack-desc19
-rw-r--r--python/python3-PyMuPDF/README11
-rw-r--r--python/python3-PyMuPDF/python3-PyMuPDF.SlackBuild24
-rw-r--r--python/python3-PyMuPDF/python3-PyMuPDF.info10
-rw-r--r--python/python3-ZConfig/python3-ZConfig.SlackBuild4
-rw-r--r--python/python3-ZConfig/python3-ZConfig.info6
-rw-r--r--python/python3-aiohttp/python3-aiohttp.SlackBuild2
-rw-r--r--python/python3-aiohttp/python3-aiohttp.info6
-rw-r--r--python/python3-astroid/python3-astroid.SlackBuild4
-rw-r--r--python/python3-astroid/python3-astroid.info6
-rw-r--r--python/python3-bsdiff4/README12
-rw-r--r--python/python3-bsdiff4/python3-bsdiff4.SlackBuild (renamed from network/purple-hangouts/purple-hangouts.SlackBuild)27
-rw-r--r--python/python3-bsdiff4/python3-bsdiff4.info10
-rw-r--r--python/python3-bsdiff4/slack-desc19
-rw-r--r--python/python3-cairocffi/python3-cairocffi.SlackBuild2
-rw-r--r--python/python3-cairocffi/python3-cairocffi.info6
-rw-r--r--python/python3-cloudflare/python3-cloudflare.SlackBuild4
-rw-r--r--python/python3-cloudflare/python3-cloudflare.info8
-rw-r--r--python/python3-dulwich/python3-dulwich.SlackBuild4
-rw-r--r--python/python3-dulwich/python3-dulwich.info8
-rw-r--r--python/python3-filelock/python3-filelock.SlackBuild2
-rw-r--r--python/python3-filelock/python3-filelock.info6
-rw-r--r--python/python3-findpython/python3-findpython.SlackBuild2
-rw-r--r--python/python3-findpython/python3-findpython.info6
-rw-r--r--python/python3-flake8_annotations/README2
-rw-r--r--python/python3-flake8_annotations/python3-flake8_annotations.SlackBuild (renamed from perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.SlackBuild)38
-rw-r--r--python/python3-flake8_annotations/python3-flake8_annotations.info10
-rw-r--r--python/python3-flake8_annotations/slack-desc19
-rw-r--r--python/python3-grpcio/python3-grpcio.SlackBuild2
-rw-r--r--python/python3-grpcio/python3-grpcio.info6
-rw-r--r--python/python3-identify/python3-identify.SlackBuild2
-rw-r--r--python/python3-identify/python3-identify.info6
-rw-r--r--python/python3-joblib/python3-joblib.SlackBuild2
-rw-r--r--python/python3-joblib/python3-joblib.info6
-rw-r--r--python/python3-keyring/python3-keyring.SlackBuild2
-rw-r--r--python/python3-keyring/python3-keyring.info6
-rw-r--r--python/python3-librosa/python3-librosa.SlackBuild18
-rw-r--r--python/python3-librosa/python3-librosa.info6
-rw-r--r--python/python3-paste/python3-paste.SlackBuild4
-rw-r--r--python/python3-paste/python3-paste.info6
-rw-r--r--python/python3-pdm-backend/python3-pdm-backend.SlackBuild2
-rw-r--r--python/python3-pdm-backend/python3-pdm-backend.info6
-rw-r--r--python/python3-pdm/python3-pdm.SlackBuild2
-rw-r--r--python/python3-pdm/python3-pdm.info6
-rw-r--r--python/python3-platformdirs/python3-platformdirs.SlackBuild4
-rw-r--r--python/python3-platformdirs/python3-platformdirs.info6
-rw-r--r--python/python3-plotly/python3-plotly.SlackBuild2
-rw-r--r--python/python3-plotly/python3-plotly.info6
-rw-r--r--python/python3-pluggy/python3-pluggy.SlackBuild2
-rw-r--r--python/python3-pluggy/python3-pluggy.info6
-rw-r--r--python/python3-pylint/python3-pylint.SlackBuild9
-rw-r--r--python/python3-pylint/python3-pylint.info6
-rw-r--r--python/python3-pypdf/README7
-rw-r--r--python/python3-pypdf/python3-pypdf.SlackBuild (renamed from python/pyPdf/pyPdf.SlackBuild)37
-rw-r--r--python/python3-pypdf/python3-pypdf.info10
-rw-r--r--python/python3-pypdf/slack-desc19
-rw-r--r--python/python3-pytest/python3-pytest.SlackBuild2
-rw-r--r--python/python3-pytest/python3-pytest.info6
-rw-r--r--python/python3-regex/python3-regex.SlackBuild2
-rw-r--r--python/python3-regex/python3-regex.info6
-rw-r--r--python/python3-reportlab/python3-reportlab.SlackBuild2
-rw-r--r--python/python3-reportlab/python3-reportlab.info6
-rw-r--r--python/python3-textdistance/python3-textdistance.SlackBuild16
-rw-r--r--python/python3-textdistance/python3-textdistance.info6
-rw-r--r--python/python3-threadpoolctl/python3-threadpoolctl.SlackBuild2
-rw-r--r--python/python3-threadpoolctl/python3-threadpoolctl.info6
-rw-r--r--python/python3-tox/python3-tox.SlackBuild2
-rw-r--r--python/python3-tox/python3-tox.info6
-rw-r--r--python/python3-unearth/python3-unearth.SlackBuild2
-rw-r--r--python/python3-unearth/python3-unearth.info6
-rw-r--r--python/python3-virtualenv/python3-virtualenv.SlackBuild2
-rw-r--r--python/python3-virtualenv/python3-virtualenv.info6
-rw-r--r--python/python3-wurlitzer/python3-wurlitzer.SlackBuild18
-rw-r--r--python/python3-wurlitzer/python3-wurlitzer.info6
-rw-r--r--python/terminado/terminado.SlackBuild16
-rw-r--r--python/terminado/terminado.info6
-rw-r--r--python/tox/tox.info2
-rw-r--r--ruby/ruby-build/ruby-build.SlackBuild2
-rw-r--r--ruby/ruby-build/ruby-build.info6
-rw-r--r--system/B-em/B-em.SlackBuild4
-rw-r--r--system/B-em/B-em.info6
-rw-r--r--system/B-em/slack-desc2
-rw-r--r--system/CPU-X/CPU-X.SlackBuild2
-rw-r--r--system/CPU-X/CPU-X.info6
-rw-r--r--system/FreeFileSync/FreeFileSync.info2
-rw-r--r--system/FreeFileSync/README9
-rw-r--r--system/Iosevka-aile/Iosevka-aile.SlackBuild2
-rw-r--r--system/Iosevka-aile/Iosevka-aile.info6
-rw-r--r--system/Iosevka-etoile/Iosevka-etoile.SlackBuild2
-rw-r--r--system/Iosevka-etoile/Iosevka-etoile.info6
-rw-r--r--system/Solaar/Solaar.SlackBuild8
-rw-r--r--system/alacritty/alacritty.SlackBuild8
-rw-r--r--system/alacritty/alacritty.info328
-rw-r--r--system/apple-fonts-NY/apple-fonts-NY.info2
-rw-r--r--system/apple-fonts-SF/apple-fonts-SF.info6
-rw-r--r--system/apptainer/README7
-rw-r--r--system/apptainer/apptainer.SlackBuild10
-rw-r--r--system/btop/btop.SlackBuild6
-rw-r--r--system/btop/btop.info6
-rw-r--r--system/conky/conky.SlackBuild2
-rw-r--r--system/conky/conky.info6
-rw-r--r--system/courier-screenplay/courier-screenplay.info2
-rw-r--r--system/cpmtools/cpmtools.info2
-rw-r--r--system/distrobox/distrobox.SlackBuild2
-rw-r--r--system/distrobox/distrobox.info6
-rw-r--r--system/docker-buildx/docker-buildx.SlackBuild4
-rw-r--r--system/docker-buildx/docker-buildx.info6
-rw-r--r--system/docker-compose/docker-compose.SlackBuild2
-rw-r--r--system/docker-compose/docker-compose.info6
-rw-r--r--system/efi-sync/README19
-rw-r--r--system/efi-sync/doinst.sh25
-rw-r--r--system/efi-sync/efi-sync.SlackBuild62
-rw-r--r--system/efi-sync/efi-sync.info10
-rw-r--r--system/efi-sync/files/rc.efi-sync.new60
-rw-r--r--system/efi-sync/slack-desc19
-rw-r--r--system/efitools/efitools.SlackBuild6
-rw-r--r--system/fastfetch/fastfetch.SlackBuild2
-rw-r--r--system/fastfetch/fastfetch.info6
-rw-r--r--system/fnt/fnt.SlackBuild2
-rw-r--r--system/fnt/fnt.info6
-rw-r--r--system/fnt/makefile.patch6
-rw-r--r--system/fzf/fzf.SlackBuild10
-rw-r--r--system/fzf/fzf.info14
-rw-r--r--system/greetd/greetd.SlackBuild2
-rw-r--r--system/greetd/greetd.info186
-rw-r--r--system/inotify-info/inotify-info.SlackBuild13
-rw-r--r--system/inotify-info/inotify-info.info6
-rw-r--r--system/kitty/kitty.SlackBuild2
-rw-r--r--system/kitty/kitty.info6
-rw-r--r--system/limine/limine-sample.cfg19
-rw-r--r--system/limine/limine.SlackBuild3
-rw-r--r--system/limine/limine.info6
-rw-r--r--system/lxdm/README4
-rw-r--r--system/lxdm/lxdm.SlackBuild12
-rw-r--r--system/lxinput/README8
-rw-r--r--system/lxinput/lxinput.SlackBuild16
-rw-r--r--system/lxrandr/README4
-rw-r--r--system/lxrandr/lxrandr.SlackBuild15
-rw-r--r--system/lxsession/README7
-rw-r--r--system/lxsession/lxsession.SlackBuild32
-rw-r--r--system/lxsession/lxsession.info2
-rw-r--r--system/lxtask/README4
-rw-r--r--system/lxtask/lxtask.SlackBuild19
-rw-r--r--system/lxterminal/README7
-rw-r--r--system/lxterminal/lxterminal.SlackBuild12
-rw-r--r--system/lxterminal/lxterminal.info2
-rw-r--r--system/numactl/numactl.SlackBuild4
-rw-r--r--system/numactl/numactl.info6
-rw-r--r--system/nvidia-driver/nvidia-driver.SlackBuild2
-rw-r--r--system/nvidia-driver/nvidia-driver.info26
-rw-r--r--system/nvidia-fabricmanager/README6
-rw-r--r--system/nvidia-fabricmanager/README.SBo7
-rw-r--r--system/nvidia-fabricmanager/doinst.sh.gzbin0 -> 368 bytes
-rw-r--r--system/nvidia-fabricmanager/nvidia-fabricmanager.SlackBuild87
-rw-r--r--system/nvidia-fabricmanager/nvidia-fabricmanager.info10
-rw-r--r--system/nvidia-fabricmanager/rc.nvidia-fabricmanager75
-rw-r--r--system/nvidia-fabricmanager/slack-desc19
-rw-r--r--system/nvidia-kernel/nvidia-kernel.SlackBuild2
-rw-r--r--system/nvidia-kernel/nvidia-kernel.info6
-rw-r--r--system/nvidia-open-kernel/README54
-rw-r--r--system/nvidia-open-kernel/geforce.conf1
-rw-r--r--system/nvidia-open-kernel/nvidia-open-kernel.SlackBuild9
-rw-r--r--system/nvidia-open-kernel/nvidia-open-kernel.info6
-rw-r--r--system/openzfs/openzfs.SlackBuild9
-rw-r--r--system/pacemaker/pacemaker.info2
-rw-r--r--system/pcmanfm/README6
-rw-r--r--system/pcmanfm/pcmanfm.SlackBuild9
-rw-r--r--system/polychromatic/polychromatic.SlackBuild2
-rw-r--r--system/polychromatic/polychromatic.info6
-rw-r--r--system/prometheus/prometheus.SlackBuild2
-rw-r--r--system/prometheus/prometheus.info6
-rw-r--r--system/pv/pv.SlackBuild2
-rw-r--r--system/pv/pv.info6
-rw-r--r--system/qemu/README19
-rw-r--r--system/qemu/qemu.SlackBuild7
-rw-r--r--system/qemu/qemu.info2
-rw-r--r--system/qtxdg-tools/qtxdg-tools.SlackBuild4
-rw-r--r--system/qtxdg-tools/qtxdg-tools.info6
-rw-r--r--system/redis-py/redis-py.SlackBuild2
-rw-r--r--system/redis-py/redis-py.info6
-rw-r--r--system/rewise/rewise.SlackBuild4
-rw-r--r--system/rewise/rewise.info8
-rw-r--r--system/rewise/slack-desc2
-rw-r--r--system/sarasa-gothic/sarasa-gothic.SlackBuild2
-rw-r--r--system/sarasa-gothic/sarasa-gothic.info6
-rw-r--r--system/slackrepo-hints/slackrepo-hints.SlackBuild2
-rw-r--r--system/slackrepo-hints/slackrepo-hints.info6
-rw-r--r--system/sysdig/sysdig.SlackBuild4
-rw-r--r--system/sysdig/sysdig.info12
-rw-r--r--system/testdisk/README6
-rw-r--r--system/testdisk/slack-desc2
-rw-r--r--system/testdisk/testdisk.SlackBuild4
-rw-r--r--system/testdisk/testdisk.info4
-rw-r--r--system/ti99sim/ti99sim.SlackBuild2
-rw-r--r--system/ttf-babelstone-cjk/APL.txt58
-rw-r--r--system/ttf-babelstone-cjk/BabelStoneOFL.txt94
-rw-r--r--system/ttf-babelstone-cjk/README5
-rw-r--r--system/ttf-babelstone-cjk/copyright13
-rw-r--r--system/ttf-babelstone-cjk/copyright26
-rw-r--r--system/ttf-babelstone-cjk/readme_fonts147
-rw-r--r--system/ttf-babelstone-cjk/ttf-babelstone-cjk.SlackBuild28
-rw-r--r--system/ttf-babelstone-cjk/ttf-babelstone-cjk.info54
-rw-r--r--system/ttf-babelstone-tibetan/BabelStoneOFL.txt94
-rw-r--r--system/ttf-babelstone-tibetan/copyright6
-rw-r--r--system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.SlackBuild17
-rw-r--r--system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.info16
-rw-r--r--system/ttf-lato/slack-desc2
-rw-r--r--system/ttf-lato/ttf-lato.SlackBuild3
-rw-r--r--system/ttf-lato/ttf-lato.info6
-rw-r--r--system/ttf-xo-fonts/ttf-xo-fonts.SlackBuild2
-rw-r--r--system/ttf-xo-fonts/ttf-xo-fonts.info2
-rw-r--r--system/usermin/usermin.SlackBuild2
-rw-r--r--system/usermin/usermin.info6
-rw-r--r--system/virtualbox-addons/virtualbox-addons.SlackBuild4
-rw-r--r--system/virtualbox-addons/virtualbox-addons.info6
-rw-r--r--system/virtualbox-extension-pack/virtualbox-extension-pack.SlackBuild4
-rw-r--r--system/virtualbox-extension-pack/virtualbox-extension-pack.info6
-rw-r--r--system/virtualbox-kernel/virtualbox-kernel.SlackBuild4
-rw-r--r--system/virtualbox-kernel/virtualbox-kernel.info6
-rw-r--r--system/virtualbox/vboxdrv.sh-setup.diff65
-rw-r--r--system/virtualbox/virtualbox.SlackBuild4
-rw-r--r--system/virtualbox/virtualbox.info18
-rw-r--r--system/webmin/webmin.SlackBuild3
-rw-r--r--system/webmin/webmin.info10
-rw-r--r--system/wine-staging/wine-staging.SlackBuild2
-rw-r--r--system/wine-staging/wine-staging.info10
-rw-r--r--system/xarchiver/xarchiver.SlackBuild4
-rw-r--r--system/xarchiver/xarchiver.info6
-rw-r--r--system/xen/dom0/README.dom02
-rw-r--r--system/xen/dom0/config-5.15.145-xen.x86_64 (renamed from system/xen/dom0/config-5.15.139-xen.x86_64)3
-rw-r--r--system/xen/dom0/kernel-xen.sh4
-rw-r--r--system/xen/domU/domU.sh2
-rw-r--r--system/xen/xen.SlackBuild4
-rw-r--r--system/xen/xen.info6
817 files changed, 7738 insertions, 26485 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 63333fcea1..957cc536ea 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,400 @@
+Sat May 4 14:46:17 UTC 2024
+academic/Gridcoin-Research: Updated for version 5.4.8.0
+academic/R: Updated for version 4.4.0.
+academic/bcftools
+academic/copasi: Updated for version 4.43.288.
+academic/fet: Updated for version 6.19.4.
+academic/pspp: Updated for version 2.0.1.
+academic/samtools:Upgrade to 1.20
+academic/smath-studio: Updated for version 1.1.8763
+academic/stellarsolver: Mark for x86_64 only.
+audio/ardour: Updated for version 8.6.0.
+audio/audacity: Updated for version 3.5.1.
+audio/openvino-plugins-ai-audacity: Added (AI-enabled effects, generators, and analyzers for Audacity).
+audio/rack: Updated for version 2.5.1.
+audio/yabridge: Mark for i586 only.
+desktop/BlockstreamGreen: Updated for version 2.0.4.
+desktop/Matcha-gtk-theme: Update for 2024_05_01
+desktop/arc-theme: Updated for version 20221218.
+desktop/buku: Updated for version 4.9.
+desktop/nwg-displays: Updated for version 0.3.17.
+desktop/nwg-panel: Updated for version 0.9.28.
+desktop/papirus-icon-theme: Updated for version 20240501.
+desktop/waybar: Remove dep.
+development/Bear: Fix BUILD and remove dep.
+development/Bear: Fix build.
+development/Bear: Updated for version 3.1.3.
+development/avrdude: Updated for version 7.3.
+development/aws-cdk: Updated for version 2.140.0.
+development/bluefish: Updated for version 2.2.15
+development/github-cli: Updated for version 2.49.0
+development/gitlab-cli: Updated for version 1.40.0.
+development/heroku-cli: Updated for version 8.11.5.
+development/hhvm: Removed (maintainer request).
+development/hipSYCL: Fix MD5SUM.
+development/jdk11: Updated for version 11.0.22.
+development/jupyter-nbconvert: Update for 7.16.4
+development/kForth-32: Mark for i586 only.
+development/kForth-64: Mark for x86_64 only.
+development/liberica-jdk-bin: Update script.
+development/mold: Updated for version 2.31.0.
+development/mongodb-compass: Updated for version 1.43.0.
+development/mongodb-shell: Updated for version 2.2.5.
+development/openjdk7: Mark for x86_64.
+development/openjdk8: Mark for x86_64.
+development/protoc-gen-go: Update for 1.34.0
+development/pylint: Update script.
+development/rust16: Updated for version 1.77.2.
+development/sqlcl: Updated for version 24.1.0.087.0929.
+development/sqldeveloper: Updated for version 23.1.1.345.2114.
+development/stablediffusion-pipelines-cpp: Removed (maintainer).
+development/stablediffusion-pipelines-cpp: Update script.
+development/textadept: Updated for version 12.4.
+development/vscode-bin: Updated for version 1.89.0.
+development/whisper.cpp: Update script.
+games/Mindustry: Repackage instead of Gradle build
+games/PrismLauncher: Updated for version 8.3.
+games/ags: Updated for version 3.6.1.24.
+games/ddnet: Updated for version 18.2.
+games/dwarffortress: Updated for version 0.50.13.
+games/freeciv: updated for version 3.1.1
+games/gzdoom: Mark for x86_64 only.
+games/lbreakouthd: Updated for version 1.1.8.
+games/melonds: Mark for x86_64.
+games/openttd: Updated for version 14.0.
+games/planetblupi: updated for version 1.15.1
+games/quakespasm: Updated for version 0.96.1.
+games/wesnoth: Updated for version 1.18.0
+games/xemu: Mark for x86_64.
+games/zsnes: Mark for i586 only.
+gis/gpxsee: Updated for version 13.19.
+gis/osgEarth: Remove dep.
+graphics/FSPViewer: Fix stripping binary.
+graphics/graphviz: updated for version 11.0.0
+graphics/hugin: gzip patch.
+graphics/ueberzugpp: Remove dep.
+graphics/veles: Require updated rust for 32bit build.
+graphics/wine-nine-standalone: Mark for i586 only.
+ham/cm256cc: Updated for version 1.1.1.
+ham/dab_lib: Updated for version 20240428.229149eb.
+ham/libsigmf: Updated for version 20240428.299dc8f9.
+ham/mbelib: Updated for version 20240428.9a04ed5c.
+ham/qlog: Updated for version 0.35.0.
+ham/sdrangel: Updated for version 7.20.0.
+ham/sgp4: Updated for version 20240428.6a448b48.
+libraries/CLI11: Updated for version 2.4.2.
+libraries/ell: Updated for version 0.65.
+libraries/goffice: Updated for version 0.10.57.
+libraries/grpc: Update for 1.63.0
+libraries/htslib: upgrade to 1.20
+libraries/libbass: Fixed MD5SUM.
+libraries/libcpuid: Updated for version 0.6.5.
+libraries/libfaketime: Updated for version 0.9.10.
+libraries/libliftoff: Update MD5SUM and script.
+libraries/librepfunc: Updated for version 1.10.0.
+libraries/libtecla: Mark x86_64 only.
+libraries/libtorch-cxx11-abi-shared-with-deps: Removed (pytorch).
+libraries/libxmlb: Updated for version 0.3.19.
+libraries/lua-readline: Removed (upstream no longer exists).
+libraries/mimalloc: Updated for version 2.1.4
+libraries/nng: Updated for version 1.8.0.
+libraries/opencl-amd: Mark for x86_64 only.
+libraries/openvdb: Mark for x86_64.
+libraries/openvino: Updated for version 2024.1.0.
+libraries/pcl: Updated for version 1.14.0
+libraries/pytorch: Added (machine learning library).
+libraries/rapidjson: Fix FTBFS with gtest installed + new maintainer
+libraries/spdlog: Updated for version 1.14.1.
+libraries/tclws: Fixed MD5SUM.
+libraries/yascreen: Updated for version 1.99.
+misc/fcitx5-chinese-addons: Disable Qt6.
+misc/par2cmdline-tbb: Update DEP.
+misc/yubioath-desktop: Updated for version 5.1.0.
+multimedia/droidcam: Updated for version 2.1.3.
+multimedia/kodi: Remove dep.
+multimedia/sfnt2woff: Update project HOMEPAGE and DOWNLOAD.
+multimedia/shine: Updated for version ab5e352_20230101.
+multimedia/uavs3d: Updated for version 1fd0491_20230223.
+multimedia/vgmplay: Update script.
+multimedia/vvenc: Updated for version 1.11.1.
+multimedia/w_scan_cpp: Updated for internal version vdr-2.6.7.
+multimedia/winff: Updated for version 1.6.4.
+multimedia/xavs2: Mark for x86_64 only.
+network/QuiteRSS: Update DOWNLOAD.
+network/argus-clients: Fix script.
+network/bpfmon: Updated for version 2.52.
+network/brave-browser: brave-browser: update 1.65.126
+network/cacti: Updated for version 1.2.26.
+network/davmail: Updated for version 6.2.2.
+network/discord: Updated for version 0.0.52.
+network/dnsproxy-bin: Updated for version 0.71.1.
+network/drawterm: Fix MD5SUM.
+network/dropbear: Updated for version 2024.85.
+network/dropbox: Updated for version 197.4.7629.
+network/freedownloadmanager: Updated for version 6.20.0.5510.
+network/goimapnotify: Updated for version 2.3.15.
+network/hylafax+: Updated for version 7.0.8.
+network/kismet: Updated for version 20240430.
+network/monkey: Updated DOWNLOAD.
+network/movgrab: Updated for version 3.1.2.
+network/mptcpd: Added (Multipath TCP management).
+network/mullvadvpn-app: Updated for version 2024.2.
+network/neomutt: Updated for version 20240425.
+network/nessus: Updated for version 10.7.2.
+network/nextcloud-desktop: Updated for version 3.13.0.
+network/ngrok: Update MD5SUM.
+network/owncloud-server: Update DOWNLOAD.
+network/phppgadmin: Updated for version 7.14.7
+network/purple-hangouts: Removed (Google shut it down).
+network/signal-desktop: Updated for version 7.7.0.
+network/telegram: Updated for version 5.0.0.
+network/translate: Add missing dependency.
+network/viber: Updated for version 21.8.0.11.
+network/vimb: Update dependencies.
+network/vivaldi: Updated for version 6.7.3329.21.
+network/xmrig: Updated for version 6.21.3.
+office/1password: Fix MD5SUM.
+office/LibreOffice: Updated for version 24.2.3.2
+office/calibre-bin: Updated for version 7.10.0.
+office/gnumeric: Updated for version 1.12.57.
+office/krop: Updates.
+office/libreoffice-helppack: Updated for version 24.2.3.
+office/libreoffice-langpack: Updated for version 24.2.3.
+office/libreoffice: Updated for version 24.2.3.
+office/lotus123: Mark for i586 only.
+office/xtrkcad: Updated for version 5.3.0GA.
+perl/perl-Locale-Codes: Updated for version 3.78
+perl/perl-Locale-Msgfmt: Removed (FTBFS).
+perl/perl-Module-Build-Tiny: Updated for version 0.048.
+perl/perl-Module-Install: Updated for version 1.21
+perl/perl-Module-Manifest: Updated for version 1.09.
+perl/perl-Net-DNS-SEC: Updated for version 1.24.
+perl/perl-PDF-API2: Updated for version 2.045
+perl/perl-Test-Script: Removed (FTBFS).
+perl/perl-WWW-Curl: Update curl patch.
+perl/perl-YAML-Tiny: Updated for version 1.74
+perl/perl-html-form: Updated for version 6.11.
+python/certbot-dns-cloudflare: Updated for version 2.10.0
+python/pyPdf: Removed (use python3-pypdf).
+python/pytest: Update dep.
+python/python-mysql-replication: Updated for version 1.0.8.
+python/python2-pluggy: Added (python2 version of pluggy).
+python/python3-ZConfig: Updated for version 4.1.
+python/python3-astroid: Updated for version 3.1.0.
+python/python3-cairocffi: updated for version 1.7.0
+python/python3-cloudflare: Updated for version 2.9.14
+python/python3-filelock: Updated for version 3.14.0.
+python/python3-grpcio: Update for 1.63.0
+python/python3-identify: Updated for version 2.5.36.
+python/python3-joblib: Updated for version 1.4.2.
+python/python3-keyring: Update for 25.2.0
+python/python3-librosa: Updated for version 0.10.2.
+python/python3-paste: updated for version 3.10.0
+python/python3-paste: updated for version 3.10.1
+python/python3-pdm-backend: Updated for version 2.3.0.
+python/python3-plotly: Update for 5.22.0
+python/python3-pylint: Updated for version 3.1.0.
+python/python3-pypdf: Added (PDF Library).
+python/python3-pytest: Updated for version 8.2.0.
+python/python3-regex: Update for 2024.4.28
+python/python3-threadpoolctl: Updated for version 3.5.0.
+python/python3-virtualenv: Updated for version 20.26.1.
+python/python3-wurlitzer: Update for 3.1.0
+python/tox: Update dep.
+ruby/ruby-build: Updated for version 20240501.
+system/CPU-X: Updated for version 5.0.4.
+system/Solaar: Fix building on -current.
+system/alacritty: Updated for version 0.13.2.
+system/apple-fonts-NY: Update MD5SUM.
+system/apple-fonts-SF: Update MD5SUM.
+system/apptainer: Make setuid configurable.
+system/btop: Updated for version 1.3.2.
+system/conky: Updated for version 1.20.2.
+system/courier-screenplay: Update MD5SUM.
+system/cpmtools: Fixed MD5SUM.
+system/distrobox: Updated for version 1.7.2.0.
+system/docker-buildx: Updated for version 0.14.0.
+system/docker-compose: Updated for version 2.27.0.
+system/efi-sync: Added (EFI auto update).
+system/efitools: Fix build.
+system/fastfetch: Updated for version 2.10.2.
+system/fzf: Updated for version 0.51.0.
+system/inotify-info: Updated for version 0.0.1.
+system/limine: Updated for version 7.4.1
+system/openzfs: removed unnecessary configure arguments
+system/pacemaker: Fixed MD5SUM.
+system/qemu: Update dependencies to allow offline build
+system/slackrepo-hints: Updated for version 20240503.
+system/sysdig: Updated for version 0.36.1.
+system/ti99sim: Fix build when ARCH is set in the environment.
+system/ttf-babelstone-cjk: Updated for version 1.1.
+system/ttf-xo-fonts: Updates.
+system/usermin: Updated for version 2.010.
+system/webmin: Updated for version 2.111.
+system/xarchiver: Updated for version 0.5.4.23
++--------------------------+
+Sat Apr 27 02:29:53 UTC 2024
+academic/cadabra2: Updated for version 2.4.5.7.
+academic/nco: Updated for version 5.2.4.
+audio/lxmusic: Switch to gtk+3 by default.
+desktop/adapta-gtk-theme: Removed (project ended development).
+desktop/dunst: Updated for version 1.11.0
+desktop/durden: Fix MD5SUM.
+desktop/dwmblocks: Update for 20240420
+desktop/e16.theme.pack: Fix MD5SUM.
+desktop/gtklock-playerctl-module: Updated for version 3.0.0.
+desktop/gtklock-powerbar-module: Updated for version 3.0.0.
+desktop/gtklock-userinfo-module: Updated for version 3.0.0.
+desktop/gtklock: Updated for version 3.0.0.
+desktop/libqtxdg: Update for 3.12.0
+desktop/lxappearance-obconf: Add a fix for gtk+3.
+desktop/lxappearance: Switch to gtk+3 by default, add a license.
+desktop/lxpanel: Switch to gtk+3 by default.
+desktop/mwm-utils: Update DOWNLOAD and MD5SUM.
+desktop/neutrality-cursor-theme: Added (XCursor mouse cursors theme).
+desktop/nwg-shell-config: Updated for version 0.5.36.
+desktop/nwg-shell: Updated for version 0.5.34.
+desktop/oomox: Updated for version 1.15.1.
+desktop/wlsunset: Updated for version 0.4.0.
+development/OpenCL-CLHPP: Added (OpenCLTM API C++ bindings).
+development/acpica: Updated for version 20240321
+development/aws-cdk: Updated for version 2.139.0.
+development/composer: Updated for version 2.7.4
+development/edb-debugger: Updated for version 1.5.0.
+development/eovim: Update DEP.
+development/gdb-dashboard: Updated for version 20240131.
+development/gsoap: Updated for version 2.8.132
+development/inform: Fix MD5SUM.
+development/jupyter_server_terminals: Update for 0.5.3
+development/kdiff: Update MD5SUM.
+development/oneTBB: Fix building python support.
+development/stablediffusion-pipelines-cpp: Added (C++ library).
+development/stablediffusion-pipelines-cpp: Mark as x86_64 only.
+development/uftrace: Updated for version 20240410_17df844
+development/valgrind: Updated for version 3.23.0.
+development/whisper.cpp: Added (OpenAI's Whisper model in C/C++).
+development/whisper.cpp: Use LIBDIRSUFFIX.
+development/xmake: Updated for version 2.9.1.
+games/PyLotRO: Removed (FTBFS and upstream no longer updated)
+games/atari_8bit_utils: Added (Atari 8-bit utilities).
+games/boosteroid: Fix MD5SUM.
+games/scid_vs_pc: Fixed MD5SUM.
+gis/eccodes/Updated for version 2.35.0.
+gis/saga-gis: Updated for version 9.4.0.
+graphics/Blender: Remove no longer necessary patch for 32bit builds
+graphics/FSPViewer: Fixed MD5SUM.
+graphics/XnViewMP: Fixed MD5SUM.
+graphics/converseen: Fix build.
+graphics/converseen: Updated for version 0.12.2.3.
+graphics/gimp-wideangle-plugin: Fix build.
+graphics/hugin: Patch to work with newer boost.
+graphics/qcustomplot: Updates.
+ham/qlog: Fixed MD5SUM.
+ham/satdump: Updated for version 1.1.4.
+libraries/ell: Added (embedded linux library).
+libraries/grpc: Update for 1.62.2
+libraries/gtk-session-lock: Added (screen locker).
+libraries/libbpg: Updated for version 0.9.8.
+libraries/libfabric: Updated for version 1.21.0.
+libraries/libfm: Switch to gtk+3 by default.
+libraries/libgusb: Updated for version 0.4.9.
+libraries/libheif: Fix build with libsvtav1 2.0.0.
+libraries/libqtpas: Switch to lazarus 3.2-0.
+libraries/libtorch-cxx11-abi-shared-with-deps: Only for x86_64.
+libraries/lxqt-build-tools: Edit HOMEPAGE
+libraries/lxqt-qtplugin: Update for 1.4.1
+libraries/openvino: Added (AI toolkit).
+libraries/openvino: Fix 32bit build.
+libraries/openvino: Include ittapi.
+libraries/scafacos: Remove -j option.
+libraries/td_lib: Add .pc file to package.
+misc/bitwarden-desktop: updated for 2024.4.1
+misc/sigrok-firmware-fx2lafw: Fix building with SDCC >= 4.2.3
+multimedia/intel-media-driver: Mark for x86_64 only.
+multimedia/kvazaar: Updated for version 2.3.1.
+multimedia/spot: Updated for version 0.4.0.
+multimedia/svt-av1: Updated for version 2.0.0.
+network/argus-clients: Updated version to 3.0.8.4
+network/discord: Version bump to 0.0.51
+network/dnsproxy-bin: Updated for version 0.71.0.
+network/enet: Updated for version 1.3.18
+network/fail2ban: Fix some rotated filenames/bash_competion stuff.
+network/ngrok: Updated for version 3.8.0
+network/noip-duc: Added (Dynamic DNS Client).
+network/opera: Updated for version 109.0.5097.59.
+network/opera: Updated for version 109.0.5097.68.
+network/signal-desktop: Updated for version 7.6.0.
+network/teamviewer: Updated for version 15.53.6.
+network/tor-browser: Fix build for i586.
+network/vmware-horizon-client: Updated for version 2312.1_8.12.1_23543969.
+network/xmrig: Updated for version 6.21.2.
+network/zoom-linux: Updated for version 6.0.2.4680
+office/epr: Added (CLI Epub Reader).
+office/semantik: Updated for version 1.2.11.
+perl/perl-ExtUtils-Config: Updated for versoin 0.009.
+perl/perl-ExtUtils-InstallPaths: Updated for version 0.013.
+perl/perl-Mojolicious: Updated for version 9.36.
+python/PyPy3: updated for version 7.3.16
+python/PyPy: updated for version 7.3.16
+python/mypy: Updated for version 1.10.0.
+python/pypy3: updated for version 7.3.16
+python/pypy: updated for version 7.3.16
+python/python3-PyMuPDF: Updated for version 1.24.2.
+python/python3-aiohttp: Updated for version 3.9.5.
+python/python3-bsdiff4: Added (binary diffs).
+python/python3-dulwich: updated for version 0.22.1
+python/python3-findpython: Version bump to 0.6.1
+python/python3-flake8_annotations: Added (type annotation checks).
+python/python3-grpcio: Update for 1.62.2
+python/python3-pdm-backend: Version bump to 2.2.1
+python/python3-pdm: Version bump to 2.15.0
+python/python3-pdm: Version bump to 2.15.1
+python/python3-platformdirs: Version bump to 4.2.1
+python/python3-pluggy: Version bump to 1.5.0
+python/python3-pytest: Version bump to 8.1.2
+python/python3-reportlab: Updated for version 4.2.0.
+python/python3-textdistance: Update for 4.6.2
+python/python3-tox: Version bump to 4.15.0
+python/python3-unearth: Version bump to 0.15.2
+python/python3-virtualenv: Version bump to 20.26.0
+python/terminado: Update for 0.18.1
+ruby/ruby-build: Updated for version 20240423.
+system/B-em: Updated for version 20240306_5557a36. New versioning scheme.
+system/FreeFileSync: Updated info file, download location.
+system/Iosevka-aile: Updated for version 29.2.1.
+system/Iosevka-etoile: Updated for version 29.2.1.
+system/fnt: Updated for version 1.6.
+system/greetd: Updated for version 0.10.0.
+system/kitty: Updated for version 0.34.1
+system/limine: Updated for version 7.4.0
+system/lxdm: Build agains PAM, cleanups.
+system/lxinput: Switch to gtk+3 by default.
+system/lxrandr: Switch to gtk+3 by default.
+system/lxsession: Switch to gtk+3 by default.
+system/lxtask: Switch to gtk+3 by default.
+system/lxterminal: Switch to gtk+3 by default.
+system/numactl: Updated for version 2.0.17.
+system/nvidia-driver: Updated for version 550.76.
+system/nvidia-fabricmanager: Added (proprietary binary).
+system/nvidia-kernel: Updated for version 550.76.
+system/nvidia-open-kernel: Updated for version 550.76.
+system/pcmanfm: Switch to gtk+3 by default.
+system/polychromatic: Updated for version 0.8.4.
+system/prometheus: Updated to version 2.51.2
+system/pv: updated for version 1.8.9
+system/qtxdg-tools: Update for 3.12.0
+system/redis-py: updated for version 5.0.4
+system/rewise: Updated for version 0.2.0.
+system/sarasa-gothic: Updated for version 1.0.10.
+system/testdisk: New maintainer.
+system/ttf-babelstone-tibetan: Updated for version 10.011.
+system/virtualbox-addons: Updated for version 6.1.50
+system/virtualbox-extension-pack: Updated for version 6.1.50
+system/virtualbox-kernel: Updated for version 6.1.50
+system/virtualbox: Updated for version 6.1.50
+system/wine-staging: Updated for version 9.7.
+system/xen: Updated for version 4.18.2.
++--------------------------+
Sat Apr 20 14:15:42 UTC 2024
academic/cadabra2: Updated for version 2.4.5.6.
academic/kissat: Added (SAT solver).
diff --git a/academic/Gridcoin-Research/Gridcoin-Research.SlackBuild b/academic/Gridcoin-Research/Gridcoin-Research.SlackBuild
index 9a04eb6fc4..7ef6e2ceba 100644
--- a/academic/Gridcoin-Research/Gridcoin-Research.SlackBuild
+++ b/academic/Gridcoin-Research/Gridcoin-Research.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Gridcoin-Research
-VERSION=${VERSION:-5.4.7.0}
+VERSION=${VERSION:-5.4.8.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/Gridcoin-Research/Gridcoin-Research.info b/academic/Gridcoin-Research/Gridcoin-Research.info
index a28295c32f..8db3ea0b94 100644
--- a/academic/Gridcoin-Research/Gridcoin-Research.info
+++ b/academic/Gridcoin-Research/Gridcoin-Research.info
@@ -1,8 +1,8 @@
PRGNAM="Gridcoin-Research"
-VERSION="5.4.7.0"
+VERSION="5.4.8.0"
HOMEPAGE="https://gridcoin.us/"
-DOWNLOAD="https://github.com/gridcoin-community/Gridcoin-Research/archive/5.4.7.0/Gridcoin-Research-5.4.7.0.tar.gz"
-MD5SUM="8c42dfd8deaa754d78aa248785e724b0"
+DOWNLOAD="https://github.com/gridcoin-community/Gridcoin-Research/archive/5.4.8.0/Gridcoin-Research-5.4.8.0.tar.gz"
+MD5SUM="69a861f7eca09f6142c8e737744ad9fd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/academic/Gridcoin-Research/README b/academic/Gridcoin-Research/README
index 2fc9a1a4f5..53cc2f8645 100644
--- a/academic/Gridcoin-Research/README
+++ b/academic/Gridcoin-Research/README
@@ -34,6 +34,6 @@ release notes on
https://github.com/gridcoin-community/Gridcoin-Research/releases
** NOTE: **
-This is a MANDATORY upgrade for versions 5.4.5 and below to fix an
+While this is a LEISURE update, you are highly encouraged to upgrade.
+Included are additonal fixes and improvements releated to the recent
inadvertent fork as a result of an inadvertent protocol change.
-If you are already on 5.4.6 this upgrade is "leisure."
diff --git a/academic/R/R.SlackBuild b/academic/R/R.SlackBuild
index 3ee98369fc..97b5d3a22b 100644
--- a/academic/R/R.SlackBuild
+++ b/academic/R/R.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=R
-VERSION=${VERSION:-4.3.3}
+VERSION=${VERSION:-4.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/R/R.info b/academic/R/R.info
index 45cf892f94..6c12168093 100644
--- a/academic/R/R.info
+++ b/academic/R/R.info
@@ -1,8 +1,8 @@
PRGNAM="R"
-VERSION="4.3.3"
+VERSION="4.4.0"
HOMEPAGE="https://www.r-project.org/"
-DOWNLOAD="https://cran.r-project.org/src/base/R-4/R-4.3.3.tar.xz"
-MD5SUM="5602f5996107c346dba12a16e866d2e2"
+DOWNLOAD="https://cran.r-project.org/src/base/R-4/R-4.4.0.tar.xz"
+MD5SUM="647ef3e012e9cf36a187db64a6082217"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/academic/bcftools/bcftools.SlackBuild b/academic/bcftools/bcftools.SlackBuild
index b7a8433557..ad6f5d7181 100644
--- a/academic/bcftools/bcftools.SlackBuild
+++ b/academic/bcftools/bcftools.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for bcftools
-# Copyright 2017-2023 Rob van Nues # All rights reserved.
+# Copyright 2017-2024 Rob van Nues # All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
@@ -24,8 +24,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=bcftools
-VERSION=${VERSION:-1.19}
-HTSLIBV=${HTSLIBV:-1.19}
+VERSION=${VERSION:-1.20}
+HTSLIBV=${HTSLIBV:-1.20}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/bcftools/bcftools.info b/academic/bcftools/bcftools.info
index 1998ed001c..84e5bb039b 100644
--- a/academic/bcftools/bcftools.info
+++ b/academic/bcftools/bcftools.info
@@ -1,8 +1,8 @@
PRGNAM="bcftools"
-VERSION="1.19"
+VERSION="1.20"
HOMEPAGE="http://www.htslib.org"
-DOWNLOAD="https://github.com/samtools/bcftools/releases/download/1.19/bcftools-1.19.tar.bz2"
-MD5SUM="9b4e8be279024d19f36bbaad1d2bdb41"
+DOWNLOAD="https://github.com/samtools/bcftools/releases/download/1.20/bcftools-1.20.tar.bz2"
+MD5SUM="5cfb124c7d9e4db6c5a4e6080a2f27f8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="htslib"
diff --git a/academic/cadabra2/cadabra2.SlackBuild b/academic/cadabra2/cadabra2.SlackBuild
index dff731aad7..0172ff5550 100644
--- a/academic/cadabra2/cadabra2.SlackBuild
+++ b/academic/cadabra2/cadabra2.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=cadabra2
-VERSION=${VERSION:-2.4.5.6}
+VERSION=${VERSION:-2.4.5.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/cadabra2/cadabra2.info b/academic/cadabra2/cadabra2.info
index 54385565de..2bd6e73540 100644
--- a/academic/cadabra2/cadabra2.info
+++ b/academic/cadabra2/cadabra2.info
@@ -1,8 +1,8 @@
PRGNAM="cadabra2"
-VERSION="2.4.5.6"
+VERSION="2.4.5.7"
HOMEPAGE="https://cadabra.science"
-DOWNLOAD="https://github.com/kpeeters/cadabra2/archive/2.4.5.6/cadabra2-2.4.5.6.tar.gz"
-MD5SUM="769833ed91bb6999cdf86bd3f26710a7"
+DOWNLOAD="https://github.com/kpeeters/cadabra2/archive/2.4.5.7/cadabra2-2.4.5.7.tar.gz"
+MD5SUM="0114198388cc3d11e7318a1319b46aae"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-matplotlib python3-gmpy2 python3-sympy"
diff --git a/academic/copasi/copasi.SlackBuild b/academic/copasi/copasi.SlackBuild
index 0a6da4fcfd..732cd916d9 100644
--- a/academic/copasi/copasi.SlackBuild
+++ b/academic/copasi/copasi.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=copasi
-VERSION=${VERSION:-4.42.284}
+VERSION=${VERSION:-4.43.288}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/copasi/copasi.info b/academic/copasi/copasi.info
index 75e1b966a6..2840e1662d 100644
--- a/academic/copasi/copasi.info
+++ b/academic/copasi/copasi.info
@@ -1,10 +1,10 @@
PRGNAM="copasi"
-VERSION="4.42.284"
+VERSION="4.43.288"
HOMEPAGE="https://copasi.org"
-DOWNLOAD="https://github.com/copasi/COPASI/releases/download/Build-284/COPASI-4.42.284-Linux-32bit.sh"
-MD5SUM="66ae94a23f8d7745835e3639f1c567f6"
-DOWNLOAD_x86_64="https://github.com/copasi/COPASI/releases/download/Build-284/COPASI-4.42.284-Linux-64bit.sh"
-MD5SUM_x86_64="87f09230f64ea4c69a6695963e4f2594"
+DOWNLOAD="https://github.com/copasi/COPASI/releases/download/Build-288/COPASI-4.43.288-Linux-32bit.sh"
+MD5SUM="2eb1afccd0697ab7b75a1177e89ce15b"
+DOWNLOAD_x86_64="https://github.com/copasi/COPASI/releases/download/Build-288/COPASI-4.43.288-Linux-64bit.sh"
+MD5SUM_x86_64="cf48d9dd2672f1ba676ddc457b71c91d"
REQUIRES=""
MAINTAINER="Pedro Mendes"
EMAIL="pedro@gepasi.org"
diff --git a/academic/fet/fet.SlackBuild b/academic/fet/fet.SlackBuild
index 6962abec49..198ce373f9 100644
--- a/academic/fet/fet.SlackBuild
+++ b/academic/fet/fet.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=fet
-VERSION=${VERSION:-6.19.3}
+VERSION=${VERSION:-6.19.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/fet/fet.info b/academic/fet/fet.info
index 2093219a59..47f4960d2d 100644
--- a/academic/fet/fet.info
+++ b/academic/fet/fet.info
@@ -1,8 +1,8 @@
PRGNAM="fet"
-VERSION="6.19.3"
+VERSION="6.19.4"
HOMEPAGE="https://www.lalescu.ro/liviu/fet/"
-DOWNLOAD="https://www.lalescu.ro/liviu/fet/download/fet-6.19.3.tar.bz2"
-MD5SUM="5af48c9d1fdf303d7f2ed8ec306a257d"
+DOWNLOAD="https://www.lalescu.ro/liviu/fet/download/fet-6.19.4.tar.bz2"
+MD5SUM="799ab0b68fa7a16efe4c2a5e1284a817"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/academic/nco/nco.SlackBuild b/academic/nco/nco.SlackBuild
index 202f45a72e..706e1316ed 100644
--- a/academic/nco/nco.SlackBuild
+++ b/academic/nco/nco.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nco
-VERSION=${VERSION:-5.2.2}
+VERSION=${VERSION:-5.2.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/nco/nco.info b/academic/nco/nco.info
index a532879aeb..b6064e2b16 100644
--- a/academic/nco/nco.info
+++ b/academic/nco/nco.info
@@ -1,8 +1,8 @@
PRGNAM="nco"
-VERSION="5.2.2"
+VERSION="5.2.4"
HOMEPAGE="http://nco.sf.net"
-DOWNLOAD="https://github.com/nco/nco/archive/5.2.2/nco-5.2.2.tar.gz"
-MD5SUM="5baea71f85e0344cc1d74244ac8441b6"
+DOWNLOAD="https://github.com/nco/nco/archive/5.2.4/nco-5.2.4.tar.gz"
+MD5SUM="b46ed9dcdc1a2c857811cb5698a0460c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="netcdf udunits antlr2"
diff --git a/academic/pspp/pspp.SlackBuild b/academic/pspp/pspp.SlackBuild
index 17b31eb664..efd42d80ce 100644
--- a/academic/pspp/pspp.SlackBuild
+++ b/academic/pspp/pspp.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pspp
-VERSION=${VERSION:-2.0.0}
+VERSION=${VERSION:-2.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/pspp/pspp.info b/academic/pspp/pspp.info
index 702e496e28..7c293f4bc2 100644
--- a/academic/pspp/pspp.info
+++ b/academic/pspp/pspp.info
@@ -1,8 +1,8 @@
PRGNAM="pspp"
-VERSION="2.0.0"
+VERSION="2.0.1"
HOMEPAGE="http://www.gnu.org/software/pspp/"
-DOWNLOAD="http://mirrors.nav.ro/gnu/pspp/pspp-2.0.0.tar.gz"
-MD5SUM="11f5949311bfe66a44999b9d7db6c99b"
+DOWNLOAD="http://mirrors.nav.ro/gnu/pspp/pspp-2.0.1.tar.gz"
+MD5SUM="0933860d7d511dac67277ef4829263ce"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="spread-sheet-widget"
diff --git a/academic/samtools/samtools.SlackBuild b/academic/samtools/samtools.SlackBuild
index 7efbaf3288..4f39dce0d0 100644
--- a/academic/samtools/samtools.SlackBuild
+++ b/academic/samtools/samtools.SlackBuild
@@ -25,14 +25,14 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=samtools
-VERSION=${VERSION:-1.19.2}
-HTSLIBV=${HTSLIBV:-1.19.1}
+VERSION=${VERSION:-1.20}
+HTSLIBV=${HTSLIBV:-1.20}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-# Some applications still rely on the legacy samtools API instead of using htslib
-# exclusively, in that case, install the headers in /usr/include/bam and the static
+# Some applications still rely on the legacy samtools API instead of using htslib
+# exclusively, in that case, install the headers in /usr/include/bam and the static
# libbam library as well by declaring (uncommenting):
#SAMLIB="yes"
# and commenting out:
@@ -122,9 +122,7 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- AUTHORS LICENSE README NEWS.md examples \
- $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS LICENSE README NEWS.md examples $PKG/usr/doc/$PRGNAM-$VERSION
cp $CWD/README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/academic/samtools/samtools.info b/academic/samtools/samtools.info
index eef9473b1e..40df7ba546 100644
--- a/academic/samtools/samtools.info
+++ b/academic/samtools/samtools.info
@@ -1,8 +1,8 @@
PRGNAM="samtools"
-VERSION="1.19.2"
+VERSION="1.20"
HOMEPAGE="http://www.htslib.org"
-DOWNLOAD="https://github.com/samtools/samtools/releases/download/1.19.2/samtools-1.19.2.tar.bz2"
-MD5SUM="318492d95f5d8cef697442d1be996b77"
+DOWNLOAD="https://github.com/samtools/samtools/releases/download/1.20/samtools-1.20.tar.bz2"
+MD5SUM="e33f429b57324a55e5cbe0ef9f3a094e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="htslib"
diff --git a/academic/smath-studio/smath-studio.SlackBuild b/academic/smath-studio/smath-studio.SlackBuild
index 4b26c719c3..e6b4740429 100644
--- a/academic/smath-studio/smath-studio.SlackBuild
+++ b/academic/smath-studio/smath-studio.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=smath-studio
-VERSION=${VERSION:-1.0.8348}
+VERSION=${VERSION:-1.1.8763}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/academic/smath-studio/smath-studio.desktop b/academic/smath-studio/smath-studio.desktop
index 6b41e1fe8d..2af6903742 100644
--- a/academic/smath-studio/smath-studio.desktop
+++ b/academic/smath-studio/smath-studio.desktop
@@ -7,5 +7,5 @@ GenericName=Computer algebra system
Comment=Symbolic computation software
Icon=smath-studio
Exec=smath-studio
-Categories=Education;
+Categories=Science;Education;Math
MimeType=
diff --git a/academic/smath-studio/smath-studio.info b/academic/smath-studio/smath-studio.info
index bc40d92965..c10558c6b9 100644
--- a/academic/smath-studio/smath-studio.info
+++ b/academic/smath-studio/smath-studio.info
@@ -1,9 +1,9 @@
PRGNAM="smath-studio"
-VERSION="1.0.8348"
+VERSION="1.1.8763"
HOMEPAGE="https://smath.info"
-DOWNLOAD="https://smath.com/file/Lw2xA/SMathStudioDesktop.1_0_8348.Mono.tar.gz \
+DOWNLOAD="https://smath.info/en-US/files/Download/w3XHB/SMathStudioDesktop.1_1_8763.Mono.tar.gz \
http://ponce.cc/slackware/sources/repo/SMathStudio.Icons.zip"
-MD5SUM="4ae9109f910c0085eeb8c193f3ad1c10 \
+MD5SUM="0e3c05eb81a82dbcce2ef04904624b2b \
1dd3ff0477b5c3c57fb815320a387643"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/academic/stellarsolver/stellarsolver.info b/academic/stellarsolver/stellarsolver.info
index e9d567c16f..106ea0e7ce 100644
--- a/academic/stellarsolver/stellarsolver.info
+++ b/academic/stellarsolver/stellarsolver.info
@@ -1,10 +1,10 @@
PRGNAM="stellarsolver"
VERSION="2.4"
HOMEPAGE="https://github.com/rlancaste/stellarsolver"
-DOWNLOAD="https://github.com/rlancaste/stellarsolver/archive/2.4/stellarsolver-2.4.tar.gz"
-MD5SUM="a4a92e7c2dc296d7fcbc814134d45886"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/rlancaste/stellarsolver/archive/2.4/stellarsolver-2.4.tar.gz"
+MD5SUM_x86_64="a4a92e7c2dc296d7fcbc814134d45886"
REQUIRES="wcslib"
MAINTAINER="Edward W. Koenig"
EMAIL="kingbeowulf@linuxgalaxy.org"
diff --git a/audio/ardour/ardour.SlackBuild b/audio/ardour/ardour.SlackBuild
index 63f72ba036..8dfad24c8d 100644
--- a/audio/ardour/ardour.SlackBuild
+++ b/audio/ardour/ardour.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for ardour
# Copyright 2008-2016 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2018-2023 Matteo Bernardini, Pisa, Italy
+# Copyright 2018-2024 Matteo Bernardini, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ardour
-VERSION=${VERSION:-8.1.0}
+VERSION=${VERSION:-8.6.0}
MAJVER=$(echo $VERSION | cut -d. -f1)
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -61,9 +61,6 @@ else
TARGET="$ARCH"
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$TARGET-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -88,8 +85,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
-# Thanks to fourtysixandtwo for pointing at this upstream pull request!
-patch -p1 < $CWD/libxml2-2.12-fix.patch
+sed -i "s|env\ python|env\ python3|" waf wscript
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/audio/ardour/ardour.info b/audio/ardour/ardour.info
index c68b2e5110..5a1196d197 100644
--- a/audio/ardour/ardour.info
+++ b/audio/ardour/ardour.info
@@ -1,8 +1,8 @@
PRGNAM="ardour"
-VERSION="8.1.0"
+VERSION="8.6.0"
HOMEPAGE="http://ardour.org"
-DOWNLOAD="https://ponce.cc/slackware/sources/repo/Ardour-8.1.0.tar.bz2"
-MD5SUM="278d59f3343057124989acbbf67d7f15"
+DOWNLOAD="https://ponce.cc/slackware/sources/repo/Ardour-8.6.0.tar.bz2"
+MD5SUM="b3f176e79f14988c7b42479214c15184"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="aubio jack liblo liblrdf rubberband suil cwiid lilv vst3sdk"
diff --git a/audio/ardour/libxml2-2.12-fix.patch b/audio/ardour/libxml2-2.12-fix.patch
deleted file mode 100644
index 00ebd0f4e2..0000000000
--- a/audio/ardour/libxml2-2.12-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e995daa37529715214c6c4a2587e4134aaaba02f Mon Sep 17 00:00:00 2001
-From: Nils Philippsen <nils@tiptoe.de>
-Date: Fri, 17 Nov 2023 23:26:06 +0100
-Subject: [PATCH] Fix failure to build with libxml2 version 2.12
-
-This declared some xmlError pointers const, which probably was always
-assumed, but not made explicit.
-
-Signed-off-by: Nils Philippsen <nils@tiptoe.de>
----
- gtk2_ardour/ardour_ui.cc | 8 ++++++--
- libs/pbd/xml++.cc | 2 +-
- 2 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
-index 54ed79ea83d..77ddbbe99ca 100644
---- a/gtk2_ardour/ardour_ui.cc
-+++ b/gtk2_ardour/ardour_ui.cc
-@@ -255,7 +255,7 @@ libxml_generic_error_func (void* /* parsing_context*/,
-
- static void
- libxml_structured_error_func (void* /* parsing_context*/,
-- xmlErrorPtr err)
-+ const xmlError *err)
- {
- string msg;
-
-@@ -403,7 +403,11 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
- /* stop libxml from spewing to stdout/stderr */
-
- xmlSetGenericErrorFunc (this, libxml_generic_error_func);
-- xmlSetStructuredErrorFunc (this, libxml_structured_error_func);
-+
-+ /* Cast to xmlStructuredErrorFunc to cope with different constness in different
-+ * versions of libxml2. */
-+
-+ xmlSetStructuredErrorFunc (this, (xmlStructuredErrorFunc)libxml_structured_error_func);
-
- /* Set this up early */
-
-diff --git a/libs/pbd/xml++.cc b/libs/pbd/xml++.cc
-index 5c57ad8395d..1f5a85772f6 100644
---- a/libs/pbd/xml++.cc
-+++ b/libs/pbd/xml++.cc
-@@ -170,7 +170,7 @@ XMLTree::write() const
- result = xmlSaveFormatFileEnc(_filename.c_str(), doc, "UTF-8", 1);
- #ifndef NDEBUG
- if (result == -1) {
-- xmlErrorPtr xerr = xmlGetLastError ();
-+ const xmlError *xerr = xmlGetLastError ();
- if (!xerr) {
- std::cerr << "unknown XML error during xmlSaveFormatFileEnc()." << std::endl;
- } else {
diff --git a/audio/ardour/vendor_qm-dsp.patch b/audio/ardour/vendor_qm-dsp.patch
deleted file mode 100644
index f8265fd6e4..0000000000
--- a/audio/ardour/vendor_qm-dsp.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git i/libs/qm-dsp/wscript w/libs/qm-dsp/wscript
-index 775098e06b..13f6b9410a 100644
---- i/libs/qm-dsp/wscript
-+++ w/libs/qm-dsp/wscript
-@@ -23,17 +23,10 @@ def options(opt):
- autowaf.set_options(opt)
-
- def configure(conf):
-- if conf.is_defined('USE_EXTERNAL_LIBS'):
-- conf.check_cxx(header_name="base/Pitch.h", mandatory=True)
-- conf.check_cxx(lib="qm-dsp", uselib_store="QMDSP", mandatory=True)
-- else:
-- conf.load('compiler_cxx')
-- autowaf.configure(conf)
-+ conf.load('compiler_cxx')
-+ autowaf.configure(conf)
-
- def build(bld):
-- if bld.is_defined('USE_EXTERNAL_LIBS'):
-- return
--
- # Host Library
- obj = bld(features = 'c cxx cxxstlib')
- obj.source = '''
-diff --git i/wscript w/wscript
-index 1c9bb1ff5d..95d377d8a7 100644
---- i/wscript
-+++ w/wscript
-@@ -1041,8 +1041,6 @@ def configure(conf):
-
- if Options.options.use_external_libs:
- conf.define('USE_EXTERNAL_LIBS', 1)
-- conf.env.append_value(
-- 'CXXFLAGS', '-I' + Options.options.qm_dsp_include)
-
- if Options.options.boost_include != '':
- conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
diff --git a/audio/audacity/audacity.SlackBuild b/audio/audacity/audacity.SlackBuild
index ddaee0e1a0..8d9d32e1dc 100644
--- a/audio/audacity/audacity.SlackBuild
+++ b/audio/audacity/audacity.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for audacity
# Copyright 2006-2010 Chess Griffin <chess@chessgriffin.com>
-# Copyright 2011-2023 Matteo Bernardini <ponce@slackbuilds.org>
+# Copyright 2011-2024 Matteo Bernardini <ponce@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -34,8 +34,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=audacity
-VERSION=${VERSION:-3.4.2}
-MANVER=${MANVER:-3.4.2}
+VERSION=${VERSION:-3.5.1}
+MANVER=${MANVER:-3.5.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -94,6 +94,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+sed -i 's|^#include "allegro.h"|#include "portsmf/allegro.h"|' libraries/lib-note-track/WrapAllegro.h
+
mkdir -p build
cd build
cmake \
diff --git a/audio/audacity/audacity.info b/audio/audacity/audacity.info
index 407e0201a9..e958eb685d 100644
--- a/audio/audacity/audacity.info
+++ b/audio/audacity/audacity.info
@@ -1,10 +1,10 @@
PRGNAM="audacity"
-VERSION="3.4.2"
+VERSION="3.5.1"
HOMEPAGE="https://www.audacityteam.org"
-DOWNLOAD="https://github.com/audacity/audacity/releases/download/Audacity-3.4.2/audacity-sources-3.4.2.tar.gz \
- https://github.com/audacity/audacity/releases/download/Audacity-3.4.2/audacity-manual-3.4.2.zip"
-MD5SUM="f8f96e980b5a880e5be4cd066662b290 \
- fba06b370931a6f0b1a69f5e8a922ab5"
+DOWNLOAD="https://github.com/audacity/audacity/releases/download/Audacity-3.5.1/audacity-sources-3.5.1.tar.gz \
+ https://github.com/audacity/audacity/releases/download/Audacity-3.5.1/audacity-manual-3.5.1.tar.gz"
+MD5SUM="42d866855b2563dc0ec50b9c38476a0d \
+ 237e90933f6367311dcc81a5dd53d075"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libsbsms lilv portaudio portmidi portsmf rapidjson soxr suil wxWidgets"
diff --git a/audio/lxmusic/0001-Use-themed-icon.patch b/audio/lxmusic/0001-Use-themed-icon.patch
new file mode 100644
index 0000000000..c94db18874
--- /dev/null
+++ b/audio/lxmusic/0001-Use-themed-icon.patch
@@ -0,0 +1,49 @@
+From f4c172d9c61700aa1f26ccaa154aa0d66093bb8f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Sun, 2 May 2021 13:50:30 +0200
+Subject: [PATCH] Use themed icon
+
+Also put the icon under the hicolor icon hierarchy.
+---
+ data/Makefile.am | 2 +-
+ src/lxmusic.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index c7679de..f612733 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -4,7 +4,7 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ desktopdir=$(datadir)/applications
+
+ icon_DATA=lxmusic.png
+-icondir=$(datadir)/pixmaps
++icondir=$(datadir)/icons/hicolor/128x128/apps
+
+ man_MANS = lxmusic.1
+
+diff --git a/src/lxmusic.c b/src/lxmusic.c
+index 60efc61..5e55aa4 100644
+--- a/src/lxmusic.c
++++ b/src/lxmusic.c
+@@ -265,7 +265,7 @@ void on_about(GtkWidget* mi, gpointer data)
+
+ about = gtk_about_dialog_new();
+ gtk_about_dialog_set_program_name( (GtkAboutDialog*)about, "LXMusic" );
+- gtk_about_dialog_set_logo((GtkAboutDialog*)about, gdk_pixbuf_new_from_file(PACKAGE_DATA_DIR"/pixmaps/lxmusic.png", NULL));
++ gtk_about_dialog_set_logo_icon_name((GtkAboutDialog*)about, "lxmusic");
+ gtk_about_dialog_set_version( (GtkAboutDialog*)about, VERSION );
+ gtk_about_dialog_set_authors( (GtkAboutDialog*)about, authors );
+ gtk_about_dialog_set_artists( (GtkAboutDialog*)about, artists );
+@@ -2395,7 +2395,7 @@ static void setup_ui()
+ gtk_builder_connect_signals(builder, NULL);
+
+ /* window icon */
+- gtk_window_set_icon_from_file(GTK_WINDOW(main_win), PACKAGE_DATA_DIR"/pixmaps/lxmusic.png", NULL );
++ gtk_window_set_icon_name(GTK_WINDOW(main_win), "lxmusic");
+
+ gtk_window_set_default_size(GTK_WINDOW(main_win), win_width, win_height);
+ /* this can trigger signal handler and show or hide the playlist. */
+--
+2.31.1
+
diff --git a/audio/lxmusic/README b/audio/lxmusic/README
index 7173dd227a..25bb3cf063 100644
--- a/audio/lxmusic/README
+++ b/audio/lxmusic/README
@@ -3,3 +3,7 @@ lxmusic (minimalist music player for LXDE)
LXMusic is based on xmms2, which is lightweight and has server/client
design. LXMusic has very few features, it can do nothing more than just
playing a list of music files.
+
+if you want to build this for gtk+2 pass to the script the switch
+
+ GTK3=no
diff --git a/audio/lxmusic/lxmusic.SlackBuild b/audio/lxmusic/lxmusic.SlackBuild
index c888d1f44b..80e0e10aca 100644
--- a/audio/lxmusic/lxmusic.SlackBuild
+++ b/audio/lxmusic/lxmusic.SlackBuild
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxmusic
VERSION=${VERSION:-0.4.7}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -67,6 +67,8 @@ else
LIBDIRSUFFIX=""
fi
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3=""
+
set -e
rm -rf $PKG
@@ -82,7 +84,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-sh autogen.sh || true
+patch -p1 < $CWD/0001-Use-themed-icon.patch
+
+autoreconf -fi
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -93,17 +97,19 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--mandir=/usr/man \
+ $WITHGTK3 \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
+install -m 0644 -D $CWD/$PRGNAM.appdata.xml $PKG/usr/share/metainfo/$PRGNAM.appdata.xml
+
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a COPYING NEWS README \
- $PKG/usr/doc/$PRGNAM-$VERSION || true
+cp -a COPYING NEWS README $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/audio/lxmusic/lxmusic.appdata.xml b/audio/lxmusic/lxmusic.appdata.xml
new file mode 100644
index 0000000000..e61040536a
--- /dev/null
+++ b/audio/lxmusic/lxmusic.appdata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop-application">
+ <id>org.lxde.lxmusic</id>
+ <launchable type="desktop-id">lxmusic.desktop</launchable>
+ <name>LXMusic</name>
+ <summary>Play your music files easily</summary>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0</project_license>
+ <developer_name>LXDE team</developer_name>
+ <description>
+ <p>LXMusic is the minimalist music player for LXDE. It is a graphical user interface (GUI) for the audio player xmms2, which is lightweight and incorporates a server/client design. LXMusic is simple to operate: the user can build multiple playlists of audio files (and xmms2-supported audio streams), and LXMusic plays a selected playlist. A wide variety of audio formats can be played by LXMusic by installing the appropriate xmms2 plugins.</p>
+ </description>
+ <screenshots>
+ <screenshot type="default">
+ <image>https://wiki.lxde.org/en/images/7/73/LXSMusic.png</image>
+ </screenshot>
+ </screenshots>
+ <url type="bugtracker">https://sourceforge.net/p/lxde/bugs/search/?q=labels:lxmusic</url>
+ <url type="homepage">https://www.lxde.org/</url>
+ <translation type="gettext">lxmusic</translation>
+</component>
diff --git a/audio/openvino-plugins-ai-audacity/README b/audio/openvino-plugins-ai-audacity/README
new file mode 100644
index 0000000000..d4111dc4cf
--- /dev/null
+++ b/audio/openvino-plugins-ai-audacity/README
@@ -0,0 +1,16 @@
+A set of AI-enabled effects, generators, and analyzers for Audacity.
+
+These AI features run 100% locally on your PC -- no internet connection
+necessary!
+OpenVINO is used to run AI models on supported accelerators found on
+the user's system such as CPU, GPU, and NPU.
+
+Due to the size of the openvino models, currently only two of the
+effects are provided with this build:
+ -Music Separation -- Separate a mono or stereo track into individual
+ stems -- Drums, Bass, Vocals, & Other Instruments.
+ -Noise Suppression -- Removes background noise from an audio sample.
+
+
+whisper.cpp needs to be build against openvino to pick it up as
+dependency.
diff --git a/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.SlackBuild b/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.SlackBuild
new file mode 100644
index 0000000000..84ec8619dd
--- /dev/null
+++ b/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.SlackBuild
@@ -0,0 +1,158 @@
+#!/bin/bash
+
+# Slackware build script for openvino-plugins-ai-audacity
+
+# Copyright 2024 Johannes Schoepfer, Germany
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=openvino-plugins-ai-audacity
+VERSION=${VERSION:-3.5.1}
+VERSION_SRC="${VERSION}-R2"
+VERSION_AUDACITY=3.5.1
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION_SRC
+tar xvf $CWD/$PRGNAM-$VERSION_SRC.tar.gz
+cd $PRGNAM-$VERSION_SRC
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} + -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+
+tar vxf $CWD/audacity-sources-$VERSION_AUDACITY.tar.gz
+
+cat << EOF >> audacity-sources-$VERSION_AUDACITY/modules/CMakeLists.txt
+add_subdirectory(mod-openvino)
+EOF
+mv mod-openvino audacity-sources-$VERSION_AUDACITY/modules/
+
+source /usr/share/openvino/setupvars.sh
+
+cd audacity-sources-$VERSION_AUDACITY
+ sed -i 's|^#include "allegro.h"|#include "portsmf/allegro.h"|' libraries/lib-note-track/WrapAllegro.h
+ mkdir build
+ cd build
+ unshare -n cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS $RPATH $LDPATH" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS $RPATH $LDPATH" \
+ -DAUDACITY_BUILD_LEVEL=2 \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -DHAVE_VISIBILITY=1" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS -DHAVE_VISIBILITY=1" \
+ -DCMAKE_CXX_STANDARD=11 \
+ -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ -DCMAKE_INSTALL_MANDIR=/usr/man \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL="on" \
+ -Daudacity_use_twolame="off" \
+ -Daudacity_use_ladspa="off" \
+ -Daudacity_use_soundtouch="off" \
+ -Daudacity_use_vamp="off" \
+ -Daudacity_has_vst3="off" \
+ -Daudacity_use_expat="system" \
+ -Daudacity_use_lame="off" \
+ -Daudacity_use_ffmpeg="off" \
+ -Daudacity_conan_enabled="off" \
+ -Daudacity_has_networking="off" \
+ -Daudacity_has_crashreports="off" \
+ -Daudacity_has_updates_check="off" \
+ -Daudacity_has_sentry_reporting="off" \
+ -Daudacity_obey_system_dependencies="on" \
+ -Daudacity_lib_preference="system" \
+ -Daudacity_use_wxwidgets="system" \
+ -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config \
+ -DwxWidgets_wxrc_EXECUTABLE=/usr/bin/wxrc \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make mod-openvino
+ make install/strip DESTDIR=$PKG/tmpxxx
+ mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/audacity/modules
+ mv $PKG/tmpxxx/usr/lib$LIBDIRSUFFIX/audacity/modules/mod-openvino.so $PKG/usr/lib$LIBDIRSUFFIX/audacity/modules/mod-openvino.so
+ patchelf --add-rpath "$INTEL_OPENVINO_DIR/runtime/lib/intel64/" $PKG/usr/lib$LIBDIRSUFFIX/audacity/modules/mod-openvino.so
+ rm -rf $PKG/tmpxxx
+ cd ..
+cd ..
+
+# Provide openvino models
+mkdir -p $PKG/usr/lib/openvino-models
+unzip $CWD/deepfilternet2.zip -d $PKG/usr/lib/openvino-models
+unzip $CWD/deepfilternet3.zip -d $PKG/usr/lib/openvino-models
+cp $CWD/htdemucs_v4.bin $PKG/usr/lib/openvino-models
+cp $CWD/htdemucs_v4.xml $PKG/usr/lib/openvino-models
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE.txt README.md doc/feature_doc $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.info b/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.info
new file mode 100644
index 0000000000..007adbf4e1
--- /dev/null
+++ b/audio/openvino-plugins-ai-audacity/openvino-plugins-ai-audacity.info
@@ -0,0 +1,20 @@
+PRGNAM="openvino-plugins-ai-audacity"
+VERSION="3.5.1"
+HOMEPAGE="https://github.com/intel/openvino-plugins-ai-audacity/"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/intel/openvino-plugins-ai-audacity/archive/v3.5.1-R2/openvino-plugins-ai-audacity-3.5.1-R2.tar.gz \
+ https://github.com/audacity/audacity/releases/download/Audacity-3.5.1/audacity-sources-3.5.1.tar.gz \
+ https://huggingface.co/Intel/demucs-openvino/resolve/main/htdemucs_v4.xml \
+ https://huggingface.co/Intel/demucs-openvino/resolve/main/htdemucs_v4.bin \
+ https://huggingface.co/Intel/deepfilternet-openvino/resolve/main/deepfilternet2.zip \
+ https://huggingface.co/Intel/deepfilternet-openvino/resolve/main/deepfilternet3.zip"
+MD5SUM_x86_64="3a8159867cf264afc280ab836ef848f9 \
+ 42d866855b2563dc0ec50b9c38476a0d \
+ aa7fcbb6980d83683902ac48c53116be \
+ 1d1fbf4673bd956b3c13879555fa0ad2 \
+ c17382730bdef35c325df210a1ff3d4b \
+ dfaca36bb422a37a299e4f328e1b6843"
+REQUIRES="audacity pytorch whisper.cpp"
+MAINTAINER="Johannes Schoepfer"
+EMAIL="slackbuilds@schoepfer.info"
diff --git a/audio/openvino-plugins-ai-audacity/slack-desc b/audio/openvino-plugins-ai-audacity/slack-desc
new file mode 100644
index 0000000000..a5be7b7654
--- /dev/null
+++ b/audio/openvino-plugins-ai-audacity/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+openvino-plugins-ai-audacity: openvino-plugins-ai-audacity (AI Plugins for Audacity)
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity: A set of AI-enabled effects, generators, and analyzers for Audacity
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity:
+openvino-plugins-ai-audacity: https://github.com/intel/openvino-plugins-ai-audacity/
+openvino-plugins-ai-audacity:
diff --git a/audio/rack/rack.SlackBuild b/audio/rack/rack.SlackBuild
index d782b51e9c..438b5e58bf 100644
--- a/audio/rack/rack.SlackBuild
+++ b/audio/rack/rack.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rack
SRCNAM=Rack2Free
-VERSION=${VERSION:-2.4.1}
+VERSION=${VERSION:-2.5.1}
SRCDIR=RackFree-$VERSION
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/audio/rack/rack.info b/audio/rack/rack.info
index 89d3f94faa..6ae407805c 100644
--- a/audio/rack/rack.info
+++ b/audio/rack/rack.info
@@ -1,8 +1,8 @@
PRGNAM="rack"
-VERSION="2.4.1"
+VERSION="2.5.1"
HOMEPAGE="https://vcvrack.com"
-DOWNLOAD="https://vcvrack.com/downloads/RackFree-2.4.1-lin-x64.zip"
-MD5SUM="23a13e50f617bc483ca2eb64d48d3b56"
+DOWNLOAD="https://vcvrack.com/downloads/RackFree-2.5.1-lin-x64.zip"
+MD5SUM="ca3a5ec5f1f9a3f948269e731cb73330"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="jack"
diff --git a/audio/yabridge/yabridge.info b/audio/yabridge/yabridge.info
index b5c35ef898..34ee3a893a 100644
--- a/audio/yabridge/yabridge.info
+++ b/audio/yabridge/yabridge.info
@@ -7,7 +7,7 @@ DOWNLOAD="https://github.com/robbert-vdh/yabridge/archive/5.1.0/yabridge-5.1.0.t
MD5SUM="2383d67c9089a4fda8ae311baaa8fe3b \
f9e2185ea8cdfbdc4d99c4a5f5e4d426 \
a58876a05ac16ada09f750a4b8564443"
-DOWNLOAD_x86_64=""
+DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES="%README% wine-staging asio bitsery function2 ghc_filesystem tomlplusplus rust16"
MAINTAINER="Martin Bångens"
diff --git a/desktop/BlockstreamGreen/BlockstreamGreen.SlackBuild b/desktop/BlockstreamGreen/BlockstreamGreen.SlackBuild
index 9a18f60302..7a00deeaf3 100644
--- a/desktop/BlockstreamGreen/BlockstreamGreen.SlackBuild
+++ b/desktop/BlockstreamGreen/BlockstreamGreen.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=BlockstreamGreen
-VERSION=${VERSION:-1.2.9}
+VERSION=${VERSION:-2.0.4}
SRC=BlockstreamGreen-x86_64.AppImage
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/desktop/BlockstreamGreen/BlockstreamGreen.info b/desktop/BlockstreamGreen/BlockstreamGreen.info
index 03805d808d..c9525e5ad2 100644
--- a/desktop/BlockstreamGreen/BlockstreamGreen.info
+++ b/desktop/BlockstreamGreen/BlockstreamGreen.info
@@ -1,10 +1,10 @@
PRGNAM="BlockstreamGreen"
-VERSION="1.2.9"
+VERSION="2.0.4"
HOMEPAGE="https://blockstream.com/green/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/Blockstream/green_qt/releases/download/release_1.2.9/BlockstreamGreen-x86_64.AppImage"
-MD5SUM_x86_64="0444b34b2a25b953efafa6ab3cabeacd"
+DOWNLOAD_x86_64="https://github.com/Blockstream/green_qt/releases/download/release_2.0.4/BlockstreamGreen-x86_64.AppImage"
+MD5SUM_x86_64="953c3a04a8dd95ac7762472e94edff55"
REQUIRES=""
MAINTAINER="David Ferrone"
EMAIL="zapwai@gmail.com"
diff --git a/desktop/Matcha-gtk-theme/Matcha-gtk-theme.SlackBuild b/desktop/Matcha-gtk-theme/Matcha-gtk-theme.SlackBuild
index 300bd92de0..2819e88f64 100644
--- a/desktop/Matcha-gtk-theme/Matcha-gtk-theme.SlackBuild
+++ b/desktop/Matcha-gtk-theme/Matcha-gtk-theme.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM="Matcha-gtk-theme"
-SRCVER=${SRCVER:-2023-10-30}
-VERSION=${VERSION:-2023_10_30}
+SRCVER=${SRCVER:-2024-05-01}
+VERSION=${VERSION:-2024_05_01}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/Matcha-gtk-theme/Matcha-gtk-theme.info b/desktop/Matcha-gtk-theme/Matcha-gtk-theme.info
index 225abb1e26..2d0eb5bbd3 100644
--- a/desktop/Matcha-gtk-theme/Matcha-gtk-theme.info
+++ b/desktop/Matcha-gtk-theme/Matcha-gtk-theme.info
@@ -1,8 +1,8 @@
PRGNAM="Matcha-gtk-theme"
-VERSION="2023_10_30"
+VERSION="2024_05_01"
HOMEPAGE="https://github.com/vinceliuice/Matcha-gtk-theme"
-DOWNLOAD="https://github.com/vinceliuice/Matcha-gtk-theme/archive/2023-10-30/Matcha-gtk-theme-2023-10-30.tar.gz"
-MD5SUM="3c08f4271dec2846a0ffedc0d6ed5aec"
+DOWNLOAD="https://github.com/vinceliuice/Matcha-gtk-theme/archive/2024-05-01/Matcha-gtk-theme-2024-05-01.tar.gz"
+MD5SUM="208cef85926ab3eb27d3ab6dc4ff7d23"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/desktop/adapta-gtk-theme/README b/desktop/adapta-gtk-theme/README
deleted file mode 100644
index ac189afbb3..0000000000
--- a/desktop/adapta-gtk-theme/README
+++ /dev/null
@@ -1,15 +0,0 @@
-adapta-gtk-theme (Gtk+ theme)
-
-adapta-gtk-theme is an adaptive Gtk+ theme based on Material Design
-Guidelines.
-
-For OpenBox users:
-
-Compton is the famous stand-alone compositor that works well with the
-Openbox window-manager. This package provides the recommended
-configuration file compton.conf in the Adapta/openbox-3 directory.
-
-Just copy this file into your ~/.config folder and restart compton.
-
-To properly work, this suggests the optional dependencies:
-ttf-noto, ttf-roboto.
diff --git a/desktop/adapta-gtk-theme/adapta-gtk-theme.SlackBuild b/desktop/adapta-gtk-theme/adapta-gtk-theme.SlackBuild
deleted file mode 100644
index 673e04d7ca..0000000000
--- a/desktop/adapta-gtk-theme/adapta-gtk-theme.SlackBuild
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-#
-# Slackware build script for adapta-gtk-theme.
-#
-# Copyright 2016-2020 Edinaldo P. Silva, Rio de Janeiro, Brazil.
-# 2020 Jan Filip Chadima <jfch@jagda.eu"
-# All rights reserved.
-#
-# Permission to use, copy, modify, and distribute this software for any purpose
-# with or without fee is hereby granted, provided that the above copyright
-# notice and this permission notice appear in all copies.
-#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
-# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# AUTHORS AND COPYRIGHT HOLDERS AND THEIR CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cd $(dirname $0) ; CWD=$(pwd)
-
-PRGNAM=adapta-gtk-theme
-VERSION=${VERSION:-3.95.0.11}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-PKGTYPE=${PKGTYPE:-tgz}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
-fi
-
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Well... we still using old glib...
-sed -i "s|2\.48.0|2.46.2|" configure.ac
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-
-./autogen.sh \
- --enable-parallel \
- --enable-gtk_legacy \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp COPYING LICENSE_CC_BY_SA4 README.md $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-cat $CWD/doinst.sh > $PKG/install/doinst.sh
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/desktop/adapta-gtk-theme/adapta-gtk-theme.info b/desktop/adapta-gtk-theme/adapta-gtk-theme.info
deleted file mode 100644
index d6830d5e99..0000000000
--- a/desktop/adapta-gtk-theme/adapta-gtk-theme.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="adapta-gtk-theme"
-VERSION="3.95.0.11"
-HOMEPAGE="https://github.com/adapta-project/adapta-gtk-theme/"
-DOWNLOAD="https://github.com/adapta-project/adapta-gtk-theme/archive/3.95.0.11/adapta-gtk-theme-3.95.0.11.tar.gz"
-MD5SUM="5608c26b6169a561fc5a714d1230f561"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="murrine inkscape"
-MAINTAINER="Jan Filip Chadima"
-EMAIL="jfch@jagda.eu"
diff --git a/desktop/adapta-gtk-theme/doinst.sh b/desktop/adapta-gtk-theme/doinst.sh
deleted file mode 100644
index 401d987795..0000000000
--- a/desktop/adapta-gtk-theme/doinst.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-if [ -x /usr/bin/update-desktop-database ]; then
- /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
-fi
-
-if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
- if [ -x /usr/bin/gtk-update-icon-cache ]; then
- /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
- fi
-fi
-
-if [ -e usr/share/glib-2.0/schemas ]; then
- if [ -x /usr/bin/glib-compile-schemas ]; then
- /usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas >/dev/null 2>&1
- fi
-fi
diff --git a/desktop/adapta-gtk-theme/slack-desc b/desktop/adapta-gtk-theme/slack-desc
deleted file mode 100644
index 5c85b87288..0000000000
--- a/desktop/adapta-gtk-theme/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-adapta-gtk-theme: adapta-gtk-theme (Gtk+ theme)
-adapta-gtk-theme:
-adapta-gtk-theme: adapta-gtk-theme is an adaptive Gtk+ theme based on Material Design
-adapta-gtk-theme: Guidelines.
-adapta-gtk-theme:
-adapta-gtk-theme: home page: https://github.com/adapta-project/adapta-gtk-theme/
-adapta-gtk-theme:
-adapta-gtk-theme:
-adapta-gtk-theme:
-adapta-gtk-theme:
-adapta-gtk-theme:
diff --git a/desktop/arc-theme/arc-theme.SlackBuild b/desktop/arc-theme/arc-theme.SlackBuild
index 8b5bf58ebb..1e5fd96b8e 100644
--- a/desktop/arc-theme/arc-theme.SlackBuild
+++ b/desktop/arc-theme/arc-theme.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for "arc-theme".
# Copyright 2016 Marcel Saegebarth <marc@mos6581.de>
+# Copyright 2024 Philip van der Hoeven <philip@vd-hoeven.nl>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -27,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=arc-theme
-VERSION=${VERSION:-20201121_81130a2}
+VERSION=${VERSION:-20221218}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -66,9 +67,6 @@ else
LIBDIRSUFFIX=""
fi
-gnome_shell="--disable-gnome-shell" ; [[ $(which gnome-shell) ]] && gnome_shell=""
-cinnamon="--disable-cinnamon" ; [[ $(which cinnamon-session) ]] && cinnamon=""
-
set -e
rm -rf $PKG
@@ -84,23 +82,33 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-sed -i "s|export-png=|export-type=png --export-filename=|" common/*/*.am || exit 1
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./autogen.sh \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- $gnome_shell \
- $cinnamon \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
+THEMES="gtk2,gtk3,gtk4,metacity,plank,unity,xfwm"
+
+# Check for gnome and cinnamon
+type -P gnome-shell >/dev/null && THEMES+=",gnome-shell"
+type -P cinnamon-session >/dev/null && THEMES+=",cinnamon"
+
+# Build transparent theme
+mkdir build
+cd build
+ meson setup .. \
+ --prefix=/usr \
+ -Dthemes=$THEMES
+ "${NINJA:=ninja}"
+ DESTDIR=$PKG $NINJA install
+cd ..
+
+# Build solid theme
+rm -rf build
+mkdir build
+cd build
+ meson setup .. \
+ --prefix=/usr \
+ -Dtransparency=false \
+ -Dthemes=$THEMES
+ "${NINJA:=ninja}"
+ DESTDIR=$PKG $NINJA install
+cd ..
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING HACKING.md README.md $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/desktop/arc-theme/arc-theme.info b/desktop/arc-theme/arc-theme.info
index 37e8664521..e0226cf701 100644
--- a/desktop/arc-theme/arc-theme.info
+++ b/desktop/arc-theme/arc-theme.info
@@ -1,10 +1,10 @@
PRGNAM="arc-theme"
-VERSION="20201121_81130a2"
+VERSION="20221218"
HOMEPAGE="https://github.com/jnsh/arc-theme"
-DOWNLOAD="http://ponce.cc/slackware/sources/repo/arc-theme-20201121_81130a2.tar.xz"
-MD5SUM="bffd762770faf368ad2849534c5e3ad4"
+DOWNLOAD="https://github.com/jnsh/arc-theme/releases/download/20221218/arc-theme-20221218.tar.xz"
+MD5SUM="ac268a1603e85e9a1c8fd07f04f92cc1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="inkscape murrine optipng"
-MAINTAINER="Marcel Saegebarth"
-EMAIL="marc@mos6581.de"
+REQUIRES="murrine"
+MAINTAINER="Philip van der Hoeven"
+EMAIL="philip@vd-hoeven.nl"
diff --git a/desktop/buku/buku.SlackBuild b/desktop/buku/buku.SlackBuild
index 582fae6e37..d793e0db50 100644
--- a/desktop/buku/buku.SlackBuild
+++ b/desktop/buku/buku.SlackBuild
@@ -4,7 +4,7 @@
#
# Copyright 2018 Edinaldo P. Silva, Rio de Janeiro, Brazil.
# Copyright 2019-2021 Andrew Clemons, Wellington New Zealand
-# Copyright 2022-2023 Andrew Clemons, Tokyo Japan
+# Copyright 2022-2024 Andrew Clemons, Tokyo Japan
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=buku
-VERSION=${VERSION:-4.8}
+VERSION=${VERSION:-4.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -49,20 +49,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/desktop/buku/buku.info b/desktop/buku/buku.info
index 62d587b8a9..317170e488 100644
--- a/desktop/buku/buku.info
+++ b/desktop/buku/buku.info
@@ -1,8 +1,8 @@
PRGNAM="buku"
-VERSION="4.8"
+VERSION="4.9"
HOMEPAGE="https://github.com/jarun/buku"
-DOWNLOAD="https://github.com/jarun/buku/archive/v4.8/buku-4.8.tar.gz"
-MD5SUM="63cf5e007af3eaa8f7b07b8c70e12112"
+DOWNLOAD="https://github.com/jarun/buku/archive/v4.9/buku-4.9.tar.gz"
+MD5SUM="0c5de4443843f3cc6215566a82bb2c88"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="BeautifulSoup4 cryptography html5lib"
diff --git a/desktop/dunst/dunst.SlackBuild b/desktop/dunst/dunst.SlackBuild
index 37dbc84429..4ce590a46e 100644
--- a/desktop/dunst/dunst.SlackBuild
+++ b/desktop/dunst/dunst.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2014-2021 S. S. Bolokanar, Bulgaria <bolokanar@bulgars.org>
+# Copyright 2014-2021 S. S. Bolokanar, Bulgaria <bolokanar@bulgarsociety.org>
# С. С. Болоканаръ, България
# All rights reserved.
#
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dunst
-VERSION=${VERSION:-1.10.0}
+VERSION=${VERSION:-1.11.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/dunst/dunst.info b/desktop/dunst/dunst.info
index 706de3ce97..6f4d586078 100644
--- a/desktop/dunst/dunst.info
+++ b/desktop/dunst/dunst.info
@@ -1,10 +1,10 @@
PRGNAM="dunst"
-VERSION="1.10.0"
+VERSION="1.11.0"
HOMEPAGE="https://dunst-project.org/"
-DOWNLOAD="https://github.com/dunst-project/dunst/archive/v1.10.0/dunst-1.10.0.tar.gz"
-MD5SUM="691f34ed84de67a2ef88d6bcd13d68f2"
+DOWNLOAD="https://github.com/dunst-project/dunst/archive/v1.11.0/dunst-1.11.0.tar.gz"
+MD5SUM="0faf54c38db9efab32c302d122a55a13"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="S. S. Bolokanar"
-EMAIL="bolokanar@bulgars.org"
+EMAIL="bolokanar@bulgarsociety.org"
diff --git a/desktop/durden/durden.info b/desktop/durden/durden.info
index 8b6f01c575..9e0e422cb4 100644
--- a/desktop/durden/durden.info
+++ b/desktop/durden/durden.info
@@ -2,7 +2,7 @@ PRGNAM="durden"
VERSION="0.6.1"
HOMEPAGE="https://durden.arcan-fe.com"
DOWNLOAD="https://github.com/letoram/durden/archive/0.6.1/durden-0.6.1.tar.gz"
-MD5SUM="9d9bacafe2d906cd8968c96317e61e67"
+MD5SUM="f7eaf8fbbd6ebf118ba883f0ba3afe00"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="arcan"
diff --git a/desktop/dwmblocks/dwmblocks.SlackBuild b/desktop/dwmblocks/dwmblocks.SlackBuild
index 92f4da7fcc..ad7fccb5c9 100644
--- a/desktop/dwmblocks/dwmblocks.SlackBuild
+++ b/desktop/dwmblocks/dwmblocks.SlackBuild
@@ -25,13 +25,13 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dwmblocks
-VERSION=${VERSION:-20240319}
+VERSION=${VERSION:-20240420}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=dwmblocks-async
-COMMIT=${COMMIT:-8ebe985db8c0818e6316b8b4b82e20d6f680c017}
+COMMIT=${COMMIT:-fe538a7a2fc52e991a553bd76719735141658844}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/desktop/dwmblocks/dwmblocks.info b/desktop/dwmblocks/dwmblocks.info
index 4dfb1956e8..7b85216818 100644
--- a/desktop/dwmblocks/dwmblocks.info
+++ b/desktop/dwmblocks/dwmblocks.info
@@ -1,8 +1,8 @@
PRGNAM="dwmblocks"
-VERSION="20240319"
+VERSION="20240420"
HOMEPAGE="https://github.com/UtkarshVerma/dwmblocks-async"
-DOWNLOAD="https://github.com/UtkarshVerma/dwmblocks-async/archive/8ebe985/dwmblocks-async-8ebe985db8c0818e6316b8b4b82e20d6f680c017.tar.gz"
-MD5SUM="a20824ce2b71beb6c804a4ca19632aa8"
+DOWNLOAD="https://github.com/UtkarshVerma/dwmblocks-async/archive/fe538a7/dwmblocks-async-fe538a7a2fc52e991a553bd76719735141658844.tar.gz"
+MD5SUM="40155bf796f0be1799853bb51bf77963"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/desktop/e16.theme.pack/e16.theme.pack.SlackBuild b/desktop/e16.theme.pack/e16.theme.pack.SlackBuild
index 872ed39b12..bde235cd64 100644
--- a/desktop/e16.theme.pack/e16.theme.pack.SlackBuild
+++ b/desktop/e16.theme.pack/e16.theme.pack.SlackBuild
@@ -32,9 +32,6 @@ PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -102,7 +99,7 @@ for subdir in */* ; do
done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/desktop/e16.theme.pack/e16.theme.pack.info b/desktop/e16.theme.pack/e16.theme.pack.info
index e6e5411203..901d182ebe 100644
--- a/desktop/e16.theme.pack/e16.theme.pack.info
+++ b/desktop/e16.theme.pack/e16.theme.pack.info
@@ -2,7 +2,7 @@ PRGNAM="e16.theme.pack"
VERSION="1.0.3"
HOMEPAGE="https://sourceforge.net/projects/e16-theme-pack/"
DOWNLOAD="https://sourceforge.net/projects/e16-theme-pack/files/e16.theme.pack-1.0.3.tar.gz"
-MD5SUM="119f1d1739f5c9b888d9148541f38e64"
+MD5SUM="e9cd22b44d13ede16cb042a4a3569a52"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/desktop/gtklock-playerctl-module/gtklock-playerctl-module.SlackBuild b/desktop/gtklock-playerctl-module/gtklock-playerctl-module.SlackBuild
index 006af47fba..3ecb6a571c 100644
--- a/desktop/gtklock-playerctl-module/gtklock-playerctl-module.SlackBuild
+++ b/desktop/gtklock-playerctl-module/gtklock-playerctl-module.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for gtklock-playerctl-module
-# Copyright 2023 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gtklock-playerctl-module
-VERSION=${VERSION:-2.0.1}
+VERSION=${VERSION:-3.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/gtklock-playerctl-module/gtklock-playerctl-module.info b/desktop/gtklock-playerctl-module/gtklock-playerctl-module.info
index 997f8b158c..7531a97c9f 100644
--- a/desktop/gtklock-playerctl-module/gtklock-playerctl-module.info
+++ b/desktop/gtklock-playerctl-module/gtklock-playerctl-module.info
@@ -1,8 +1,8 @@
PRGNAM="gtklock-playerctl-module"
-VERSION="2.0.1"
+VERSION="3.0.0"
HOMEPAGE="https://github.com/jovanlanik/gtklock-playerctl-module"
-DOWNLOAD="https://github.com/jovanlanik/gtklock-playerctl-module/archive/v2.0.1/gtklock-playerctl-module-2.0.1.tar.gz"
-MD5SUM="d886ef3220236e48379e058f6ea63936"
+DOWNLOAD="https://github.com/jovanlanik/gtklock-playerctl-module/archive/v3.0.0/gtklock-playerctl-module-3.0.0.tar.gz"
+MD5SUM="4356cd3a802c53c2ef089ac9e3ec7b8f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gtklock playerctl"
diff --git a/desktop/gtklock-powerbar-module/gtklock-powerbar-module.SlackBuild b/desktop/gtklock-powerbar-module/gtklock-powerbar-module.SlackBuild
index 1af4bc79c7..077e243e30 100644
--- a/desktop/gtklock-powerbar-module/gtklock-powerbar-module.SlackBuild
+++ b/desktop/gtklock-powerbar-module/gtklock-powerbar-module.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for gtklock-powerbar-module
-# Copyright 2023 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gtklock-powerbar-module
-VERSION=${VERSION:-2.0.1}
+VERSION=${VERSION:-3.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/gtklock-powerbar-module/gtklock-powerbar-module.info b/desktop/gtklock-powerbar-module/gtklock-powerbar-module.info
index 314c28167a..a5aebddda1 100644
--- a/desktop/gtklock-powerbar-module/gtklock-powerbar-module.info
+++ b/desktop/gtklock-powerbar-module/gtklock-powerbar-module.info
@@ -1,8 +1,8 @@
PRGNAM="gtklock-powerbar-module"
-VERSION="2.0.1"
+VERSION="3.0.0"
HOMEPAGE="https://github.com/jovanlanik/gtklock-powerbar-module"
-DOWNLOAD="https://github.com/jovanlanik/gtklock-powerbar-module/archive/v2.0.1/gtklock-powerbar-module-2.0.1.tar.gz"
-MD5SUM="b8f48f929a787a30a89610c3b89a8735"
+DOWNLOAD="https://github.com/jovanlanik/gtklock-powerbar-module/archive/v3.0.0/gtklock-powerbar-module-3.0.0.tar.gz"
+MD5SUM="517b72dc7d48ab5d2e6cdbc024118539"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gtklock"
diff --git a/desktop/gtklock-userinfo-module/gtklock-userinfo-module.SlackBuild b/desktop/gtklock-userinfo-module/gtklock-userinfo-module.SlackBuild
index bcda83e643..059429300c 100644
--- a/desktop/gtklock-userinfo-module/gtklock-userinfo-module.SlackBuild
+++ b/desktop/gtklock-userinfo-module/gtklock-userinfo-module.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for gtklock-userinfo-module
-# Copyright 2023 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gtklock-userinfo-module
-VERSION=${VERSION:-2.1.0}
+VERSION=${VERSION:-3.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/gtklock-userinfo-module/gtklock-userinfo-module.info b/desktop/gtklock-userinfo-module/gtklock-userinfo-module.info
index cbdc5c3fbe..bf14a56597 100644
--- a/desktop/gtklock-userinfo-module/gtklock-userinfo-module.info
+++ b/desktop/gtklock-userinfo-module/gtklock-userinfo-module.info
@@ -1,8 +1,8 @@
PRGNAM="gtklock-userinfo-module"
-VERSION="2.1.0"
+VERSION="3.0.0"
HOMEPAGE="https://github.com/jovanlanik/gtklock-userinfo-module"
-DOWNLOAD="https://github.com/jovanlanik/gtklock-userinfo-module/archive/v2.1.0/gtklock-userinfo-module-2.1.0.tar.gz"
-MD5SUM="0aa43eb2af974e57b9b2b4a9e904f247"
+DOWNLOAD="https://github.com/jovanlanik/gtklock-userinfo-module/archive/v3.0.0/gtklock-userinfo-module-3.0.0.tar.gz"
+MD5SUM="ee894431fe6302ed0902fdd64bcb31d2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README% gtklock mugshot"
diff --git a/desktop/gtklock/gtklock.SlackBuild b/desktop/gtklock/gtklock.SlackBuild
index 7bcc1c46db..80fb93a9be 100644
--- a/desktop/gtklock/gtklock.SlackBuild
+++ b/desktop/gtklock/gtklock.SlackBuild
@@ -10,7 +10,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gtklock
-VERSION=${VERSION:-2.1.0}
+VERSION=${VERSION:-3.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -61,28 +61,35 @@ chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-# 20230407 bkw: sed surgery. Slackware 15.0 doesn't have a pkg-config
-# pam.pc, so we have to remove it from LIBS, then add -lpam to LDLIBS.
-# Also, use our CFLAGS, fix the man page path, and install to /usr,
-# not /usr/local.
-sed -i -e '/^LIBS\>/s,\<pam\>,,' \
- -e '/^LDLIBS\>/s,$, -lpam,' \
- -e "/-std=/s,= ,= $SLKCFLAGS ," \
- -e 's,share/man,man,g' \
- -e 's,usr/local,usr,g' \
- makefile
-
-make
-strip $PRGNAM
-make install DESTDIR=$PKG
-gzip $PKG/usr/man/man?/*
+mkdir -p meson-build
+cd meson-build
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ meson setup .. \
+ --buildtype=release \
+ --infodir=/usr/info \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --prefix=/usr \
+ --sysconfdir=/etc
+
+"${NINJA:=ninja}"
+ DESTDIR=$PKG $NINJA install
+cd ..
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# It's a config file, so make it .new
rename lock lock.new $PKG/etc/pam.d/$PRGNAM
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
-cp -a LICENSE README* $PKGDOC
+cp -a LICENSE README.md $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/desktop/gtklock/gtklock.info b/desktop/gtklock/gtklock.info
index 991a7633d0..ad123e6a4f 100644
--- a/desktop/gtklock/gtklock.info
+++ b/desktop/gtklock/gtklock.info
@@ -1,10 +1,10 @@
PRGNAM="gtklock"
-VERSION="2.1.0"
+VERSION="3.0.0"
HOMEPAGE="https://github.com/jovanlanik/gtklock/"
-DOWNLOAD="https://github.com/jovanlanik/gtklock/archive/v2.1.0/gtklock-2.1.0.tar.gz"
-MD5SUM="479d24e6d283e154cb4aa84beff645f3"
+DOWNLOAD="https://github.com/jovanlanik/gtklock/archive/v3.0.0/gtklock-3.0.0.tar.gz"
+MD5SUM="c8545d13ec005aac659257010b20d6a1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="gtk-layer-shell scdoc"
+REQUIRES="gtk-layer-shell gtk-session-lock scdoc"
MAINTAINER="Jay Lanagan"
EMAIL="j@lngn.net"
diff --git a/desktop/libqtxdg/libqtxdg.SlackBuild b/desktop/libqtxdg/libqtxdg.SlackBuild
index c4cda99824..7d4f1f175d 100644
--- a/desktop/libqtxdg/libqtxdg.SlackBuild
+++ b/desktop/libqtxdg/libqtxdg.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for libqtxdg
# Copyright 2018 Egor Zayats, Minsk Belarus
-# Copyright 2022-2023 Isaac Yu <isaacyu@protonmail.com>
+# Copyright 2022-2024 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libqtxdg
-VERSION=${VERSION:-3.11.0}
+VERSION=${VERSION:-3.12.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/libqtxdg/libqtxdg.info b/desktop/libqtxdg/libqtxdg.info
index 8950ec872c..77003be19b 100644
--- a/desktop/libqtxdg/libqtxdg.info
+++ b/desktop/libqtxdg/libqtxdg.info
@@ -1,8 +1,8 @@
PRGNAM="libqtxdg"
-VERSION="3.11.0"
+VERSION="3.12.0"
HOMEPAGE="https://lxqt.org"
-DOWNLOAD="https://github.com/lxqt/libqtxdg/releases/download/3.11.0/libqtxdg-3.11.0.tar.xz"
-MD5SUM="1dfe393914a1e29c3b0d684bff8189f4"
+DOWNLOAD="https://github.com/lxqt/libqtxdg/releases/download/3.12.0/libqtxdg-3.12.0.tar.xz"
+MD5SUM="6cb85091630b7d84278b2430e92a62bb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="lxqt-build-tools"
diff --git a/desktop/lxappearance-obconf/lxappearance-obconf.SlackBuild b/desktop/lxappearance-obconf/lxappearance-obconf.SlackBuild
index bd58521f3f..26a3121ca1 100644
--- a/desktop/lxappearance-obconf/lxappearance-obconf.SlackBuild
+++ b/desktop/lxappearance-obconf/lxappearance-obconf.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for lxappearance-obconf
-# Copyright 2011-2017 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2011-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxappearance-obconf
VERSION=${VERSION:-0.2.3}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -41,9 +41,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -86,6 +83,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+if [ "$GTK3" = "--enable-gtk3" ]; then sed -i /frame1/,+19d src/obconf.glade ; fi
+
sh autogen.sh || true
CFLAGS="$SLKCFLAGS" \
diff --git a/desktop/lxappearance/README b/desktop/lxappearance/README
index 47945eed39..2636aec429 100644
--- a/desktop/lxappearance/README
+++ b/desktop/lxappearance/README
@@ -4,8 +4,8 @@ change the theme, icons, and fonts used by applications easily.
If you want to build this without dbus support (ex. you are building
not to use this inside of LXDE) pass to the script the switch:
- DBUS=no
+ DBUS=no
-If you want to build this for GTK+3, pass to the script the switch
+If you want to build this for gtk+2, pass to the script the switch
- GTK3=yes
+ GTK3=no
diff --git a/desktop/lxappearance/lxappearance.SlackBuild b/desktop/lxappearance/lxappearance.SlackBuild
index d9ccdad1a1..cceb060b56 100644
--- a/desktop/lxappearance/lxappearance.SlackBuild
+++ b/desktop/lxappearance/lxappearance.SlackBuild
@@ -1,14 +1,31 @@
#!/bin/bash
# Slackware build script for LXAppearance
-
-# Originally by "majk" <majk@konstelacioj.info>
+# Copyright 2019-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxappearance
VERSION=${VERSION:-0.6.3}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -20,9 +37,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -46,13 +60,9 @@ else
LIBDIRSUFFIX=""
fi
-DBUS=${DBUS:-yes}
-DBUS_SUPPORT="--enable-dbus"
-[ "$DBUS" = "no" ] && DBUS_SUPPORT=""
-
+DBUS_SUPPORT="--enable-dbus" ; [ "${DBUS:-yes}" = "no" ] && DBUS_SUPPORT=""
-WITHGTK3=""
-[ "${GTK3:-no}" = "yes" ] && WITHGTK3="--enable-gtk3"
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3=""
set -e
diff --git a/desktop/lxpanel/README b/desktop/lxpanel/README
index 14dd8a5e8a..1874d5d900 100644
--- a/desktop/lxpanel/README
+++ b/desktop/lxpanel/README
@@ -1 +1,7 @@
LXPanel is a NETWM/EWMH compliant lightweight X11 desktop panel.
+
+If you want to build this for gtk+2, pass to the script the switch
+
+ GTK3=no
+
+you will need the additional dependency keybinder in this case.
diff --git a/desktop/lxpanel/lxpanel.SlackBuild b/desktop/lxpanel/lxpanel.SlackBuild
index d1fd7184d5..853f3ce20f 100644
--- a/desktop/lxpanel/lxpanel.SlackBuild
+++ b/desktop/lxpanel/lxpanel.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for lxpanel
# (C) 2008 Michael Wagner <lapinours@web.de>
-# Copyright 2011-2021 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2011-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxpanel
VERSION=${VERSION:-0.10.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -41,9 +41,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -67,6 +64,8 @@ else
LIBDIRSUFFIX=""
fi
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3=""
+
DOCS="AUTHORS COPYING ChangeLog README"
set -e
@@ -84,7 +83,14 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-sh autogen.sh || true
+if [ "$GTK3" = "yes" ]; then
+ # Disable pager plugin as it breaks panel layout with GTK+ 3
+ # https://sourceforge.net/p/lxde/bugs/773/
+ sed -i '/pager.c/d' plugins/Makefile.am
+ sed -i '/STATIC_PAGER/d' src/private.h
+ sed -i 's/libwnck-3.0//' configure.ac
+ autoreconf -fi
+fi
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -99,6 +105,7 @@ CXXFLAGS="$SLKCFLAGS" \
--program-suffix= \
--with-plugins=all \
--disable-silent-rules \
+ $WITHGTK3 \
--build=$ARCH-slackware-linux
make
diff --git a/desktop/lxpanel/lxpanel.info b/desktop/lxpanel/lxpanel.info
index acef8470ba..acb7f1aa94 100644
--- a/desktop/lxpanel/lxpanel.info
+++ b/desktop/lxpanel/lxpanel.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://downloads.sf.net/lxde/lxpanel-0.10.1.tar.xz"
MD5SUM="c922d044789c3d7ae028f0e80dea18b0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="keybinder libfm"
+REQUIRES="libfm"
MAINTAINER="Matteo Bernardini"
EMAIL="ponce@slackbuilds.org"
diff --git a/desktop/mwm-utils/mwm-utils.SlackBuild b/desktop/mwm-utils/mwm-utils.SlackBuild
index 8f1a308543..49983abdbb 100644
--- a/desktop/mwm-utils/mwm-utils.SlackBuild
+++ b/desktop/mwm-utils/mwm-utils.SlackBuild
@@ -25,6 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mwm-utils
+SRCNAM=emwm-utils
VERSION=${VERSION:-1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -66,9 +67,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/desktop/mwm-utils/mwm-utils.info b/desktop/mwm-utils/mwm-utils.info
index 6434ea9f6f..f18bd42e5b 100644
--- a/desktop/mwm-utils/mwm-utils.info
+++ b/desktop/mwm-utils/mwm-utils.info
@@ -1,8 +1,8 @@
PRGNAM="mwm-utils"
VERSION="1.0"
HOMEPAGE="https://fastestcode.org/emwm.html"
-DOWNLOAD="https://github.com/alx210/mwm-utils/archive/v1.0/mwm-utils-1.0.tar.gz"
-MD5SUM="a7d796a1196b027a5e8749aaac0b6994"
+DOWNLOAD="https://github.com/alx210/emwm-utils/archive/v1.0/emwm-utils-1.0.tar.gz"
+MD5SUM="6a29ee475fe5f7ebc10b364b8253198c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/desktop/neutrality-cursor-theme/README b/desktop/neutrality-cursor-theme/README
new file mode 100644
index 0000000000..ef09ff57af
--- /dev/null
+++ b/desktop/neutrality-cursor-theme/README
@@ -0,0 +1,4 @@
+X11 cursors based on the Neutral and Neutral++ cursor themes.
+
+Note that these cursors have a fixed size of 24 pixels and are not
+suited for HiDPI displays.
diff --git a/desktop/neutrality-cursor-theme/neutrality-cursor-theme.SlackBuild b/desktop/neutrality-cursor-theme/neutrality-cursor-theme.SlackBuild
new file mode 100644
index 0000000000..e68c2658ad
--- /dev/null
+++ b/desktop/neutrality-cursor-theme/neutrality-cursor-theme.SlackBuild
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+# Slackware build script for neutrality-cursor-theme
+
+# Copyright 2024 rc_05 <contact@rc-05.com>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=neutrality-cursor-theme
+VERSION=${VERSION:-20240413}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+GIT_COMMIT=c4d4ab6
+ARCH=noarch
+SRCNAM=${PRGNAM%%-cursor-theme}-2024-04-13-${GIT_COMMIT}
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+mkdir $PRGNAM-$VERSION
+cd $PRGNAM-$VERSION
+tar xvf $CWD/$SRCNAM.tar.gz
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p $PKG/usr/share/icons
+cp -a * $PKG/usr/share/icons
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/desktop/neutrality-cursor-theme/neutrality-cursor-theme.info b/desktop/neutrality-cursor-theme/neutrality-cursor-theme.info
new file mode 100644
index 0000000000..ccec8a080d
--- /dev/null
+++ b/desktop/neutrality-cursor-theme/neutrality-cursor-theme.info
@@ -0,0 +1,10 @@
+PRGNAM="neutrality-cursor-theme"
+VERSION="20240413"
+HOMEPAGE="https://github.com/EBADBEEF/neutrality-cursors"
+DOWNLOAD="https://github.com/EBADBEEF/neutrality-cursors/releases/download/neutrality-2024-04-13-c4d4ab6/neutrality-2024-04-13-c4d4ab6.tar.gz"
+MD5SUM="bf00b47b68e21a62b71c43d839837e73"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="rc_05"
+EMAIL="contact@rc-05.com"
diff --git a/desktop/neutrality-cursor-theme/slack-desc b/desktop/neutrality-cursor-theme/slack-desc
new file mode 100644
index 0000000000..d096ef08e6
--- /dev/null
+++ b/desktop/neutrality-cursor-theme/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+neutrality-cursor-theme: neutrality-cursor-theme (XCursor theme)
+neutrality-cursor-theme:
+neutrality-cursor-theme: XCursor theme, based on the Neutral and Neutral++ projects.
+neutrality-cursor-theme:
+neutrality-cursor-theme: Homepage: https://github.com/EBADBEEF/neutrality-cursors
+neutrality-cursor-theme:
+neutrality-cursor-theme:
+neutrality-cursor-theme:
+neutrality-cursor-theme:
+neutrality-cursor-theme:
+neutrality-cursor-theme:
diff --git a/desktop/nwg-displays/nwg-displays.SlackBuild b/desktop/nwg-displays/nwg-displays.SlackBuild
index 66372a4210..284c2e9e88 100644
--- a/desktop/nwg-displays/nwg-displays.SlackBuild
+++ b/desktop/nwg-displays/nwg-displays.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for nwg-displays
-# Copyright 2023 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nwg-displays
-VERSION=${VERSION:-0.3.16}
+VERSION=${VERSION:-0.3.17}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/nwg-displays/nwg-displays.info b/desktop/nwg-displays/nwg-displays.info
index 67f4173ceb..b6bf74f177 100644
--- a/desktop/nwg-displays/nwg-displays.info
+++ b/desktop/nwg-displays/nwg-displays.info
@@ -1,8 +1,8 @@
PRGNAM="nwg-displays"
-VERSION="0.3.16"
+VERSION="0.3.17"
HOMEPAGE="https://github.com/nwg-piotr/nwg-displays/"
-DOWNLOAD="https://github.com/nwg-piotr/nwg-displays/archive/v0.3.16/nwg-displays-0.3.16.tar.gz"
-MD5SUM="9bf04d6d1f6cc0b94e5548bc59355926"
+DOWNLOAD="https://github.com/nwg-piotr/nwg-displays/archive/v0.3.17/nwg-displays-0.3.17.tar.gz"
+MD5SUM="42ba5a4988acfbf94eb0ba6e6fee34e3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gtk-layer-shell i3ipc wlr-randr"
diff --git a/desktop/nwg-panel/nwg-panel.SlackBuild b/desktop/nwg-panel/nwg-panel.SlackBuild
index 78cff94a2f..df099d5bc7 100644
--- a/desktop/nwg-panel/nwg-panel.SlackBuild
+++ b/desktop/nwg-panel/nwg-panel.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nwg-panel
-VERSION=${VERSION:-0.9.27}
+VERSION=${VERSION:-0.9.28}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/nwg-panel/nwg-panel.info b/desktop/nwg-panel/nwg-panel.info
index 4b6eebdc6d..bd115c9f4b 100644
--- a/desktop/nwg-panel/nwg-panel.info
+++ b/desktop/nwg-panel/nwg-panel.info
@@ -1,8 +1,8 @@
PRGNAM="nwg-panel"
-VERSION="0.9.27"
+VERSION="0.9.28"
HOMEPAGE="https://github.com/nwg-piotr/nwg-panel/"
-DOWNLOAD="https://github.com/nwg-piotr/nwg-panel/archive/v0.9.27/nwg-panel-0.9.27.tar.gz"
-MD5SUM="0a1b3233e889aef64296336f18559681"
+DOWNLOAD="https://github.com/nwg-piotr/nwg-panel/archive/v0.9.28/nwg-panel-0.9.28.tar.gz"
+MD5SUM="2e0b28a0c591dcca14be96ede00c4ff4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="brightnessctl nwg-icon-picker playerctl python3-psutil i3ipc python3-dasbus python3-netifaces SwayNotificationCenter wlr-randr ddcutil"
diff --git a/desktop/nwg-shell-config/nwg-shell-config.SlackBuild b/desktop/nwg-shell-config/nwg-shell-config.SlackBuild
index dd4b410135..be37d012a6 100644
--- a/desktop/nwg-shell-config/nwg-shell-config.SlackBuild
+++ b/desktop/nwg-shell-config/nwg-shell-config.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nwg-shell-config
-VERSION=${VERSION:-0.5.34}
+VERSION=${VERSION:-0.5.36}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/nwg-shell-config/nwg-shell-config.info b/desktop/nwg-shell-config/nwg-shell-config.info
index 927e3a5d83..42399c0f01 100644
--- a/desktop/nwg-shell-config/nwg-shell-config.info
+++ b/desktop/nwg-shell-config/nwg-shell-config.info
@@ -1,9 +1,9 @@
PRGNAM="nwg-shell-config"
-VERSION="0.5.34"
+VERSION="0.5.36"
HOMEPAGE="https://github.com/nwg-piotr/nwg-shell-config/"
-DOWNLOAD="https://github.com/nwg-piotr/nwg-shell-config/archive/v0.5.34/nwg-shell-config-0.5.34.tar.gz \
+DOWNLOAD="https://github.com/nwg-piotr/nwg-shell-config/archive/v0.5.36/nwg-shell-config-0.5.36.tar.gz \
https://slackware.lngn.net/pub/source/nwg-shell-config/Antu_distributor-logo-slackware.svg"
-MD5SUM="6c172243cc1a1147d63ad90c8a4caf9d \
+MD5SUM="7d63bc820c18038588b0e3731f5ae921 \
bae7126cf7fbb634e09ddedd861a133d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/desktop/nwg-shell/nwg-shell.SlackBuild b/desktop/nwg-shell/nwg-shell.SlackBuild
index ed565334b8..4d06bc8821 100644
--- a/desktop/nwg-shell/nwg-shell.SlackBuild
+++ b/desktop/nwg-shell/nwg-shell.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nwg-shell
-VERSION=${VERSION:-0.5.33}
+VERSION=${VERSION:-0.5.34}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -78,7 +78,7 @@ cd $PRGNAM-$VERSION
chown -R root:root .
# patches removing refs to systemctl & replaced w/ loginctl & disable updater
-patch -Np1 -i $CWD/defaults.patch || exit 1
+patch -Np1 -i $CWD/slackware.diff || exit 1
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/desktop/nwg-shell/nwg-shell.info b/desktop/nwg-shell/nwg-shell.info
index aa1eea1783..bf256e983b 100644
--- a/desktop/nwg-shell/nwg-shell.info
+++ b/desktop/nwg-shell/nwg-shell.info
@@ -1,8 +1,8 @@
PRGNAM="nwg-shell"
-VERSION="0.5.33"
+VERSION="0.5.34"
HOMEPAGE="https://nwg-piotr.github.io/nwg-shell/"
-DOWNLOAD="https://github.com/nwg-piotr/nwg-shell/releases/download/v0.5.33/nwg-shell-v0.5.33.tar.gz"
-MD5SUM="031b04c24624f97aca27e673f8a88822"
+DOWNLOAD="https://github.com/nwg-piotr/nwg-shell/releases/download/v0.5.34/nwg-shell-v0.5.34.tar.gz"
+MD5SUM="3cfa51cb7d68c5d93a58c69a738e9857"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="foot grim jq brightnessctl papirus-icon-theme slurp gtklock-playerctl-module gtklock-powerbar-module gtklock-userinfo-module swappy sway swayidle swaylock wl-clipboard azote gopsuinfo nwg-bar nwg-clipman nwg-dock nwg-menu nwg-look nwg-panel nwg-readme-browser nwg-shell-config nwg-shell-wallpapers nwg-wrapper nwg-displays python3-autotiling xdg-desktop-portal-wlr"
diff --git a/desktop/nwg-shell/defaults.patch b/desktop/nwg-shell/slackware.diff
index 0a12f7aee7..e5bdf83ece 100644
--- a/desktop/nwg-shell/defaults.patch
+++ b/desktop/nwg-shell/slackware.diff
@@ -1,6 +1,6 @@
diff -ur a/nwg_shell/installer.py b/nwg_shell/installer.py
---- a/nwg_shell/installer.py 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/installer.py 2024-02-07 21:45:22.562125401 -0500
+--- a/nwg_shell/installer.py 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/installer.py 2024-04-23 08:06:15.320307748 -0400
@@ -173,7 +173,7 @@
print(" This script installs/overwrites configs and style sheets ")
print(" for sway, Hyprland and nwg-shell components. ")
@@ -15,7 +15,7 @@ diff -ur a/nwg_shell/installer.py b/nwg_shell/installer.py
if "editor" not in s or not s["editor"]:
- for cmd in ["mousepad", "atom", "emacs", "gedit", "geany", "kate", "vim"]:
-+ for cmd in ["mousepad", "emacs", "joe", "kate", "vim"]:
++ for cmd in ["mousepad", "atom", "emacs", "gedit", "joe", "kate", "vim"]:
if is_command(cmd):
s["editor"] = cmd
break
@@ -31,8 +31,8 @@ diff -ur a/nwg_shell/installer.py b/nwg_shell/installer.py
subprocess.call("sudo reboot", shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
diff -ur a/nwg_shell/main.py b/nwg_shell/main.py
---- a/nwg_shell/main.py 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/main.py 2024-02-07 21:45:22.562125401 -0500
+--- a/nwg_shell/main.py 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/main.py 2024-04-23 08:06:35.004983477 -0400
@@ -10,7 +10,6 @@
print(" nwg-shell-installer -a [-hypr] installs All configs from scratch; [-hypr] includes Hyprland configs")
print(" nwg-shell-installer -w [-hypr] installs configs from scratch w/ no dialogs; [-hypr] includes Hyprland configs")
@@ -42,8 +42,8 @@ diff -ur a/nwg_shell/main.py b/nwg_shell/main.py
diff -ur a/nwg_shell/skel/config/foot/foot.ini b/nwg_shell/skel/config/foot/foot.ini
---- a/nwg_shell/skel/config/foot/foot.ini 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/foot/foot.ini 2024-02-07 21:45:22.562125401 -0500
+--- a/nwg_shell/skel/config/foot/foot.ini 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/foot/foot.ini 2024-04-23 08:06:57.188618092 -0400
@@ -2,7 +2,7 @@
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
@@ -54,8 +54,8 @@ diff -ur a/nwg_shell/skel/config/foot/foot.ini b/nwg_shell/skel/config/foot/foot
# app-id=foot
# title=foot
diff -ur a/nwg_shell/skel/config/hypr/hyprland.conf b/nwg_shell/skel/config/hypr/hyprland.conf
---- a/nwg_shell/skel/config/hypr/hyprland.conf 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/hypr/hyprland.conf 2024-02-07 21:45:22.562125401 -0500
+--- a/nwg_shell/skel/config/hypr/hyprland.conf 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/hypr/hyprland.conf 2024-04-23 08:07:58.307611735 -0400
@@ -17,8 +17,7 @@
#
exec = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
@@ -67,8 +67,8 @@ diff -ur a/nwg_shell/skel/config/hypr/hyprland.conf b/nwg_shell/skel/config/hypr
#
# Include settings generated by nwg-shell-config
diff -ur a/nwg_shell/skel/config/nwg-bar/bar.json b/nwg_shell/skel/config/nwg-bar/bar.json
---- a/nwg_shell/skel/config/nwg-bar/bar.json 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-bar/bar.json 2024-02-07 21:45:22.563125383 -0500
+--- a/nwg_shell/skel/config/nwg-bar/bar.json 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-bar/bar.json 2024-04-23 08:13:11.595459991 -0400
@@ -11,12 +11,12 @@
},
{
@@ -86,8 +86,8 @@ diff -ur a/nwg_shell/skel/config/nwg-bar/bar.json b/nwg_shell/skel/config/nwg-ba
]
\ No newline at end of file
diff -ur a/nwg_shell/skel/config/nwg-bar/hyprland.json b/nwg_shell/skel/config/nwg-bar/hyprland.json
---- a/nwg_shell/skel/config/nwg-bar/hyprland.json 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-bar/hyprland.json 2024-02-07 21:45:22.563125383 -0500
+--- a/nwg_shell/skel/config/nwg-bar/hyprland.json 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-bar/hyprland.json 2024-04-23 08:13:32.787113097 -0400
@@ -11,12 +11,12 @@
},
{
@@ -105,53 +105,53 @@ diff -ur a/nwg_shell/skel/config/nwg-bar/hyprland.json b/nwg_shell/skel/config/n
]
\ No newline at end of file
diff -ur a/nwg_shell/skel/config/nwg-panel/hyprland-0 b/nwg_shell/skel/config/nwg-panel/hyprland-0
---- a/nwg_shell/skel/config/nwg-panel/hyprland-0 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/hyprland-0 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/hyprland-0 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/hyprland-0 2024-04-23 08:14:52.432809425 -0400
@@ -84,11 +84,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/nwg-panel/hyprland-1 b/nwg_shell/skel/config/nwg-panel/hyprland-1
---- a/nwg_shell/skel/config/nwg-panel/hyprland-1 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/hyprland-1 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/hyprland-1 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/hyprland-1 2024-04-23 08:14:58.944702840 -0400
@@ -86,11 +86,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/nwg-panel/hyprland-2 b/nwg_shell/skel/config/nwg-panel/hyprland-2
---- a/nwg_shell/skel/config/nwg-panel/hyprland-2 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/hyprland-2 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/hyprland-2 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/hyprland-2 2024-04-23 08:15:06.752575048 -0400
@@ -83,11 +83,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
@@ -167,70 +167,70 @@ diff -ur a/nwg_shell/skel/config/nwg-panel/hyprland-2 b/nwg_shell/skel/config/nw
"file-manager": "thunar",
"height": 0,
diff -ur a/nwg_shell/skel/config/nwg-panel/hyprland-3 b/nwg_shell/skel/config/nwg-panel/hyprland-3
---- a/nwg_shell/skel/config/nwg-panel/hyprland-3 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/hyprland-3 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/hyprland-3 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/hyprland-3 2024-04-23 08:15:15.176437171 -0400
@@ -82,11 +82,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/nwg-panel/preset-0 b/nwg_shell/skel/config/nwg-panel/preset-0
---- a/nwg_shell/skel/config/nwg-panel/preset-0 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/preset-0 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/preset-0 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/preset-0 2024-04-23 08:15:23.410302403 -0400
@@ -85,11 +85,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/nwg-panel/preset-1 b/nwg_shell/skel/config/nwg-panel/preset-1
---- a/nwg_shell/skel/config/nwg-panel/preset-1 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/preset-1 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/preset-1 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/preset-1 2024-04-23 08:15:31.000178183 -0400
@@ -87,11 +87,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/nwg-panel/preset-2 b/nwg_shell/skel/config/nwg-panel/preset-2
---- a/nwg_shell/skel/config/nwg-panel/preset-2 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/preset-2 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/preset-2 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/preset-2 2024-04-23 08:15:38.024063224 -0400
@@ -99,11 +99,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
@@ -246,25 +246,25 @@ diff -ur a/nwg_shell/skel/config/nwg-panel/preset-2 b/nwg_shell/skel/config/nwg-
"file-manager": "thunar",
"height": 0,
diff -ur a/nwg_shell/skel/config/nwg-panel/preset-3 b/nwg_shell/skel/config/nwg-panel/preset-3
---- a/nwg_shell/skel/config/nwg-panel/preset-3 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/nwg-panel/preset-3 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/nwg-panel/preset-3 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/nwg-panel/preset-3 2024-04-23 08:15:45.775936353 -0400
@@ -83,11 +83,11 @@
},
{
"name": "Restart",
-- "cmd": "systemctl reboot"
-+ "cmd": "loginctl reboot"
+- "cmd": "nwg-dialog -p reboot -c \"systemctl reboot\""
++ "cmd": "nwg-dialog -p reboot -c \"loginctl reboot\""
},
{
"name": "Shutdown",
-- "cmd": "systemctl -i poweroff"
-+ "cmd": "loginctl -i poweroff"
+- "cmd": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\""
++ "cmd": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\""
}
]
},
diff -ur a/nwg_shell/skel/config/sway/autostart b/nwg_shell/skel/config/sway/autostart
---- a/nwg_shell/skel/config/sway/autostart 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/sway/autostart 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/sway/autostart 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/sway/autostart 2024-04-23 08:16:45.765954548 -0400
@@ -6,8 +6,6 @@
exec_always nwg-autotiling
exec_always nwg-drawer -r -s preset-0.css -term foot -ft
@@ -275,8 +275,8 @@ diff -ur a/nwg_shell/skel/config/sway/autostart b/nwg_shell/skel/config/sway/aut
exec_always nwg-screenshot-applet
exec_always nwg-shell-config -s
diff -ur a/nwg_shell/skel/config/sway/config b/nwg_shell/skel/config/sway/config
---- a/nwg_shell/skel/config/sway/config 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/config/sway/config 2024-02-07 21:45:22.564125365 -0500
+--- a/nwg_shell/skel/config/sway/config 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/config/sway/config 2024-04-23 08:18:36.244146606 -0400
@@ -36,10 +36,9 @@
############### Autostart ##################
@@ -291,18 +291,18 @@ diff -ur a/nwg_shell/skel/config/sway/config b/nwg_shell/skel/config/sway/config
### Turn off screen on lid closed
diff -ur a/nwg_shell/skel/data/nwg-shell-config/settings b/nwg_shell/skel/data/nwg-shell-config/settings
---- a/nwg_shell/skel/data/nwg-shell-config/settings 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/data/nwg-shell-config/settings 2024-02-07 21:45:22.565125347 -0500
+--- a/nwg_shell/skel/data/nwg-shell-config/settings 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/data/nwg-shell-config/settings 2024-04-23 08:20:04.961694894 -0400
@@ -18,9 +18,9 @@
"browser": "",
- "pb-exit": "swaymsg exit",
+ "pb-exit": "nwg-dialog -p exit-sway -c \"swaymsg exit\"",
"pb-lock": "nwg-lock",
-- "pb-poweroff": "systemctl -i poweroff",
-- "pb-reboot": "systemctl reboot",
-- "pb-sleep": "systemctl suspend",
-+ "pb-poweroff": "loginctl poweroff",
-+ "pb-reboot": "loginctl reboot",
-+ "pb-sleep": "loginctl suspend",
+- "pb-poweroff": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\"",
+- "pb-reboot": "nwg-dialog -p reboot -c \"systemctl reboot\"",
+- "pb-sleep": "nwg-dialog -p sleep -c \"systemctl suspend\"",
++ "pb-poweroff": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\"",
++ "pb-reboot": "nwg-dialog -p reboot -c \"loginctl reboot\"",
++ "pb-sleep": "nwg-dialog -p sleep -c \"loginctl suspend\"",
"panel-preset": "preset-0",
"panel-custom": "",
"show-on-startup": false,
@@ -313,7 +313,7 @@ diff -ur a/nwg_shell/skel/data/nwg-shell-config/settings b/nwg_shell/skel/data/n
- "gtklock-poweroff-command": "systemctl -i poweroff",
- "gtklock-reboot-command": "systemctl reboot",
- "gtklock-suspend-command": "systemctl suspend",
-+ "gtklock-poweroff-command": "loginctl poweroff",
++ "gtklock-poweroff-command": "loginctl -i poweroff",
+ "gtklock-reboot-command": "loginctl reboot",
+ "gtklock-suspend-command": "loginctl suspend",
"gtklock-time-format": "%H:%M:%S",
@@ -326,22 +326,22 @@ diff -ur a/nwg_shell/skel/data/nwg-shell-config/settings b/nwg_shell/skel/data/n
}
\ No newline at end of file
diff -ur a/nwg_shell/skel/data/nwg-shell-config/settings-hyprland b/nwg_shell/skel/data/nwg-shell-config/settings-hyprland
---- a/nwg_shell/skel/data/nwg-shell-config/settings-hyprland 2024-02-04 20:54:31.000000000 -0500
-+++ b/nwg_shell/skel/data/nwg-shell-config/settings-hyprland 2024-02-07 21:45:22.565125347 -0500
+--- a/nwg_shell/skel/data/nwg-shell-config/settings-hyprland 2024-04-18 20:06:36.000000000 -0400
++++ b/nwg_shell/skel/data/nwg-shell-config/settings-hyprland 2024-04-23 08:20:16.632503931 -0400
@@ -16,9 +16,9 @@
"show-on-startup": false,
- "pb-exit": "hyprctl dispatch exit",
+ "pb-exit": "nwg-dialog -p exit-hyprland -c \"hyprctl dispatch exit\"",
"pb-lock": "nwg-lock",
-- "pb-poweroff": "systemctl -i poweroff",
-- "pb-reboot": "systemctl reboot",
-- "pb-sleep": "systemctl suspend",
-+ "pb-poweroff": "loginctl poweroff",
-+ "pb-reboot": "loginctl reboot",
-+ "pb-sleep": "loginctl suspend",
+- "pb-poweroff": "nwg-dialog -p poweroff -c \"systemctl -i poweroff\"",
+- "pb-reboot": "nwg-dialog -p reboot -c \"systemctl reboot\"",
+- "pb-sleep": "nwg-dialog -p sleep -c \"systemctl suspend\"",
++ "pb-poweroff": "nwg-dialog -p poweroff -c \"loginctl -i poweroff\"",
++ "pb-reboot": "nwg-dialog -p reboot -c \"loginctl reboot\"",
++ "pb-sleep": "nwg-dialog -p sleep -c \"loginctl suspend\"",
"gen-use-settings": true,
"gen-border_size": 1,
"gen-no_border_on_floating": false,
-@@ -103,7 +103,7 @@
+@@ -104,7 +104,7 @@
"lockscreen-custom-cmd": "",
"lockscreen-timeout": 1200,
"screenshot": true,
@@ -350,14 +350,14 @@ diff -ur a/nwg_shell/skel/data/nwg-shell-config/settings-hyprland b/nwg_shell/sk
"sleep-timeout": 1800,
"resume-cmd": "",
"before-sleep": "",
-@@ -128,13 +128,13 @@
+@@ -129,13 +129,13 @@
"gtklock-logout-command": "swaymsg exit",
"gtklock-playerctl": false,
"gtklock-powerbar": false,
- "gtklock-poweroff-command": "systemctl -i poweroff",
- "gtklock-reboot-command": "systemctl reboot",
- "gtklock-suspend-command": "systemctl suspend",
-+ "gtklock-poweroff-command": "loginctl poweroff",
++ "gtklock-poweroff-command": "loginctl -i poweroff",
+ "gtklock-reboot-command": "loginctl reboot",
+ "gtklock-suspend-command": "loginctl suspend",
"gtklock-time-format": "%H:%M:%S",
diff --git a/desktop/oomox/oomox.SlackBuild b/desktop/oomox/oomox.SlackBuild
index b91a8c5312..8b11241b52 100644
--- a/desktop/oomox/oomox.SlackBuild
+++ b/desktop/oomox/oomox.SlackBuild
@@ -25,7 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=oomox
-VERSION=${VERSION:-1.7.0.6}
+SRCNAM=themix-gui
+VERSION=${VERSION:-1.15.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -40,9 +41,6 @@ MATERIAVER=${MATERIAVER:-20180922}
OOMOXVER=${OOMOXVER:-1.9.1}
OOMOXIFYVER=${OOMOXIFYVER:-1.0.1}
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -57,9 +55,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -83,7 +81,7 @@ tar xvf $CWD/archdroid-icon-theme-$ARCHDROIDVER.tar.gz --strip-components=1 \
-C $PKG/opt/oomox/plugins/icons_archdroid
tar xvf $CWD/base16-builder-$BASE16VER.tar.gz --strip-components=1 \
- -C $PKG/opt/oomox/plugins/import_base16/base16-data
+ -C $PKG/opt/oomox/plugins/base16
tar xvf $CWD/gnome-colors-icon-theme-$GNOMECOLORSVER.tar.gz --strip-components=1 \
-C $PKG/opt/oomox/plugins/icons_gnomecolors
@@ -92,11 +90,12 @@ tar xvf $CWD/gnome-colors-icon-theme-$GNOMECOLORSVER.tar.gz --strip-components=1
mv gnome-colors gnome-colors-icon-theme )
tar xvf $CWD/oomoxify-$OOMOXIFYVER.tar.gz --strip-components=1 \
- -C $PKG/opt/oomox/plugins/oomoxify
+ -C $PKG/opt/oomox/plugins/export_oomoxify
tar xvf $CWD/materia-theme-$MATERIAVER.tar.gz --strip-components=1 \
-C $PKG/opt/oomox/plugins/theme_materia/materia-theme
+mkdir -p $PKG/opt/oomox/plugins/theme_oomox/gtk-theme
tar xvf $CWD/$PRGNAM-gtk-theme-$OOMOXVER.tar.gz --strip-components=1 \
-C $PKG/opt/oomox/plugins/theme_oomox/gtk-theme
@@ -130,12 +129,6 @@ mkdir -p $PKG/usr/share/icons/hicolor/symbolic/apps
cp -a packaging/com.github.themix_project.Oomox-symbolic.svg \
$PKG/usr/share/icons/hicolor/symbolic/apps/com.github.themix_project.Oomox-symbolic.svg
-for SIZE in 16 24 32 48 512; do
- mkdir -p $PKG/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps
- cp -a packaging/com.github.themix_project.Oomox-$SIZE.png \
- $PKG/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/com.github.themix_project.Oomox.png
-done
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a CREDITS LICENSE README.md \
$PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/desktop/oomox/oomox.info b/desktop/oomox/oomox.info
index 3fc36e26d6..da6301fcd6 100644
--- a/desktop/oomox/oomox.info
+++ b/desktop/oomox/oomox.info
@@ -1,7 +1,7 @@
PRGNAM="oomox"
-VERSION="1.7.0.6"
-HOMEPAGE="https://github.com/themix-project/oomox"
-DOWNLOAD="https://github.com/themix-project/oomox/archive/1.7.0.6/oomox-1.7.0.6.tar.gz \
+VERSION="1.15.1"
+HOMEPAGE="https://github.com/themix-project/themix-gui"
+DOWNLOAD="https://github.com/themix-project/themix-gui/archive/1.15.1/themix-gui-1.15.1.tar.gz \
https://github.com/NicoHood/arc-theme/archive/7ff5b36c287fd50a5910a67a255a3d6bec58b679/arc-theme-7ff5b36c287fd50a5910a67a255a3d6bec58b679.tar.gz \
https://github.com/themix-project/archdroid-icon-theme/archive/1.0.2/archdroid-icon-theme-1.0.2.tar.gz \
https://github.com/base16-builder/base16-builder/archive/d022b9daa5c233a08a8d3b94fd534a3041e3a8c1/base16-builder-d022b9daa5c233a08a8d3b94fd534a3041e3a8c1.tar.gz \
@@ -9,7 +9,7 @@ DOWNLOAD="https://github.com/themix-project/oomox/archive/1.7.0.6/oomox-1.7.0.6.
https://github.com/nana-4/materia-theme/archive/v20180922/materia-theme-20180922.tar.gz \
https://github.com/themix-project/oomox-gtk-theme/archive/1.9.1/oomox-gtk-theme-1.9.1.tar.gz \
https://github.com/themix-project/oomoxify/archive/1.0.1/oomoxify-1.0.1.tar.gz"
-MD5SUM="08e01a074e13fa391d13c77c332047e2 \
+MD5SUM="7776c9a8b5088703c2a9ab35e4532f9a \
a0f38b1c341198a81408379907a0ca4b \
cb669130685dcbf03a8f7f5738c71dc6 \
38fc51a55c798032266c03ee82461119 \
diff --git a/desktop/oomox/slack-desc b/desktop/oomox/slack-desc
index e05c63d671..90c54b9ff2 100644
--- a/desktop/oomox/slack-desc
+++ b/desktop/oomox/slack-desc
@@ -13,7 +13,7 @@ oomox: variations of a Oomox (Numix-based), Materia and Arc themes (GTK2,
oomox: GTK3, Cinnamon, GNOME, Openbox, Xfwm), Gnome-Colors and Archdroid
oomox: icon themes.
oomox:
-oomox: Homepage: https://github.com/themix-project/oomox
+oomox: Homepage: https://github.com/themix-project/themix-gui
oomox:
oomox:
oomox:
diff --git a/desktop/papirus-icon-theme/doinst.sh.gz b/desktop/papirus-icon-theme/doinst.sh.gz
index da9bfee95f..4095c32b36 100644
--- a/desktop/papirus-icon-theme/doinst.sh.gz
+++ b/desktop/papirus-icon-theme/doinst.sh.gz
Binary files differ
diff --git a/desktop/papirus-icon-theme/papirus-icon-theme.SlackBuild b/desktop/papirus-icon-theme/papirus-icon-theme.SlackBuild
index d55b5d4558..db9dd02e82 100644
--- a/desktop/papirus-icon-theme/papirus-icon-theme.SlackBuild
+++ b/desktop/papirus-icon-theme/papirus-icon-theme.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for papirus-icon-theme
# Copyright 2018 Azure Zanculmarktum <zanculmarktum@gmail.com>
-# Updates/Maintenance 2023 Jay Lanagan (j@lngn.net), Detroit, MI.
+# Updates/Maintenance 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=papirus-icon-theme
-VERSION=${VERSION:-20240201}
+VERSION=${VERSION:-20240501}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/papirus-icon-theme/papirus-icon-theme.info b/desktop/papirus-icon-theme/papirus-icon-theme.info
index 36d932a399..b32f471113 100644
--- a/desktop/papirus-icon-theme/papirus-icon-theme.info
+++ b/desktop/papirus-icon-theme/papirus-icon-theme.info
@@ -1,8 +1,8 @@
PRGNAM="papirus-icon-theme"
-VERSION="20240201"
+VERSION="20240501"
HOMEPAGE="https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"
-DOWNLOAD="https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/20240201/papirus-icon-theme-20240201.tar.gz"
-MD5SUM="9e0578bb5d87b8b56fad12e4150cb4a7"
+DOWNLOAD="https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/20240501/papirus-icon-theme-20240501.tar.gz"
+MD5SUM="9ff1f17bef26332ae4a22552a566b437"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/desktop/waybar/waybar.info b/desktop/waybar/waybar.info
index 67f541fe93..6c16a84b42 100644
--- a/desktop/waybar/waybar.info
+++ b/desktop/waybar/waybar.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/Alexays/Waybar/archive/0.9.20/Waybar-0.9.20.tar.gz"
MD5SUM="3c736fb5a28b14ed327e72e93f193cdf"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="jsoncpp scdoc fmt spdlog date gtk-layer-shell"
+REQUIRES="jsoncpp scdoc spdlog date gtk-layer-shell"
MAINTAINER="Damian Perticone"
EMAIL="mjolnirdam@gmail.com"
diff --git a/desktop/wlsunset/wlsunset.SlackBuild b/desktop/wlsunset/wlsunset.SlackBuild
index 67e77805c2..cde42f1e4c 100644
--- a/desktop/wlsunset/wlsunset.SlackBuild
+++ b/desktop/wlsunset/wlsunset.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for wlsunset
-# Copyright 2022 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2022-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=wlsunset
-VERSION=${VERSION:-0.3.0}
+VERSION=${VERSION:-0.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/desktop/wlsunset/wlsunset.info b/desktop/wlsunset/wlsunset.info
index 6186e6cfc2..347ba887a4 100644
--- a/desktop/wlsunset/wlsunset.info
+++ b/desktop/wlsunset/wlsunset.info
@@ -1,8 +1,8 @@
PRGNAM="wlsunset"
-VERSION="0.3.0"
+VERSION="0.4.0"
HOMEPAGE="https://git.sr.ht/~kennylevinsen/wlsunset"
-DOWNLOAD="https://git.sr.ht/~kennylevinsen/wlsunset/archive/0.3.0.tar.gz"
-MD5SUM="0ffd8d9bb235f5decf050f41e9154e5d"
+DOWNLOAD="https://git.sr.ht/~kennylevinsen/wlsunset/archive/0.4.0.tar.gz"
+MD5SUM="668e2f9b47b4f51eaf2b0706fe363123"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/Bear/Bear.SlackBuild b/development/Bear/Bear.SlackBuild
index b05f008f7e..5ee668e122 100644
--- a/development/Bear/Bear.SlackBuild
+++ b/development/Bear/Bear.SlackBuild
@@ -25,7 +25,7 @@
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=Bear
-VERSION=${VERSION:-3.1.1}
+VERSION=${VERSION:-3.1.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -70,6 +70,7 @@ cd "$PRGNAM-$VERSION"
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
+patch -p1 < $CWD/fcc90e43eebe9250abeeb81aab429053864da325.patch
INSTPREFIX='/usr'
cmake \
diff --git a/development/Bear/Bear.info b/development/Bear/Bear.info
index 806bbb151f..59893d6079 100644
--- a/development/Bear/Bear.info
+++ b/development/Bear/Bear.info
@@ -1,10 +1,10 @@
PRGNAM="Bear"
-VERSION="3.1.1"
+VERSION="3.1.3"
HOMEPAGE="https://github.com/rizsotto/Bear"
-DOWNLOAD="https://github.com/rizsotto/Bear/archive/3.1.1/Bear-3.1.1.tar.gz"
-MD5SUM="1eccc34705eac635aa7408c6c01aef86"
+DOWNLOAD="https://github.com/rizsotto/Bear/archive/3.1.3/Bear-3.1.3.tar.gz"
+MD5SUM="95dd52be536907a672df211de22fa15c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="grpc fmt spdlog nlohmann_json"
+REQUIRES="grpc spdlog nlohmann_json"
MAINTAINER="Ivan Kovmir"
EMAIL="i@kovmir.eu"
diff --git a/development/Bear/fcc90e43eebe9250abeeb81aab429053864da325.patch b/development/Bear/fcc90e43eebe9250abeeb81aab429053864da325.patch
new file mode 100644
index 0000000000..3d760041bd
--- /dev/null
+++ b/development/Bear/fcc90e43eebe9250abeeb81aab429053864da325.patch
@@ -0,0 +1,34 @@
+From fcc90e43eebe9250abeeb81aab429053864da325 Mon Sep 17 00:00:00 2001
+From: Ruben Carlo Benante <rcb@beco.cc>
+Date: Thu, 28 Mar 2024 23:29:41 -0300
+Subject: [PATCH] always_print_primitive_fields only if GOOGLE_PROTOBUF_VERSION
+ < 5026000 ref #566
+
+---
+ source/intercept/source/collect/db/EventsDatabaseWriter.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/source/intercept/source/collect/db/EventsDatabaseWriter.cc b/source/intercept/source/collect/db/EventsDatabaseWriter.cc
+index 0403a1ae..bd30cb29 100644
+--- a/source/intercept/source/collect/db/EventsDatabaseWriter.cc
++++ b/source/intercept/source/collect/db/EventsDatabaseWriter.cc
+@@ -21,6 +21,8 @@
+ #include "libsys/Errors.h"
+
+ #include <google/protobuf/util/json_util.h>
++#include <google/protobuf/stubs/common.h>
++
+ #include <fmt/format.h>
+
+ #include <sys/types.h>
+@@ -36,7 +38,9 @@ namespace {
+ JsonPrintOptions create_print_options() {
+ JsonPrintOptions print_options;
+ print_options.add_whitespace = false;
+- print_options.always_print_primitive_fields = true;
++#if GOOGLE_PROTOBUF_VERSION < 5026000
++ print_options.always_print_primitive_fields = true;
++#endif
+ print_options.preserve_proto_field_names = true;
+ print_options.always_print_enums_as_ints = false;
+ return print_options;
diff --git a/perl/perl-Test-Script/perl-Test-Script.SlackBuild b/development/OpenCL-CLHPP/OpenCL-CLHPP.SlackBuild
index feed1d477e..4dbb527d40 100644
--- a/perl/perl-Test-Script/perl-Test-Script.SlackBuild
+++ b/development/OpenCL-CLHPP/OpenCL-CLHPP.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/bash
-# Slackware build script for Test-Script
+# Slackware build script for OpenCL-CLHPP
-# Copyright 2011 Mikko Värri, Finland
+# Copyright 2024 Johannes Schoepfer, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,14 +24,12 @@
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM=perl-Test-Script
-VERSION=${VERSION:-1.07}
+PRGNAM=OpenCL-CLHPP
+VERSION=${VERSION:-2023.12.14}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
-
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -40,9 +38,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -52,38 +47,51 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+else
+ SLKCFLAGS="-O2"
+fi
+
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
-cd $SRCNAM-$VERSION
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
+cd $PRGNAM-$VERSION
+
chown -R root:root .
find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-perl Makefile.PL \
- PREFIX=/usr \
- INSTALLDIRS=vendor \
- INSTALLVENDORMAN3DIR=/usr/man/man3
-make
-make test
-make install DESTDIR=$PKG
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} + -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_TESTING=OFF \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
-find $PKG -depth -type d -empty -delete || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a Changes LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE.txt README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/development/OpenCL-CLHPP/OpenCL-CLHPP.info b/development/OpenCL-CLHPP/OpenCL-CLHPP.info
new file mode 100644
index 0000000000..9f16074a85
--- /dev/null
+++ b/development/OpenCL-CLHPP/OpenCL-CLHPP.info
@@ -0,0 +1,10 @@
+PRGNAM="OpenCL-CLHPP"
+VERSION="2023.12.14"
+HOMEPAGE="https://github.com/KhronosGroup/"
+DOWNLOAD="https://github.com/KhronosGroup/OpenCL-CLHPP/archive/v2023.12.14/OpenCL-CLHPP-2023.12.14.tar.gz"
+MD5SUM="5efb45d5a8830271ac24fcef4a2e7df6"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Johannes Schoepfer"
+EMAIL="slackbuilds@schoepfer.info"
diff --git a/development/OpenCL-CLHPP/README b/development/OpenCL-CLHPP/README
new file mode 100644
index 0000000000..23a0bc3861
--- /dev/null
+++ b/development/OpenCL-CLHPP/README
@@ -0,0 +1 @@
+C++ bindings for OpenCL.
diff --git a/libraries/lua-readline/slack-desc b/development/OpenCL-CLHPP/slack-desc
index 566ea2ce2a..27d39d199f 100644
--- a/libraries/lua-readline/slack-desc
+++ b/development/OpenCL-CLHPP/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-lua-readline: lua-readline (Interface to the readline library)
-lua-readline:
-lua-readline: This Lua module offers a simple calling interface
-lua-readline: to the GNU Readline/History Library.
-lua-readline:
-lua-readline: Homepage: http://www.pjb.com.au/comp/lua/readline.html
-lua-readline:
-lua-readline:
-lua-readline:
-lua-readline:
-lua-readline:
+OpenCL-CLHPP: OpenCL-CLHPP (OpenCL API C++ bindings)
+OpenCL-CLHPP:
+OpenCL-CLHPP: C++ bindings for OpenCL.
+OpenCL-CLHPP:
+OpenCL-CLHPP:
+OpenCL-CLHPP:
+OpenCL-CLHPP:
+OpenCL-CLHPP:
+OpenCL-CLHPP:
+OpenCL-CLHPP: https://github.com/KhronosGroup/OpenCL-CLHPP/
+OpenCL-CLHPP:
diff --git a/development/acpica/acpica.SlackBuild b/development/acpica/acpica.SlackBuild
index 7ba1a39095..4e206ac843 100644
--- a/development/acpica/acpica.SlackBuild
+++ b/development/acpica/acpica.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for acpica
-# Copyright 2008-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=acpica
-VERSION=${VERSION:-20230331}
+VERSION=${VERSION:-20240321}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/acpica/acpica.info b/development/acpica/acpica.info
index 1b3f810767..446adea3af 100644
--- a/development/acpica/acpica.info
+++ b/development/acpica/acpica.info
@@ -1,8 +1,8 @@
PRGNAM="acpica"
-VERSION="20230331"
+VERSION="20240321"
HOMEPAGE="http://www.acpica.org"
-DOWNLOAD="https://ponce.cc/slackware/sources/repo/acpica-unix-20230331.tar.gz"
-MD5SUM="9610f97f23389bbe72c75a4c1bd6442f"
+DOWNLOAD="https://github.com/acpica/acpica/files/14718333/acpica-unix-20240321.tar.gz"
+MD5SUM="835f7d1167ea44a2fdf67d1d008a2224"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/avrdude/avrdude.SlackBuild b/development/avrdude/avrdude.SlackBuild
index 374837ed45..58d9a69ccc 100644
--- a/development/avrdude/avrdude.SlackBuild
+++ b/development/avrdude/avrdude.SlackBuild
@@ -30,7 +30,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=avrdude
-VERSION=${VERSION:-7.2}
+VERSION=${VERSION:-7.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/avrdude/avrdude.info b/development/avrdude/avrdude.info
index 96b1392200..dcf472fae4 100644
--- a/development/avrdude/avrdude.info
+++ b/development/avrdude/avrdude.info
@@ -1,8 +1,8 @@
PRGNAM="avrdude"
-VERSION="7.2"
+VERSION="7.3"
HOMEPAGE="http://www.nongnu.org/avrdude/"
-DOWNLOAD="https://github.com/avrdudes/avrdude/archive/v7.2/avrdude-7.2.tar.gz"
-MD5SUM="9b423eab6d04e7dff1897cb183a78b87"
+DOWNLOAD="https://github.com/avrdudes/avrdude/archive/v7.3/avrdude-7.3.tar.gz"
+MD5SUM="5ff78f7dad276a0fb2808e300b3eb1bf"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/aws-cdk/aws-cdk.SlackBuild b/development/aws-cdk/aws-cdk.SlackBuild
index f535c766e4..48ca2f4b1b 100644
--- a/development/aws-cdk/aws-cdk.SlackBuild
+++ b/development/aws-cdk/aws-cdk.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=aws-cdk
-VERSION=${VERSION:-2.138.0}
+VERSION=${VERSION:-2.140.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/aws-cdk/aws-cdk.info b/development/aws-cdk/aws-cdk.info
index c6d7fdec18..4745a057fc 100644
--- a/development/aws-cdk/aws-cdk.info
+++ b/development/aws-cdk/aws-cdk.info
@@ -1,8 +1,8 @@
PRGNAM="aws-cdk"
-VERSION="2.138.0"
+VERSION="2.140.0"
HOMEPAGE="https://github.com/aws/aws-cdk"
-DOWNLOAD="https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.138.0.tgz"
-MD5SUM="38bc13b8280a18cba3efb82f298a36d2"
+DOWNLOAD="https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.140.0.tgz"
+MD5SUM="2eb1539f4afd05cf02da27efdaa270d4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="nodejs awscli"
diff --git a/development/bluefish/bluefish.SlackBuild b/development/bluefish/bluefish.SlackBuild
index c5e73fabf3..35ae07435c 100644
--- a/development/bluefish/bluefish.SlackBuild
+++ b/development/bluefish/bluefish.SlackBuild
@@ -28,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=bluefish
-VERSION=${VERSION:-2.2.14}
+VERSION=${VERSION:-2.2.15}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/bluefish/bluefish.info b/development/bluefish/bluefish.info
index aa041ccaa5..f45bde7a11 100644
--- a/development/bluefish/bluefish.info
+++ b/development/bluefish/bluefish.info
@@ -1,8 +1,8 @@
PRGNAM="bluefish"
-VERSION="2.2.14"
+VERSION="2.2.15"
HOMEPAGE="http://bluefish.openoffice.nl/index.html"
-DOWNLOAD="https://www.bennewitz.com/bluefish/stable/source/bluefish-2.2.14.tar.bz2"
-MD5SUM="c99b6b1ba3e3e70b032936182bb0b387"
+DOWNLOAD="https://www.bennewitz.com/bluefish/stable/source/bluefish-2.2.15.tar.bz2"
+MD5SUM="48018bcfef0faeceb66b0f2d814ded03"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/composer/composer.SlackBuild b/development/composer/composer.SlackBuild
index 84013f58ce..7ed4a4b660 100644
--- a/development/composer/composer.SlackBuild
+++ b/development/composer/composer.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=composer
-VERSION=${VERSION:-2.7.2}
+VERSION=${VERSION:-2.7.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/composer/composer.info b/development/composer/composer.info
index c9b71e90ba..0053c95874 100644
--- a/development/composer/composer.info
+++ b/development/composer/composer.info
@@ -1,8 +1,8 @@
PRGNAM="composer"
-VERSION="2.7.2"
+VERSION="2.7.4"
HOMEPAGE="https://getcomposer.org/"
-DOWNLOAD="https://getcomposer.org/download/2.7.2/composer.phar"
-MD5SUM="08d63a50e98885a89cb95ad4fc934055"
+DOWNLOAD="https://getcomposer.org/download/2.7.4/composer.phar"
+MD5SUM="6d5ec191cf3644fbabb6dc77d6504488"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/edb-debugger/edb-debugger.SlackBuild b/development/edb-debugger/edb-debugger.SlackBuild
index 738e0027cd..8dc8d3084c 100644
--- a/development/edb-debugger/edb-debugger.SlackBuild
+++ b/development/edb-debugger/edb-debugger.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=edb-debugger
-VERSION=${VERSION:-1.3.0}
+VERSION=${VERSION:-1.5.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -40,9 +40,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -96,6 +93,9 @@ cd ..
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a BUGS CHANGELOG COPYING README* TODO $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/development/edb-debugger/edb-debugger.info b/development/edb-debugger/edb-debugger.info
index 4e5052ab7d..cb2676b4e7 100644
--- a/development/edb-debugger/edb-debugger.info
+++ b/development/edb-debugger/edb-debugger.info
@@ -1,8 +1,8 @@
PRGNAM="edb-debugger"
-VERSION="1.3.0"
+VERSION="1.5.0"
HOMEPAGE="http://codef00.com/projects#debugger"
-DOWNLOAD="https://github.com/eteran/edb-debugger/releases/download/1.3.0/edb-debugger-1.3.0.tgz"
-MD5SUM="8f718aae43d6b1e683ffe9e90f7cc984"
+DOWNLOAD="https://github.com/eteran/edb-debugger/releases/download/1.5.0/edb-debugger-1.5.0.tgz"
+MD5SUM="2ccf5f74dc26a7e49e648a849269f157"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="capstone"
diff --git a/development/eovim/eovim.info b/development/eovim/eovim.info
index ae1dd04d6b..fa162df701 100644
--- a/development/eovim/eovim.info
+++ b/development/eovim/eovim.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/jeanguyomarch/eovim/archive/v0.2.0/eovim-0.2.0.tar.
MD5SUM="9386331be9cbf2bf4910ccb794f47bdf"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="efl neovim"
+REQUIRES="efl neovim msgpack-c"
MAINTAINER="Benjamin Trigona-Harany"
EMAIL="slackbuilds@jaxartes.net"
diff --git a/development/gdb-dashboard/gdb-dashboard.SlackBuild b/development/gdb-dashboard/gdb-dashboard.SlackBuild
index e174c14715..36fd8afbe4 100644
--- a/development/gdb-dashboard/gdb-dashboard.SlackBuild
+++ b/development/gdb-dashboard/gdb-dashboard.SlackBuild
@@ -8,7 +8,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gdb-dashboard
-VERSION=${VERSION:-0.17.2}
+VERSION=${VERSION:-20240131}
+COMMITVER="b96e429c0db4b35c38302dd8c6cd90c65152f211"
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -29,16 +30,15 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-wiki.tar.gz
+rm -rf $PRGNAM-$COMMITV
+tar xvf $CWD/$PRGNAM-$COMMITVER.tar.gz
+cd $PRGNAM-$COMMITVER
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a LICENSE README.md $PRGNAM-wiki $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
install -D -m 644 .gdbinit $PKG/etc/gdbinit.d/dashboard.new
diff --git a/development/gdb-dashboard/gdb-dashboard.info b/development/gdb-dashboard/gdb-dashboard.info
index 443d64c56c..589f876789 100644
--- a/development/gdb-dashboard/gdb-dashboard.info
+++ b/development/gdb-dashboard/gdb-dashboard.info
@@ -1,8 +1,8 @@
PRGNAM="gdb-dashboard"
-VERSION="0.17.2"
+VERSION="20240131"
HOMEPAGE="https://github.com/cyrus-and/gdb-dashboard"
-DOWNLOAD="https://github.com/cyrus-and/gdb-dashboard/archive/v0.17.2/gdb-dashboard-0.17.2.tar.gz"
-MD5SUM="15ba39e7349282964454fa34ab621806"
+DOWNLOAD="https://github.com/cyrus-and/gdb-dashboard/archive/b96e429c0db4b35c38302dd8c6cd90c65152f211/gdb-dashboard-b96e429c0db4b35c38302dd8c6cd90c65152f211.tar.gz"
+MD5SUM="c199d1b7c6f1d957ead27cff23402c77"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/github-cli/github-cli.SlackBuild b/development/github-cli/github-cli.SlackBuild
index 2049193371..3e3b8324ce 100644
--- a/development/github-cli/github-cli.SlackBuild
+++ b/development/github-cli/github-cli.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=github-cli
DEBNAM=gh
-VERSION=${VERSION:-2.48.0}
+VERSION=${VERSION:-2.49.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/github-cli/github-cli.info b/development/github-cli/github-cli.info
index e2d9bb5726..b8019c769a 100644
--- a/development/github-cli/github-cli.info
+++ b/development/github-cli/github-cli.info
@@ -1,10 +1,10 @@
PRGNAM="github-cli"
-VERSION="2.48.0"
+VERSION="2.49.0"
HOMEPAGE="https://cli.github.com/"
-DOWNLOAD="https://github.com/cli/cli/releases/download/v2.48.0/gh_2.48.0_linux_386.deb"
-MD5SUM="5183ca269bb9b242055871c7483a5426"
-DOWNLOAD_x86_64="https://github.com/cli/cli/releases/download/v2.48.0/gh_2.48.0_linux_amd64.deb"
-MD5SUM_x86_64="bd56f8bd78c1762e8f6d0a31a02a617f"
+DOWNLOAD="https://github.com/cli/cli/releases/download/v2.49.0/gh_2.49.0_linux_386.deb"
+MD5SUM="8400fa3fcd6f58b838f55d655e50d467"
+DOWNLOAD_x86_64="https://github.com/cli/cli/releases/download/v2.49.0/gh_2.49.0_linux_amd64.deb"
+MD5SUM_x86_64="a3fb594c630dc06f176a6411f85c81cc"
REQUIRES=""
MAINTAINER="Ebben Aries"
EMAIL="slackbuilds@dscp.org"
diff --git a/development/gitlab-cli/gitlab-cli.SlackBuild b/development/gitlab-cli/gitlab-cli.SlackBuild
index 53406543b5..1d81f6fe3a 100644
--- a/development/gitlab-cli/gitlab-cli.SlackBuild
+++ b/development/gitlab-cli/gitlab-cli.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gitlab-cli
DEBNAM=glab
-VERSION=${VERSION:-1.37.0}
+VERSION=${VERSION:-1.40.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/gitlab-cli/gitlab-cli.info b/development/gitlab-cli/gitlab-cli.info
index 26f732fcff..eb9f088c12 100644
--- a/development/gitlab-cli/gitlab-cli.info
+++ b/development/gitlab-cli/gitlab-cli.info
@@ -1,14 +1,14 @@
PRGNAM="gitlab-cli"
-VERSION="1.37.0"
+VERSION="1.40.0"
HOMEPAGE="https://gitlab.com/gitlab-org/cli"
-DOWNLOAD="https://gitlab.com/gitlab-org/cli/-/archive/v1.37.0/cli-v1.37.0.tar.gz \
- https://gitlab.com/gitlab-org/cli/-/releases/v1.37.0/downloads/glab_1.37.0_Linux_i386.deb"
-MD5SUM="83e99040535ee1b6b3222ca4751913ba \
- ecee73526ca604c4702064fda4955b6a"
-DOWNLOAD_x86_64="https://gitlab.com/gitlab-org/cli/-/archive/v1.37.0/cli-v1.37.0.tar.gz \
- https://gitlab.com/gitlab-org/cli/-/releases/v1.37.0/downloads/glab_1.37.0_Linux_x86_64.deb"
-MD5SUM_x86_64="83e99040535ee1b6b3222ca4751913ba \
- 176a122cf49a586f817c54b52822319a"
+DOWNLOAD="https://gitlab.com/gitlab-org/cli/-/archive/v1.40.0/cli-v1.40.0.tar.gz \
+ https://gitlab.com/gitlab-org/cli/-/releases/v1.40.0/downloads/glab_1.40.0_Linux_i386.deb"
+MD5SUM="211aea19fc88dbf6f21763e593ba2079 \
+ 94ff62f6214017c6204178810c9ef7a4"
+DOWNLOAD_x86_64="https://gitlab.com/gitlab-org/cli/-/archive/v1.40.0/cli-v1.40.0.tar.gz \
+ https://gitlab.com/gitlab-org/cli/-/releases/v1.40.0/downloads/glab_1.40.0_Linux_x86_64.deb"
+MD5SUM_x86_64="211aea19fc88dbf6f21763e593ba2079 \
+ b5774bc5db8eaf3099e83f3a4a3c74bf"
REQUIRES=""
MAINTAINER="Diniz Bortolotto"
EMAIL="diniz.bortolotto@gmail.com"
diff --git a/development/gsoap/gsoap.SlackBuild b/development/gsoap/gsoap.SlackBuild
index 197e63dfe2..89be61470e 100644
--- a/development/gsoap/gsoap.SlackBuild
+++ b/development/gsoap/gsoap.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for gsoap
-# Copyright 2009-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2009-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gsoap
-VERSION=${VERSION:-2.8.127}
+VERSION=${VERSION:-2.8.132}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/gsoap/gsoap.info b/development/gsoap/gsoap.info
index 15b5c90320..891fdcf791 100644
--- a/development/gsoap/gsoap.info
+++ b/development/gsoap/gsoap.info
@@ -1,8 +1,8 @@
PRGNAM="gsoap"
-VERSION="2.8.127"
+VERSION="2.8.132"
HOMEPAGE="http://gsoap2.sourceforge.net/"
-DOWNLOAD="https://sources.liwjatan.org/gsoap/gsoap_2.8.127.zip"
-MD5SUM="572272c38ce259c0c38afb4634fdddb1"
+DOWNLOAD="https://sources.liwjatan.org/gsoap/gsoap_2.8.132.zip"
+MD5SUM="b0b93960bba760b5749f2fef3d5c718a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/heroku-cli/heroku-cli.SlackBuild b/development/heroku-cli/heroku-cli.SlackBuild
index e1d8c3af76..a256e49e10 100644
--- a/development/heroku-cli/heroku-cli.SlackBuild
+++ b/development/heroku-cli/heroku-cli.SlackBuild
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=heroku-cli
-VERSION=${VERSION:-8.11.0}
+VERSION=${VERSION:-8.11.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-TARBALL=heroku-v8.11.0-a525d5e-linux-x64.tar.xz
+TARBALL=heroku-v8.11.5-df5cd30-linux-x64.tar.xz
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/development/heroku-cli/heroku-cli.info b/development/heroku-cli/heroku-cli.info
index 6ae07ce0b1..62703521da 100644
--- a/development/heroku-cli/heroku-cli.info
+++ b/development/heroku-cli/heroku-cli.info
@@ -1,10 +1,10 @@
PRGNAM="heroku-cli"
-VERSION="8.11.0"
+VERSION="8.11.5"
HOMEPAGE="https://www.heroku.com/home"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://cli-assets.heroku.com/versions/8.11.0/a525d5e/heroku-v8.11.0-a525d5e-linux-x64.tar.xz"
-MD5SUM_x86_64="e6ee7fb62ac489aef98155b8ed4057a1"
+DOWNLOAD_x86_64="https://cli-assets.heroku.com/versions/8.11.5/df5cd30/heroku-v8.11.5-df5cd30-linux-x64.tar.xz"
+MD5SUM_x86_64="fdb3118070d581bfc9c4670a205644a2"
REQUIRES=""
MAINTAINER="Diniz Bortolotto"
EMAIL="diniz.bortolotto@gmail.com"
diff --git a/development/hhvm/README b/development/hhvm/README
deleted file mode 100644
index 2467669770..0000000000
--- a/development/hhvm/README
+++ /dev/null
@@ -1,59 +0,0 @@
-HHVM is an open-source virtual machine designed for executing programs
-written in Hack and PHP. HHVM uses a just-in-time (JIT) compilation
-approach to achieve superior performance while maintaining the
-development flexibility that PHP provides.
-
-Hack is a programming language for HHVM. Hack reconciles the fast
-development cycle of a dynamically typed language with the discipline
-provided by static typing, while adding many features commonly found
-in other modern programming languages.
-
-Please note that HHVM is unsupported on 32-bit OSes and there are no
-current plans to ever add support.
-
-In order to start HHVM at boot and stop it properly at shutdown,
-make sure rc.hhvm is executable and add the following lines to
-your rc.d scripts:
-
- /etc/rc.d/rc.local
- ==================
- # Startup HHVM
- if [ -x /etc/rc.d/rc.hhvm ]; then
- /etc/rc.d/rc.hhvm start
- fi
-
- /etc/rc.d/rc.local_shutdown
- ===========================
- # Stop HHVM
- if [ -x /etc/rc.d/rc.hhvm ]; then
- /etc/rc.d/rc.hhvm stop
- fi
-
-HHVM ships an integrated web server, proxygen, which listens on port
-9000 (though you can configure proxygen to make use of a different
-port): https://docs.hhvm.com/hhvm/basic-usage/proxygen.
-
-Alternatively to reverse proxy, FastCGI is available, which uses Unix
-sockets by default. If your web server isn't Apache make sure it has
-write access to the socket file. You can create a new group and add
-your web server user to this group or just use the main group of your
-web server and start HHVM as following:
-
- hhvm_GROUP=apache /etc/rc.d/rc.hhvm start
-
-See https://docs.hhvm.com/hhvm/advanced-usage/fastCGI.
-
-To start a project you have to configure the type checker as well.
-See the official documentation:
-https://docs.hhvm.com/hack/getting-started/getting-started
-
-Basically you create an empty .hhconfig file in the root dir of your
-project:
-
- touch .hhconfig
-
-and run:
-
- hh_client
-
-Happy Hacking!
diff --git a/development/hhvm/doinst.sh b/development/hhvm/doinst.sh
deleted file mode 100644
index 6979f0cdcf..0000000000
--- a/development/hhvm/doinst.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-config() {
- NEW="$1"
- OLD="`dirname $NEW`/`basename $NEW .new`"
- # If there's no config file by that name, mv it over:
- if [ ! -r $OLD ]; then
- mv $NEW $OLD
- elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
- rm $NEW
- fi
- # Otherwise, we leave the .new copy for the admin to consider...
-}
-# Keep same perms on rc.hhvm.new:
-if [ -e etc/rc.d/rc.hhvm ]; then
- cp -a etc/rc.d/rc.hhvm etc/rc.d/rc.hhvm.new.incoming
- cat etc/rc.d/rc.hhvm.new > etc/rc.d/rc.hhvm.new.incoming
- mv etc/rc.d/rc.hhvm.new.incoming etc/rc.d/rc.hhvm.new
-fi
-config etc/rc.d/rc.hhvm.new
-config etc/hhvm/server.ini.new
-config etc/hhvm/php.ini.new
diff --git a/development/hhvm/etc/php.ini b/development/hhvm/etc/php.ini
deleted file mode 100644
index 5004b9fb11..0000000000
--- a/development/hhvm/etc/php.ini
+++ /dev/null
@@ -1 +0,0 @@
-extension_dir = /usr/lib64/hhvm/extensions
diff --git a/development/hhvm/etc/rc.hhvm b/development/hhvm/etc/rc.hhvm
deleted file mode 100644
index 049fb521d4..0000000000
--- a/development/hhvm/etc/rc.hhvm
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/bash
-#
-### BEGIN INIT INFO
-# Provides: hhvm
-# Required-Start: $remote_fs $network
-# Required-Stop: $remote_fs $network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Description: Starts the HHVM daemon
-### END INIT INFO
-
-PIDFILE=/var/run/hhvm/pid
-hhvm_SOCKET=/var/run/hhvm/sock
-hhvm_GROUP=${hhvm_GROUP:-apache}
-CONFIG_FILE="/etc/hhvm/server.ini"
-SYSTEM_CONFIG_FILE="/etc/hhvm/php.ini"
-
-DAEMON_ARGS="--config ${SYSTEM_CONFIG_FILE} \
- --config ${CONFIG_FILE} \
- --user ${hhvm_GROUP} \
- -vPidFile=${PIDFILE}"
-
-do_stop () {
- try=0
-
- if [ ! -r $2 ]; then
- echo "warning, no pid file found - HHVM is not running?"
- exit 1
- fi
-
- PID=$(cat $2)
- kill $1 $PID
-
- # Waiting for HHVM to shutdown
- while test $try -lt 35
- do
- if ps -p $PID | grep -q $PID
- then
- echo -n .
- try=$(expr $try + 1)
- sleep 1
- else
- try=''
- break
- fi
- done
-
- if [ -n "$try" ]
- then
- echo " failed. Use force-quit"
- exit 1
- else
- rm -f $2
- echo " done"
- fi
-}
-
-wait_for_pid () {
- try=0
-
- while test $try -lt 35
- do
- if [ -f "$1" ] ; then
- try=''
- break
- fi
-
- echo -n .
- try=$(expr $try + 1)
- sleep 1
- done
-
-}
-
-case "$1" in
- start)
- echo -n "Starting HHVM "
-
- if [ -r $PIDFILE ]; then
- echo "warning, pid file found - HHVM is already running?"
- exit 1
- fi
-
- mkdir -p $(dirname ${PIDFILE}) $(dirname ${hhvm_SOCKET})
- chown apache:apache $(dirname ${PIDFILE})
-
- echo
- /usr/bin/hhvm --mode daemon $DAEMON_ARGS
- if [ "$?" != 0 ]
- then
- echo "Failed"
- exit 1
- fi
-
- wait_for_pid $PIDFILE
-
- if [ -n "$try" ] ; then
- echo " failed"
- exit 1
- fi
-
- # Set the socket permissions if HHVM uses UDS
- if [ -S "$hhvm_SOCKET" ]
- then
- chgrp $hhvm_GROUP $hhvm_SOCKET
- fi
-
- echo " done"
- ;;
-
- stop)
- echo -n "Stopping HHVM "
-
- do_stop -QUIT $PIDFILE
- ;;
-
- force-quit)
- echo -n "Terminating HHVM "
-
- do_stop -TERM $PIDFILE
- ;;
-
- status)
- if [ ! -r $PIDFILE ]
- then
- echo "HHVM is stopped"
- exit 0
- fi
-
- PID=$(cat $PIDFILE)
- if ps -p $PID | grep -q $PID
- then
- echo "HHVM (pid $PID) is running..."
- else
- echo "HHVM dead but pid file exists"
- fi
- ;;
-
- restart)
- sh $0 stop
- sh $0 start
- ;;
-
- reload)
- echo -n "Reload service HHVM "
-
- if [ ! -r $PIDFILE ]
- then
- echo "warning, no pid file found - HHVM is not running?"
- exit 1
- fi
-
- kill -USR2 $(cat $PIDFILE)
-
- echo " done"
- ;;
-
- *)
- echo "Usage: $0 {start|stop|status|restart|reload|force-quit}" >&2
- exit 1
- ;;
-
-esac
diff --git a/development/hhvm/etc/server.ini b/development/hhvm/etc/server.ini
deleted file mode 100644
index ce240979d4..0000000000
--- a/development/hhvm/etc/server.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-pid = /var/run/hhvm/pid
-
-;hhvm.server.file_socket = /var/run/hhvm/sock
-hhvm.server.port = 9000
-hhvm.server.type = proxygen
-hhvm.server.default_document = index.hh
-hhvm.log.use_log_file = true
-hhvm.log.file = /var/log/hhvm/error.log
-hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
diff --git a/development/hhvm/hhvm.SlackBuild b/development/hhvm/hhvm.SlackBuild
deleted file mode 100644
index fadc3c030f..0000000000
--- a/development/hhvm/hhvm.SlackBuild
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/bin/bash
-
-# Slackware build script for HHVM
-
-# Copyright 2015-2023 Eugene Wissner, Dachau, Germany
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cd $(dirname $0) ; CWD=$(pwd)
-
-PRGNAM=hhvm
-VERSION=${VERSION:-4.168.2}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-PKGTYPE=${PKGTYPE:-tgz}
-
-OPAM_STAMP="1d2e919"
-CARGO_BUILD="3"
-FB_VERSION="2022.07.04.00"
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
-fi
-
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- echo "$ARCH is not supported."
- exit 1
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar Jxvf $CWD/$PRGNAM-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
-
-mkdir -p hphp/hack/facebook hphp/hack/_build/opam
-tar Jxvf $CWD/hack-switch-$OPAM_STAMP.tar.xz -C hphp/hack/_build/opam
-tar Jxvf $CWD/cargo-home-$CARGO_BUILD.tar.xz -C hphp/hack/_build
-
-install -m 0755 -D $CWD/opam-2.1.0-x86_64-linux \
- third-party/opam/opamDownload-prefix/src/opam-2.1.0-x86_64-linux
-
-install -m 0644 -D $CWD/fmt-8.0.0.zip third-party/fmt/bundled_fmt-prefix/src/fmt-8.0.0.zip
-unzip $CWD/fmt-8.0.0.zip -d third-party/fmt/bundled_fmt-prefix/src
-mv third-party/fmt/bundled_fmt-prefix/src/fmt-8.0.0 third-party/fmt/bundled_fmt-prefix/src/bundled_fmt
-
-mkdir -p third-party/re2/bundled_re2-prefix/src/bundled_re2
-install -m 0644 -D $CWD/re2-2021-11-01.tar.gz third-party/re2/bundled_re2-prefix/src/re2-2021-11-01.tar.gz
-tar zxvf $CWD/re2-2021-11-01.tar.gz \
- -C third-party/re2/bundled_re2-prefix/src/bundled_re2 \
- --strip-components=1
-
-mkdir -p third-party/brotli/bundled_brotli-prefix/src/bundled_brotli
-install -m 0644 -D $CWD/brotli-v1.0.9.tar.gz third-party/brotli/bundled_brotli-prefix/src/brotli-v1.0.9.tar.gz
-tar zxvf $CWD/brotli-v1.0.9.tar.gz \
- -C third-party/brotli/bundled_brotli-prefix/src/bundled_brotli \
- --strip-components=1
-
-mkdir -p third-party/rustc/bundled_rust-prefix/src/bundled_rust
-install -m 0644 -D $CWD/rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
- third-party/rustc/bundled_rust-prefix/src/rust-nightly-x86_64-unknown-linux-gnu.tar.gz
-tar zxvf $CWD/rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
- -C third-party/rustc/bundled_rust-prefix/src/bundled_rust \
- --strip-components=1
-
-mkdir -p third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen
-install -m 0644 -D $CWD/proxygen-v${FB_VERSION}.tar.gz \
- third-party/proxygen/bundled_proxygen-prefix/src/proxygen-v${FB_VERSION}.tar.gz
-tar zxvf $CWD/proxygen-v${FB_VERSION}.tar.gz \
- -C third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen
-
-mkdir -p third-party/folly/bundled_folly-prefix/src/bundled_folly
-install -m 0644 -D $CWD/folly-v${FB_VERSION}.tar.gz \
- third-party/folly/bundled_folly-prefix/src/folly-v${FB_VERSION}.tar.gz
-tar zxvf $CWD/folly-v${FB_VERSION}.tar.gz \
- -C third-party/folly/bundled_folly-prefix/src/bundled_folly
-
-mkdir -p third-party/wangle/bundled_wangle-prefix/src/bundled_wangle
-install -m 0644 -D $CWD/wangle-v${FB_VERSION}.tar.gz \
- third-party/wangle/bundled_wangle-prefix/src/wangle-v${FB_VERSION}.tar.gz
-tar -zxvf $CWD/wangle-v${FB_VERSION}.tar.gz \
- -C third-party/wangle/bundled_wangle-prefix/src/bundled_wangle
-
-mkdir -p third-party/thrift/bundled_thrift-prefix/src/bundled_thrift
-install -m 0644 -D $CWD/fbthrift-v${FB_VERSION}.tar.gz \
- third-party/thrift/bundled_thrift-prefix/src/fbthrift-v${FB_VERSION}.tar.gz
-tar -zxvf $CWD/fbthrift-v${FB_VERSION}.tar.gz \
- -C third-party/thrift/bundled_thrift-prefix/src/bundled_thrift \
- --strip-components=1
-
-mkdir -p third-party/mcrouter/bundled_mcrouter-prefix/src/bundled_mcrouter
-install -m 0644 -D $CWD/mcrouter-v${FB_VERSION}.tar.gz \
- third-party/mcrouter/bundled_mcrouter-prefix/src/mcrouter-v${FB_VERSION}.tar.gz
-tar -zxvf $CWD/mcrouter-v${FB_VERSION}.tar.gz \
- -C third-party/mcrouter/bundled_mcrouter-prefix/src/bundled_mcrouter \
- --strip-components=1
-
-mkdir -p third-party/timelib/bundled_timelib-prefix/src/bundled_timelib
-install -m 0644 -D $CWD/timelib-2021.07.tar.gz third-party/timelib/bundled_timelib-prefix/src/timelib-2021.07.tar.gz
-tar -zxvf $CWD/timelib-2021.07.tar.gz \
- -C third-party/timelib/bundled_timelib-prefix/src/bundled_timelib \
- --strip-components=1
-
-mkdir -p third-party/fizz/bundled_fizz-prefix/src/bundled_fizz
-install -m 0644 -D $CWD/fizz-v${FB_VERSION}.tar.gz \
- third-party/fizz/bundled_fizz-prefix/src/fizz-v${FB_VERSION}.tar.gz
-tar -zxvf $CWD/fizz-v${FB_VERSION}.tar.gz \
- -C third-party/fizz/bundled_fizz-prefix/src/bundled_fizz
-
-# The working directory is hphp/hack.
-cat << EOF > hphp/hack/facebook/fetch_opam2_repo_hack.sh
-!/bin/sh
-cp $CWD/index-$OPAM_STAMP.tar.gz facebook/
-echo facebook/index-$OPAM_STAMP
-EOF
-chmod 0755 hphp/hack/facebook/fetch_opam2_repo_hack.sh
-
-patch -p1 --verbose -i $CWD/patches/0001-liburing.patch
-patch -p1 --verbose -i $CWD/patches/0002-download.patch
-patch -p1 --verbose -i $CWD/patches/0003-iquote.patch
-
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-export CMAKE_PREFIX_PATH=`pwd`
-cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_STANDARD=17 \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
- -DENABLE_MCROUTER=true \
- -DENABLE_EXTENSION_IMAGICK=false \
- -DNON_DISTRIBUTABLE_BUILD=true \
- -DENABLE_LD_GOLD=true \
- -DUSE_JEMALLOC=true \
- -DUSE_BUNDLED_TZDATA=OFF \
- -DFORCE_BUNDLED_LZ4=OFF \
- -DCAN_USE_SYSTEM_ZSTD=ON \
- -DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
- -DCMAKE_BUILD_TYPE=Release .
-make || make -j1
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/man
-mv hphp/doc/man $PKG/usr/man/man1
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-install -m 644 -D $CWD/etc/rc.hhvm $PKG/etc/rc.d/rc.hhvm.new
-install -m 644 -D $CWD/etc/server.ini $PKG/etc/hhvm/server.ini.new
-install -m 644 -D $CWD/etc/php.ini $PKG/etc/hhvm/php.ini.new
-
-mkdir -p $PKG/var/log/hhvm $PKG/usr/lib64/hhvm/extensions
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a *.md LICENSE* hphp/doc/* $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-cat $CWD/doinst.sh > $PKG/install/doinst.sh
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/hhvm/hhvm.info b/development/hhvm/hhvm.info
deleted file mode 100644
index 5eaeddab22..0000000000
--- a/development/hhvm/hhvm.info
+++ /dev/null
@@ -1,40 +0,0 @@
-PRGNAM="hhvm"
-VERSION="4.168.2"
-HOMEPAGE="https://hhvm.com/"
-DOWNLOAD="UNSUPPORTED"
-MD5SUM=""
-DOWNLOAD_x86_64="https://download.dlackware.com/hosted-sources/hhvm/hhvm-4.168.2.tar.xz \
- https://static.rust-lang.org/dist/2022-08-01/rust-nightly-x86_64-unknown-linux-gnu.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/opam-2.1.0-x86_64-linux \
- https://download.dlackware.com/hosted-sources/hhvm/brotli-v1.0.9.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/fmt-8.0.0.zip \
- https://download.dlackware.com/hosted-sources/hhvm/cargo-home-3.tar.xz \
- https://download.dlackware.com/hosted-sources/hhvm/index-1d2e919.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/hack-switch-1d2e919.tar.xz \
- https://download.dlackware.com/hosted-sources/hhvm/fbthrift-v2022.07.04.00.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/fizz-v2022.07.04.00.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/folly-v2022.07.04.00.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/mcrouter-v2022.07.04.00.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/proxygen-v2022.07.04.00.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/re2-2021-11-01.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/timelib-2021.07.tar.gz \
- https://download.dlackware.com/hosted-sources/hhvm/wangle-v2022.07.04.00.tar.gz"
-MD5SUM_x86_64="e28368785c9d9a450e535dfab58edd25 \
- 6c9d12670d6ef18be6da3e92ebe692e9 \
- 87d949d8dd93061c5f727094da67f315 \
- c2274f0c7af8470ad514637c35bcee7d \
- f6eb7f98a6aa09aa0102c0c931feec55 \
- e4fd7b7137880abf755c34d8bd53cb2c \
- 65d68e3ecb52e910245cb6d3a02d137f \
- 0eec01bc44b88f75ce6a0799b09b6e3b \
- ba0283a7a932e329852b0634765ea6f1 \
- 34e50ea874ba018c567409a02919f613 \
- 0b6de34c0ca84a4f89d72a3380de9391 \
- 0084e476218aeb9a03fa1a0e5d797522 \
- cc6c17ef5b582d8f602efce8a61a117e \
- 8db4cf198c296eb001b4bf7ac194e598 \
- 7b869e86c44b5a3d9296149285c8bd69 \
- 544011faeb62a328f8b92044f9adcf11"
-REQUIRES="tbb glog libdwarf libmemcached double-conversion gflags"
-MAINTAINER="Eugene Wissner"
-EMAIL="belka@caraus.de"
diff --git a/development/hhvm/patches/0001-liburing.patch b/development/hhvm/patches/0001-liburing.patch
deleted file mode 100644
index 1369df0f0d..0000000000
--- a/development/hhvm/patches/0001-liburing.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/services/WorkerThread.cpp 2022-06-16 13:33:00.766000000 +0200
-+++ b/third-party/proxygen/bundled_proxygen-prefix/src/bundled_proxygen/proxygen/lib/services/WorkerThread.cpp 2022-06-16 13:37:39.111000000 +0200
-@@ -17,7 +17,7 @@
- #include <glog/logging.h>
- #include <signal.h>
-
--#if !FOLLY_MOBILE && __has_include(<liburing.h>)
-+#if !FOLLY_MOBILE && false
-
- DEFINE_int32(pwt_io_uring_capacity, -1, "io_uring backend capacity");
- DEFINE_int32(pwt_io_uring_max_submit, 128, "io_uring backend max submit");
---- a/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.h 2022-06-16 13:38:45.523000000 +0200
-+++ b/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.h 2022-06-16 13:43:08.748000000 +0200
-@@ -40,11 +40,7 @@
- #include <poll.h>
- #endif
-
--#if __has_include(<liburing.h>)
--#include <liburing.h>
--#endif
--
--#if __has_include(<liburing.h>)
-+#if false
-
- namespace folly {
-
---- a/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.cpp 2022-06-16 14:12:06.191000000 +0200
-+++ b/third-party/folly/bundled_folly-prefix/src/bundled_folly/folly/experimental/io/IoUringBackend.cpp 2022-06-16 14:09:28.887000000 +0200
-@@ -31,7 +31,7 @@
- #include <sys/timerfd.h>
- #endif
-
--#if __has_include(<liburing.h>)
-+#if false
-
- extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_pre_hook(uint64_t* call_time);
- extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_post_hook(
diff --git a/development/hhvm/patches/0002-download.patch b/development/hhvm/patches/0002-download.patch
deleted file mode 100644
index 5693c55e74..0000000000
--- a/development/hhvm/patches/0002-download.patch
+++ /dev/null
@@ -1,247 +0,0 @@
---- hhvm-4.168.2/third-party/libzip/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.449428587 +0200
-@@ -23,10 +23,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- LIBZIP_DOWNLOAD_ARGS
-- SOURCE_URL
-- "https://libzip.org/download/libzip-1.6.1.tar.gz"
-- SOURCE_HASH
-- "SHA256=06eb8e9141fd19e2788cabaea9c9c2fd4d488d9e1484eb474bbfcac78e7b1d88"
- )
-
- ExternalProject_Add(
---- hhvm-4.168.2/third-party/re2/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.453034229 +0200
-@@ -12,10 +12,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- RE2_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/google/re2/archive/refs/tags/2021-11-01.tar.gz"
-- SOURCE_HASH
-- "SHA256=8c45f7fba029ab41f2a7e6545058d9eec94eef97ce70df58e92d85cfc08b4669"
- FILENAME_PREFIX "re2-"
- )
-
---- hhvm-4.168.2/third-party/zstd/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.454513420 +0200
-@@ -36,10 +36,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- ZSTD_DOWNLOAD_ARGS
-- SOURCE_URL
-- "https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.tar.gz"
-- SOURCE_HASH
-- "SHA512=10d325c844be43f801c798158c6f1d1ab57401abf1e783e04f6b9e4ac0ba53cf487204fa3244370b1ade239d5f3a784bf1829e206c4ba61fdd9c2f4e9502b238"
- )
- ExternalProject_Add(
- bundled_zstd
---- hhvm-4.168.2/third-party/libsodium/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.456241341 +0200
-@@ -21,10 +21,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- LIBSODIUM_DOWNLOAD_ARGS
-- SOURCE_URL
-- "https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz"
-- SOURCE_HASH
-- "SHA512=17e8638e46d8f6f7d024fe5559eccf2b8baf23e143fadd472a7d29d228b186d86686a5e6920385fe2020729119a5f12f989c3a782afbd05a8db4819bb18666ef"
- )
-
- if (CMAKE_OSX_SYSROOT)
---- hhvm-4.168.2/third-party/brotli/CMakeLists.txt 2023-05-28 20:16:43.000000000 +0200
-+++ - 2023-06-01 19:10:40.458519062 +0200
-@@ -4,10 +4,6 @@
- include(HPHPFunctions)
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- BROTLI_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/google/brotli/archive/refs/tags/v1.0.9.tar.gz"
-- SOURCE_HASH
-- "SHA256=f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46"
- FILENAME_PREFIX "brotli-"
- )
-
---- hhvm-4.168.2/third-party/proxygen/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.460795033 +0200
-@@ -18,10 +18,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- PROXYGEN_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/facebook/proxygen/releases/download/v2022.07.04.00/proxygen-v2022.07.04.00.tar.gz"
-- SOURCE_HASH
-- "SHA256=4de47545a5beb9f3ac2ccdd62ae9def112b3cc361bb71820b9306a04f4bb40e9"
- )
-
- ExternalProject_Add(
---- hhvm-4.168.2/third-party/wangle/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.463064724 +0200
-@@ -20,10 +20,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- WANGLE_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/facebook/wangle/releases/download/v2022.07.04.00/wangle-v2022.07.04.00.tar.gz"
-- SOURCE_HASH
-- "SHA256=8c7b538f9e9d84162056d6dc757bea1d0d4c0978889469f10e9d05b1dc4e5a83"
- )
-
- ExternalProject_Add(
---- hhvm-4.168.2/third-party/thrift/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.465499515 +0200
-@@ -20,10 +20,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- THRIFT_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/facebook/fbthrift/archive/refs/tags/v2022.07.04.00.tar.gz"
-- SOURCE_HASH
-- "SHA256=45e7ffb38655d9b518d28066f4276000a298990c7c32b9460ddb7a37f2af78bd"
- FILENAME_PREFIX
- "fbthrift-"
- )
---- hhvm-4.168.2/third-party/mcrouter/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.467849786 +0200
-@@ -5,9 +5,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- MCROUTER_DOWNLOAD_ARGS
-- SOURCE_URL "https://github.com/facebook/mcrouter/archive/refs/tags/v2022.07.04.00.tar.gz"
-- SOURCE_HASH "SHA256=7a2a0b44736e896c844c4f8c7697202cdebf7fa42dbb4b84931ee5036a46945c"
-- # The tarball name is just the tag name, which can conflict in the cache
- FILENAME_PREFIX "mcrouter-"
- )
-
---- hhvm-4.168.2/third-party/double-conversion/CMakeLists.txt 2023-05-28 20:16:43.000000000 +0200
-+++ - 2023-06-01 19:10:40.470198057 +0200
-@@ -1,33 +1,7 @@
- include(ExternalProject)
- include(HPHPFunctions)
-
--SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
-- DOUBLE_CONVERSION_DOWNLOAD_ARGS
-- SOURCE_URL "https://github.com/google/double-conversion/archive/refs/tags/v3.0.1.tar.gz"
-- SOURCE_HASH "SHA256=d400c86417df2980b60dc27ad68249dd124964738916d20cdc9c90b42de86490"
-- # The tarball name is just the tag name, which can conflict in the cache
-- FILENAME_PREFIX "double-conversion-"
--)
--
--ExternalProject_Add(
-- bundled_double-conversion
-- ${DOUBLE_CONVERSION_DOWNLOAD_ARGS}
-- CMAKE_ARGS
-- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-- -DCMAKE_INSTALL_LIBDIR=lib
-- -DCMAKE_INSTALL_INCLUDEDIR=include
-- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-- -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
-- EXCLUDE_FROM_ALL
--)
--
--option(FORCE_BUNDLED_DOUBLE_CONVERSION "Always use bundled double-conversion" OFF)
--if(FORCE_BUNDLED_DOUBLE_CONVERSION)
-- set(DOUBLE_CONVERSION_FOUND FALSE)
--else()
-- find_package(DoubleConversion)
--endif()
-+find_package(DoubleConversion)
-
- add_library(double-conversion INTERFACE)
- if(DOUBLE_CONVERSION_FOUND)
---- hhvm-4.168.2/third-party/timelib/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.472727059 +0200
-@@ -6,9 +6,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- TIMELIB_DOWNLOAD_ARGS
-- SOURCE_URL "https://github.com/derickr/timelib/archive/refs/tags/2021.07.tar.gz"
-- SOURCE_HASH "SHA512=7bc56d20360937af10f63960e443cc8bd4d24c5369f697241e54da21465d4512bd16cfa6f0efcf2b847cc19781e1cecf93c9e19a1efa4f1a7012c9fa442eeabe"
-- # Look for timelib-YYYY.MM.tar.gz in download cache, not just YYYY.MM.tar.gz
- FILENAME_PREFIX "timelib-"
- )
-
---- hhvm-4.168.2/third-party/oniguruma/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.474969410 +0200
-@@ -28,10 +28,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- ONIG_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/kkos/oniguruma/releases/download/v6.9.5/onig-6.9.5.tar.gz"
-- SOURCE_HASH
-- "SHA512=2bdb24914e7069c6df9ab8a3d0190ddb58440d94b13860cdc36d259062ae0bc2aa85d564a4209ec596fc7ee47b0823d1b817d4f7ffcc3ea60e9870da84491dc1"
- )
-
- ExternalProject_add(
---- hhvm-4.168.2/third-party/fizz/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.477204211 +0200
-@@ -22,10 +22,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- FIZZ_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/facebookincubator/fizz/releases/download/v2022.07.04.00/fizz-v2022.07.04.00.tar.gz"
-- SOURCE_HASH
-- "SHA256=48941c3726b99aa9b22480ff92cbe3715154df0a4330ad42485b3d7649167b76"
- )
-
- set(
---- hhvm-4.168.2/third-party/fmt/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.478716581 +0200
-@@ -3,10 +3,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- FMT_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/fmtlib/fmt/releases/download/8.0.0/fmt-8.0.0.zip"
-- SOURCE_HASH
-- "SHA512=70848739642bebf2820d661e7547208445329325a0d8b5919d85f375d683c0f9bef763bc7e9d7823def15100134fd9a126a9e418223b20bf8d567e5084334778"
- )
-
- set(INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/fmt-prefix")
---- hhvm-4.168.2/third-party/rustc/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.480975123 +0200
-@@ -32,14 +32,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- RUST_DOWNLOAD_ARGS
-- Linux_URL
-- "https://static.rust-lang.org/dist/${RUST_NIGHTLY_VERSION}/rust-nightly-x86_64-unknown-linux-gnu.tar.gz"
-- Darwin_URL
-- "https://static.rust-lang.org/dist/${RUST_NIGHTLY_VERSION}/rust-nightly-x86_64-apple-darwin.tar.gz"
-- Linux_HASH
-- "SHA512=de136959121b4117ab31a9ae4c4b3c593d4fcdf9724bd0f62e8a4ab41becccfa4b8e92ebe1460d9be508986888b95b38620bb68b58496db89706760074b9585d"
-- Darwin_HASH
-- "SHA512=77beb1d67233d3954c2709a47c2513762e91e506041bb5ad8d0aad90124cb5a229dfc87e1fb767826f27a31b52520f148c52c2f3a595dac6e09a676c6e660462"
- # The original filename doesn't contain any version information, so add the version information as a prefix to avoid cache collisions when updating later
- FILENAME_PREFIX "rustc-${RUST_NIGHTLY_VERSION}-"
- )
---- hhvm-4.168.2/third-party/lz4/CMakeLists.txt 2023-05-28 20:16:44.000000000 +0200
-+++ - 2023-06-01 19:10:40.483215304 +0200
-@@ -21,10 +21,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- LZ4_DOWNLOAD_ARGS
-- SOURCE_URL "https://github.com/lz4/lz4/archive/v1.9.2.tar.gz"
-- SOURCE_HASH "SHA256=658ba6191fa44c92280d4aa2c271b0f4fbc0e34d249578dd05e50e76d0e5efcc"
-- # By default, we'd look for v1.9.2.tar.gz in the cache - let's look for
-- # lz4-v1.9.2 instead
- FILENAME_PREFIX "lz4-"
- )
- set(MAKE_ARGS CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} "MOREFLAGS=-fPIC ${ISYSROOT_FLAG}")
---- hhvm-4.168.2/third-party/folly/CMakeLists.txt 2023-05-28 20:24:27.000000000 +0200
-+++ - 2023-06-01 19:10:40.485574035 +0200
-@@ -3,10 +3,6 @@
-
- SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
- FOLLY_SOURCE_ARGS
-- SOURCE_URL
-- "https://github.com/facebook/folly/releases/download/v2022.07.04.00/folly-v2022.07.04.00.tar.gz"
-- SOURCE_HASH
-- "SHA256=fff7caa4a230ac0b3ee88e383fa9ea1ee2b2f3f7611ae5b18c73a71a40ec0d43"
- )
-
- get_target_property(BOOST_INCLUDE_DIR boost INTERFACE_INCLUDE_DIRECTORIES)
diff --git a/development/hhvm/patches/0003-iquote.patch b/development/hhvm/patches/0003-iquote.patch
deleted file mode 100644
index e8a42ce09f..0000000000
--- a/development/hhvm/patches/0003-iquote.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/hphp/hack/CMakeLists.txt b/hphp/hack/CMakeLists.txt
-index b1aec712dbb..831c46db9e4 100644
---- a/hphp/hack/CMakeLists.txt
-+++ b/hphp/hack/CMakeLists.txt
-@@ -293,11 +293,8 @@ function(build_cxx_bridge NAME)
- "${NAME}_rust_part"
- ${CXX_BRIDGE_LINK_LIBS}
- )
-- # `-iquote` is like `-I` (or target_include_directories()`), except:
-- # - it takes precedence over `-I`
-- # - it only applies to `#include "foo"`, not `#include <foo>`
-- target_compile_options("${NAME}" INTERFACE "-iquote" "${RUST_FFI_BUILD_ROOT}")
-- target_compile_options("${NAME}" PRIVATE "-iquote" "${GENERATED_CXXBRIDGE}")
-+ target_include_directories("${NAME}" INTERFACE "${RUST_FFI_BUILD_ROOT}")
-+ target_include_directories("${NAME}" PRIVATE "${GENERATED_CXXBRIDGE}")
- endfunction()
-
- build_cxx_bridge(
diff --git a/development/hhvm/slack-desc b/development/hhvm/slack-desc
deleted file mode 100644
index 9d6bbdf91e..0000000000
--- a/development/hhvm/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-hhvm: hhvm (a virtual machine designed for executing Hack and PHP)
-hhvm:
-hhvm: HHVM uses a just-in-time (JIT) compilation approach to achieve
-hhvm: superior performance while maintaining the development flexibility
-hhvm: that PHP provides.
-hhvm:
-hhvm: Hack is a programming language for HHVM.
-hhvm:
-hhvm:
-hhvm: Homepage: https://hhvm.com/
-hhvm:
diff --git a/development/hipSYCL/hipSYCL.SlackBuild b/development/hipSYCL/hipSYCL.SlackBuild
index 4ac3aa5df9..d6b7be1fcc 100644
--- a/development/hipSYCL/hipSYCL.SlackBuild
+++ b/development/hipSYCL/hipSYCL.SlackBuild
@@ -26,6 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=hipSYCL
+SRCNAM=AdaptiveCpp
VERSION=${VERSION:-0.9.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -70,9 +71,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -117,12 +118,12 @@ cd ..
# fix for cmake files at wrong place.
# Don't found another way to do it let's manually move them
-mv $PKG/usr/lib/* $PKG/usr/lib${LIBDIRSUFFIX}
-
-# fix for the cmake files configured to use /lib/cmake path
-sed -i 's#/lib/cmake#/lib'${LIBDIRSUFFIX}'/cmake#g' \
- $PKG/usr/lib${LIBDIRSUFFIX}/cmake/hipSYCL/hipsycl-config.cmake
-
+if [ -n "$LIBDIRSUFFIX" ] ; then
+ mv $PKG/usr/lib/* $PKG/usr/lib${LIBDIRSUFFIX}
+ # fix for the cmake files configured to use /lib/cmake path
+ sed -i 's#/lib/cmake#/lib'${LIBDIRSUFFIX}'/cmake#g' \
+ $PKG/usr/lib${LIBDIRSUFFIX}/cmake/hipSYCL/hipsycl-config.cmake
+fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a doc $PKG/usr/doc/$PRGNAM-$VERSION
@@ -130,7 +131,6 @@ cp -a doc $PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/usr/share/$PRGNAM-$VERSION
cp -a examples $PKG/usr/share/$PRGNAM-$VERSION
-
# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
diff --git a/development/hipSYCL/hipSYCL.info b/development/hipSYCL/hipSYCL.info
index d110044bc7..37670cd56f 100644
--- a/development/hipSYCL/hipSYCL.info
+++ b/development/hipSYCL/hipSYCL.info
@@ -1,8 +1,8 @@
PRGNAM="hipSYCL"
VERSION="0.9.3"
-HOMEPAGE="https://hipsycl.github.io"
-DOWNLOAD="https://github.com/illuhad/hipSYCL/archive/v0.9.3/hipSYCL-0.9.3.tar.gz"
-MD5SUM="47ce0e5ba85aec91494e2ea49bc12cf2"
+HOMEPAGE="https://adaptivecpp.github.io/"
+DOWNLOAD="https://github.com/AdaptiveCpp/AdaptiveCpp/archive/v0.9.3/AdaptiveCpp-0.9.3.tar.gz"
+MD5SUM="2e213619c9a0e5761100166beec0a22e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/inform/inform.info b/development/inform/inform.info
index 9cccec8441..388a4fe0ce 100644
--- a/development/inform/inform.info
+++ b/development/inform/inform.info
@@ -8,7 +8,7 @@ DOWNLOAD="https://slackware.uk/~urchlay/src/inform-6.41-r2.tar.gz \
MD5SUM="a38fc48ddf90fe8ac8c7a5c03322fe6e \
0063968c3378636add1a0697b6d1fc16 \
b2635d3d61313bed286409500fc55bed \
- 5051762b361155ce61ed84924825a7c0"
+ 93fb0261ac9662a3e7cc2e7ed9469042"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/jdk11/README b/development/jdk11/README
index 2b77c7fb6f..cdb6241f70 100644
--- a/development/jdk11/README
+++ b/development/jdk11/README
@@ -8,15 +8,14 @@ The JDK is a development environment for building applications,
applets and components that can be deployed with the
Java Platform Standard Edition Runtime Environment.
-More details:
-https://developer.oracle.com/java/
-
This SlackBuild will repackage official Oracle JDK archive.
You must accept the Oracle Technology Network License Agreement
for Oracle Java SE to download this software
-https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
+https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
After installation you will need to log out from the system and log
in back for environment variables get updated. Or just run "source
/etc/profile"
+
+NOTE: This version of JDK is considered End of Life (EOL)
diff --git a/development/jdk11/jdk11.SlackBuild b/development/jdk11/jdk11.SlackBuild
index 272f86d660..bd17ab104e 100644
--- a/development/jdk11/jdk11.SlackBuild
+++ b/development/jdk11/jdk11.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=jdk11
-VERSION=${VERSION:-11.0.12}
+VERSION=${VERSION:-11.0.22}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +38,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -61,8 +58,8 @@ LIBDIRSUFFIX=64
rm -rf $PKG
mkdir -p $TMP $OUTPUT $PKG/{install,etc/profile.d,usr/{bin,lib${LIBDIRSUFFIX},doc/$PRGNAM-$VERSION,man/man1}}
cd $PKG/usr/lib${LIBDIRSUFFIX}
-tar -xvf $CWD/jdk-${VERSION}_linux*.tar.gz
-mv $(tar -tf $CWD/jdk-${VERSION}_linux*.tar.gz | head -1 | cut -d/ -f1) $PRGNAM-$VERSION
+tar -xvf $CWD/jdk-${VERSION}_linux-x64_bin.tar.gz
+mv $(tar -tf $CWD/jdk-${VERSION}_linux-x64_bin.tar.gz | head -1 | cut -d/ -f1) $PRGNAM-$VERSION
chown -R root:root $PRGNAM-$VERSION
find -L $PRGNAM-$VERSION \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/development/jdk11/jdk11.info b/development/jdk11/jdk11.info
index 61610c0225..9eacf2946b 100644
--- a/development/jdk11/jdk11.info
+++ b/development/jdk11/jdk11.info
@@ -1,10 +1,10 @@
PRGNAM="jdk11"
-VERSION="11.0.12"
+VERSION="11.0.22"
HOMEPAGE="https://developer.oracle.com/java"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.oracle.com/otn/java/jdk/11.0.12+8/f411702ca7704a54a79ead0c2e0942a3/jdk-11.0.12_linux-x64_bin.tar.gz?AuthParam=1630328792_80e3bfc8ea574dfdd3391fd65ea454d3"
-MD5SUM_x86_64="ce9d5fecc743ab9f808415132938addb"
+DOWNLOAD_x86_64="https://download.oracle.com/otn/java/jdk/11.0.22+9/8662aac2120442c2a89b1ee9c67d7069/jdk-11.0.22_linux-x64_bin.tar.gz"
+MD5SUM_x86_64="1d0ca55b8121d35a69a4666ce49c5381"
REQUIRES=""
MAINTAINER="Igor Alexandrov"
EMAIL="igor.alexandrov@outlook.com"
diff --git a/development/jupyter-nbconvert/jupyter-nbconvert.SlackBuild b/development/jupyter-nbconvert/jupyter-nbconvert.SlackBuild
index 1704e25847..a9ae5d6c5c 100644
--- a/development/jupyter-nbconvert/jupyter-nbconvert.SlackBuild
+++ b/development/jupyter-nbconvert/jupyter-nbconvert.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=jupyter-nbconvert
-VERSION=${VERSION:-7.16.3}
+VERSION=${VERSION:-7.16.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/jupyter-nbconvert/jupyter-nbconvert.info b/development/jupyter-nbconvert/jupyter-nbconvert.info
index 11ffff748f..27c49d870a 100644
--- a/development/jupyter-nbconvert/jupyter-nbconvert.info
+++ b/development/jupyter-nbconvert/jupyter-nbconvert.info
@@ -1,8 +1,8 @@
PRGNAM="jupyter-nbconvert"
-VERSION="7.16.3"
+VERSION="7.16.4"
HOMEPAGE="https://jupyter.org/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/n/nbconvert/nbconvert-7.16.3.tar.gz"
-MD5SUM="3598dda22ab9fb316c55fdaa189ee2c7"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/n/nbconvert/nbconvert-7.16.4.tar.gz"
+MD5SUM="8cdc74f178e14c5f3dfeceda96ef8144"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-bleach python3-defusedxml jupyter-nbclient jupyterlab_pygments python3-mistune pandocfilters testpath BeautifulSoup4 tinycss2 python-importlib_metadata"
diff --git a/development/jupyter_server_terminals/jupyter_server_terminals.SlackBuild b/development/jupyter_server_terminals/jupyter_server_terminals.SlackBuild
index a3968f8eb1..5dad460068 100644
--- a/development/jupyter_server_terminals/jupyter_server_terminals.SlackBuild
+++ b/development/jupyter_server_terminals/jupyter_server_terminals.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=jupyter_server_terminals
-VERSION=${VERSION:-0.5.0}
+VERSION=${VERSION:-0.5.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -47,20 +47,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/development/jupyter_server_terminals/jupyter_server_terminals.info b/development/jupyter_server_terminals/jupyter_server_terminals.info
index 54ac177fdd..c7455eb88f 100644
--- a/development/jupyter_server_terminals/jupyter_server_terminals.info
+++ b/development/jupyter_server_terminals/jupyter_server_terminals.info
@@ -1,8 +1,8 @@
PRGNAM="jupyter_server_terminals"
-VERSION="0.5.0"
+VERSION="0.5.3"
HOMEPAGE="https://jupyter.org/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/j/jupyter_server_terminals/jupyter_server_terminals-0.5.0.tar.gz"
-MD5SUM="8ae5d501df1900e9c19c61cb10c8bb9a"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/j/jupyter_server_terminals/jupyter_server_terminals-0.5.3.tar.gz"
+MD5SUM="eaf426639bf39bc218741079d7294abb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="terminado"
diff --git a/development/kForth-32/kForth-32.info b/development/kForth-32/kForth-32.info
index 3cb0cbc586..0cacea33cb 100644
--- a/development/kForth-32/kForth-32.info
+++ b/development/kForth-32/kForth-32.info
@@ -3,7 +3,7 @@ VERSION="2.4.3"
HOMEPAGE="https://github.com/mynenik/kForth-32"
DOWNLOAD="https://github.com/mynenik/kForth-32/archive/refs/tags/v2.4.3/kForth-32-2.4.3.tar.gz"
MD5SUM="fe006640fadef2863063728a884f7cb7"
-DOWNLOAD_x86_64=""
+DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES="patchutils"
MAINTAINER="Antonio Leal"
diff --git a/development/kForth-64/kForth-64.info b/development/kForth-64/kForth-64.info
index 4cf4f9c7f6..fb8d73297d 100644
--- a/development/kForth-64/kForth-64.info
+++ b/development/kForth-64/kForth-64.info
@@ -1,10 +1,10 @@
PRGNAM="kForth-64"
VERSION="0.4.3"
HOMEPAGE="https://github.com/mynenik/kForth-64"
-DOWNLOAD="https://github.com/mynenik/kForth-64/archive/refs/tags/v0.4.3/kForth-64-0.4.3.tar.gz"
-MD5SUM="44bc386a5ac16dacac44daa04aeba8af"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/mynenik/kForth-64/archive/refs/tags/v0.4.3/kForth-64-0.4.3.tar.gz"
+MD5SUM_x86_64="44bc386a5ac16dacac44daa04aeba8af"
REQUIRES="patchutils"
MAINTAINER="Antonio Leal"
EMAIL="antonio.leal@yahoo.com"
diff --git a/development/kdiff3/kdiff3.info b/development/kdiff3/kdiff3.info
index 49097a1177..847f9d5414 100644
--- a/development/kdiff3/kdiff3.info
+++ b/development/kdiff3/kdiff3.info
@@ -2,7 +2,7 @@ PRGNAM="kdiff3"
VERSION="1.10.7"
HOMEPAGE="https://apps.kde.org/kdiff3/"
DOWNLOAD="https://download.kde.org/stable/kdiff3/kdiff3-1.10.7.tar.xz"
-MD5SUM="2bb2d5e0745e7158a1720ef4dd1d7e40"
+MD5SUM="5598064407e2e80f858e03cac8d3ff81"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/liberica-jdk-bin/liberica-jdk-bin.SlackBuild b/development/liberica-jdk-bin/liberica-jdk-bin.SlackBuild
index db42532f47..6fe16a4b5d 100644
--- a/development/liberica-jdk-bin/liberica-jdk-bin.SlackBuild
+++ b/development/liberica-jdk-bin/liberica-jdk-bin.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=liberica-jdk-bin
VERSION=${VERSION:-21.0.3+10}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -67,11 +67,17 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir -p $PKG/etc/profile.d
-for s in $PRGNAM.sh $PRGNAM.csh ; do
- sed "s|/usr/lib|/usr/lib$LIBDIRSUFFIX/liberica-$JDKNAM|" $CWD/$s \
- > $PKG/etc/profile.d/$s
- chmod 755 $PKG/etc/profile.d/$s
-done
+cat > $PKG/etc/profile.d/liberica-jdk-bin.csh << EOF
+setenv JAVA_HOME /usr/lib${LIBDIRSUFFIX}/liberica-${JDKNAM}
+setenv PATH \${PATH}:\${JAVA_HOME}/bin
+EOF
+cat > $PKG/etc/profile.d/liberica-jdk-bin.sh << EOF
+export JAVA_HOME="/usr/lib${LIBDIRSUFFIX}/liberica-${JDKNAM}"
+export PATH="\${PATH}:\${JAVA_HOME}/bin"
+EOF
+
+chmod 0755 $PKG/etc/profile.d/liberica-jdk-bin.csh
+chmod 0755 $PKG/etc/profile.d/liberica-jdk-bin.sh
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/development/liberica-jdk-bin/liberica-jdk-bin.csh b/development/liberica-jdk-bin/liberica-jdk-bin.csh
deleted file mode 100644
index 19044c534a..0000000000
--- a/development/liberica-jdk-bin/liberica-jdk-bin.csh
+++ /dev/null
@@ -1,3 +0,0 @@
-setenv JAVA_HOME /usr/lib
-setenv PATH ${PATH}:${JAVA_HOME}/bin
-setenv MANPATH ${MANPATH}:${JAVA_HOME}/man
diff --git a/development/liberica-jdk-bin/liberica-jdk-bin.sh b/development/liberica-jdk-bin/liberica-jdk-bin.sh
deleted file mode 100644
index 85556c6edd..0000000000
--- a/development/liberica-jdk-bin/liberica-jdk-bin.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-export JAVA_HOME=/usr/lib
-export PATH="${PATH}:${JAVA_HOME}/bin"
-export MANPATH="${MANPATH}:${JAVA_HOME}/man"
diff --git a/development/mold/mold.SlackBuild b/development/mold/mold.SlackBuild
index c217619c76..cbe6e4223b 100644
--- a/development/mold/mold.SlackBuild
+++ b/development/mold/mold.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mold
-VERSION=${VERSION:-2.30.0}
+VERSION=${VERSION:-2.31.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/mold/mold.info b/development/mold/mold.info
index 7d13959d7b..bd11720a95 100644
--- a/development/mold/mold.info
+++ b/development/mold/mold.info
@@ -1,8 +1,8 @@
PRGNAM="mold"
-VERSION="2.30.0"
+VERSION="2.31.0"
HOMEPAGE="https://github.com/rui314/mold"
-DOWNLOAD="https://github.com/rui314/mold/archive/v2.30.0/mold-2.30.0.tar.gz"
-MD5SUM="061da806be174abe79d87c3a439f982f"
+DOWNLOAD="https://github.com/rui314/mold/archive/v2.31.0/mold-2.31.0.tar.gz"
+MD5SUM="fdfcddefc039071f5a7611c051a8f5ea"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/mongodb-compass/mongodb-compass.SlackBuild b/development/mongodb-compass/mongodb-compass.SlackBuild
index 5c873ce37c..2ff02c9e75 100644
--- a/development/mongodb-compass/mongodb-compass.SlackBuild
+++ b/development/mongodb-compass/mongodb-compass.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mongodb-compass
-VERSION=${VERSION:-1.42.5}
+VERSION=${VERSION:-1.43.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/mongodb-compass/mongodb-compass.info b/development/mongodb-compass/mongodb-compass.info
index 90f25cda2f..094ba74a33 100644
--- a/development/mongodb-compass/mongodb-compass.info
+++ b/development/mongodb-compass/mongodb-compass.info
@@ -1,10 +1,10 @@
PRGNAM="mongodb-compass"
-VERSION="1.42.5"
+VERSION="1.43.0"
HOMEPAGE="https://www.mongodb.com/products/compass"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://downloads.mongodb.com/compass/mongodb-compass-1.42.5.x86_64.rpm"
-MD5SUM_x86_64="fa91dafb9ec7d7e2f4b03d4b017f7687"
+DOWNLOAD_x86_64="https://downloads.mongodb.com/compass/mongodb-compass-1.43.0.x86_64.rpm"
+MD5SUM_x86_64="cfc514ba727bc235e3251f1a7e5ad3f2"
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/development/mongodb-shell/mongodb-shell.SlackBuild b/development/mongodb-shell/mongodb-shell.SlackBuild
index aa40b02031..b84ddfcc0c 100644
--- a/development/mongodb-shell/mongodb-shell.SlackBuild
+++ b/development/mongodb-shell/mongodb-shell.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mongodb-shell
SRCNAM=mongosh
-VERSION=${VERSION:-2.2.1}
+VERSION=${VERSION:-2.2.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/mongodb-shell/mongodb-shell.info b/development/mongodb-shell/mongodb-shell.info
index c797fc405b..d038dc6f30 100644
--- a/development/mongodb-shell/mongodb-shell.info
+++ b/development/mongodb-shell/mongodb-shell.info
@@ -1,10 +1,10 @@
PRGNAM="mongodb-shell"
-VERSION="2.2.1"
+VERSION="2.2.5"
HOMEPAGE="https://www.mongodb.com/try/download/shell"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://downloads.mongodb.com/compass/mongosh-2.2.1-linux-x64.tgz"
-MD5SUM_x86_64="524de3b897441d652bb8e33015b2b09a"
+DOWNLOAD_x86_64="https://downloads.mongodb.com/compass/mongosh-2.2.5-linux-x64.tgz"
+MD5SUM_x86_64="c49777d1e51002203e556a57f7d439c4"
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/development/oneTBB/oneTBB.SlackBuild b/development/oneTBB/oneTBB.SlackBuild
index 6194ca9225..f74fb0ca6c 100644
--- a/development/oneTBB/oneTBB.SlackBuild
+++ b/development/oneTBB/oneTBB.SlackBuild
@@ -80,7 +80,7 @@ find -L . \
# enable Python
if [ "${PYTHON:-no}" == "yes" ];then
- OPTS="-DTBB4PY_BUILD"
+ OPTS="-DTBB4PY_BUILD=ON"
fi
mkdir -p build
diff --git a/development/openjdk7/openjdk7.info b/development/openjdk7/openjdk7.info
index 1b5049b35b..92fc606bda 100644
--- a/development/openjdk7/openjdk7.info
+++ b/development/openjdk7/openjdk7.info
@@ -1,7 +1,9 @@
PRGNAM="openjdk7"
VERSION="7u321"
HOMEPAGE="https://openjdk.java.net"
-DOWNLOAD="https://icedtea.classpath.org/download/source/icedtea-2.6.28.tar.xz \
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://icedtea.classpath.org/download/source/icedtea-2.6.28.tar.xz \
https://icedtea.classpath.org/download/drops/icedtea7/2.6.28/openjdk.tar.bz2 \
https://icedtea.classpath.org/download/drops/icedtea7/2.6.28/corba.tar.bz2 \
https://icedtea.classpath.org/download/drops/icedtea7/2.6.28/jaxp.tar.bz2 \
@@ -10,7 +12,7 @@ DOWNLOAD="https://icedtea.classpath.org/download/source/icedtea-2.6.28.tar.xz \
https://icedtea.classpath.org/download/drops/icedtea7/2.6.28/langtools.tar.bz2 \
https://icedtea.classpath.org/download/drops/icedtea7/2.6.28/hotspot.tar.bz2 \
https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.16-bin.tar.bz2"
-MD5SUM="11663b88a06f3461607c026510dd733a \
+MD5SUM_x86_64="11663b88a06f3461607c026510dd733a \
bcd48aa756a108cb437f07ed291436f9 \
5c16e53e461cf640842cec44f9a6264a \
9fe804632cfd4a47423a58a0171bc420 \
@@ -19,8 +21,6 @@ MD5SUM="11663b88a06f3461607c026510dd733a \
ebbc311a2aa8afdf1dd4e3d2b7f55aba \
c168159cc98db90a5d14b077e2c49ae9 \
2a1ef0230e673b6da876a8fc9744b9a1"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
REQUIRES="gcc5"
MAINTAINER="Lenard Spencer"
EMAIL="lenardrspencer@gmail.com"
diff --git a/development/openjdk8/README b/development/openjdk8/README
index 3139fca714..148f6beaa4 100644
--- a/development/openjdk8/README
+++ b/development/openjdk8/README
@@ -7,9 +7,6 @@ that you have already installed as they may cause conflicts with the
PATH, JAVA_HOME and MANPATH variables (this includes the 'openjdk7'
dependency package -- you may wish to remove it after you're done.)
-On 32-bit slackware you will need 'zulu-openjdk7' as dependency instead
-of 'openjdk7'. You can use the former on 64-bit slackware too.
-
If you already have 'openjdk8' on your system (and are compiling a newer
version, for example) you won't need any dependencies at all.
diff --git a/development/openjdk8/openjdk8.info b/development/openjdk8/openjdk8.info
index ee0977437d..2f8bfddcf8 100644
--- a/development/openjdk8/openjdk8.info
+++ b/development/openjdk8/openjdk8.info
@@ -1,12 +1,12 @@
PRGNAM="openjdk8"
VERSION="8u392"
HOMEPAGE="https://openjdk.java.net"
-DOWNLOAD="https://icedtea.classpath.org/download/source/icedtea-3.29.0.tar.xz \
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://icedtea.classpath.org/download/source/icedtea-3.29.0.tar.xz \
https://icedtea.classpath.org/download/drops/icedtea8/3.29.0/openjdk-git.tar.xz"
-MD5SUM="2f4cdbee15aa0832b9f5bec2ea27289d\
+MD5SUM_x86_64="2f4cdbee15aa0832b9f5bec2ea27289d\
3b34d935beaca314c974fea3089916d3"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
REQUIRES="openjdk7"
MAINTAINER="Strahil Yordanov"
EMAIL="strahilski@yahoo.com"
diff --git a/development/protoc-gen-go/protoc-gen-go.SlackBuild b/development/protoc-gen-go/protoc-gen-go.SlackBuild
index b8fa624af9..4a5521782a 100644
--- a/development/protoc-gen-go/protoc-gen-go.SlackBuild
+++ b/development/protoc-gen-go/protoc-gen-go.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=protoc-gen-go
-VERSION=${VERSION:-1.33.0}
+VERSION=${VERSION:-1.34.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/protoc-gen-go/protoc-gen-go.info b/development/protoc-gen-go/protoc-gen-go.info
index 2d99015626..845fb32568 100644
--- a/development/protoc-gen-go/protoc-gen-go.info
+++ b/development/protoc-gen-go/protoc-gen-go.info
@@ -1,8 +1,8 @@
PRGNAM="protoc-gen-go"
-VERSION="1.33.0"
+VERSION="1.34.0"
HOMEPAGE="https://github.com/protocolbuffers/protobuf-go"
-DOWNLOAD="https://github.com/protocolbuffers/protobuf-go/archive/v1.33.0/protobuf-go-1.33.0.tar.gz"
-MD5SUM="7de0737359c575dcaa2c58cbc27cf93e"
+DOWNLOAD="https://github.com/protocolbuffers/protobuf-go/archive/v1.34.0/protobuf-go-1.34.0.tar.gz"
+MD5SUM="f3334f859640a128e34c5dce90f48a69"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="google-go-lang"
diff --git a/development/pylint/pylint.SlackBuild b/development/pylint/pylint.SlackBuild
index 8469fde965..36003d6637 100644
--- a/development/pylint/pylint.SlackBuild
+++ b/development/pylint/pylint.SlackBuild
@@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pylint
VERSION=${VERSION:-1.7.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -71,6 +71,11 @@ find -L . \
python setup.py install --root=$PKG
+# Rename executables to avoid conflicts with Python 3 version of pylint.
+for executable in pylint epylint pyreverse symilar; do
+ mv $PKG/usr/bin/${executable}{,2}
+done
+
mkdir -p ${PKG}/usr/doc/$PRGNAM-$VERSION
rm -rf ${PKG}/usr/share
diff --git a/development/rust16/rust16.SlackBuild b/development/rust16/rust16.SlackBuild
index 1029773a03..9e73fcedb0 100644
--- a/development/rust16/rust16.SlackBuild
+++ b/development/rust16/rust16.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rust16
SRCNAM=rust
-VERSION=${VERSION:-1.76.0}
+VERSION=${VERSION:-1.77.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -103,7 +103,7 @@ rust-demangler-preview,\
rustfmt-preview
find $PKG/opt/$PRGNAM/lib -type f -name "*.so" -exec chmod +x {} \; 2> /dev/null || true
-# As of 1.76.0, stripping the libraries causes memory faults on Slackware64-15.0.
+# As of 1.77.2, stripping the libraries causes memory faults on Slackware64-15.0.
if [ $ARCH = "x86_64" ]; then
find $PKG -print0 | xargs -0 file | grep "executable" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
diff --git a/development/rust16/rust16.info b/development/rust16/rust16.info
index 588184a035..97d4823321 100644
--- a/development/rust16/rust16.info
+++ b/development/rust16/rust16.info
@@ -1,12 +1,12 @@
PRGNAM="rust16"
-VERSION="1.76.0"
+VERSION="1.77.2"
HOMEPAGE="https://rust-lang.org"
-DOWNLOAD="https://static.rust-lang.org/dist/2024-02-08/rust-1.76.0-i686-unknown-linux-gnu.tar.gz \
- https://static.rust-lang.org/dist/2024-02-08/rust-1.76.0-arm-unknown-linux-gnueabihf.tar.gz"
-MD5SUM="9d8fb8d9d18987d3c65e781fd916adfa \
- 3f27044b6d18155a3849ae3d3958faf5"
-DOWNLOAD_x86_64="https://static.rust-lang.org/dist/2024-02-08/rust-1.76.0-x86_64-unknown-linux-gnu.tar.gz"
-MD5SUM_x86_64="3d00cf0861b0eb28e7010663dc59b2ed"
+DOWNLOAD="https://static.rust-lang.org/dist/2024-04-09/rust-1.77.2-i686-unknown-linux-gnu.tar.gz \
+ https://static.rust-lang.org/dist/2024-04-09/rust-1.77.2-arm-unknown-linux-gnueabihf.tar.gz"
+MD5SUM="279c9bda8f7406629c5c7e1bb66cf365 \
+ 454dd1e89f14825dd6279d4f5a1a24a2"
+DOWNLOAD_x86_64="https://static.rust-lang.org/dist/2024-04-09/rust-1.77.2-x86_64-unknown-linux-gnu.tar.gz"
+MD5SUM_x86_64="5df06513e998f33b00ed5d8920dc0cfc"
REQUIRES=""
MAINTAINER="K. Eugene Carlson"
EMAIL="kvngncrlsn@gmail.com"
diff --git a/development/sqlcl/sqlcl.SlackBuild b/development/sqlcl/sqlcl.SlackBuild
index 7c8a23a1e3..66a71bde10 100644
--- a/development/sqlcl/sqlcl.SlackBuild
+++ b/development/sqlcl/sqlcl.SlackBuild
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# Slackware build script for Oracle SQL Developer Command Line
@@ -25,17 +25,21 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sqlcl
-VERSION=${VERSION:-23.3.0.270.1251}
+VERSION=${VERSION:-24.1.0.087.0929}
ARCH=${ARCH:-noarch}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
+CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
@@ -62,10 +66,10 @@ find -L . \
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-mv $PKG/opt/sqlcl/*.md $PKG/usr/doc/$PRGNAM-$VERSION
-mv $PKG/opt/sqlcl/*.txt $PKG/usr/doc/$PRGNAM-$VERSION
-mv $PKG/opt/sqlcl/bin/*.md $PKG/usr/doc/$PRGNAM-$VERSION
-mv $PKG/opt/sqlcl/bin/*.txt $PKG/usr/doc/$PRGNAM-$VERSION
+mv $PKG/opt/sqlcl/*.md $PKG/usr/doc/$PRGNAM-$VERSION || true
+mv $PKG/opt/sqlcl/*.txt $PKG/usr/doc/$PRGNAM-$VERSION || true
+mv $PKG/opt/sqlcl/bin/*.md $PKG/usr/doc/$PRGNAM-$VERSION || true
+mv $PKG/opt/sqlcl/bin/*.txt $PKG/usr/doc/$PRGNAM-$VERSION || true
rm $PKG/opt/sqlcl/$VERSION || true
diff --git a/development/sqlcl/sqlcl.info b/development/sqlcl/sqlcl.info
index 5609cf1a22..ff6292f64e 100644
--- a/development/sqlcl/sqlcl.info
+++ b/development/sqlcl/sqlcl.info
@@ -1,8 +1,8 @@
PRGNAM="sqlcl"
-VERSION="23.3.0.270.1251"
+VERSION="24.1.0.087.0929"
HOMEPAGE="https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/"
-DOWNLOAD="https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-23.3.0.270.1251.zip"
-MD5SUM="e96e38ffdf40cd8f8763052dfad3a127"
+DOWNLOAD="https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-24.1.0.087.0929.zip"
+MD5SUM="cc413282428dac100138918971113a26"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="zulu-openjdk11"
diff --git a/development/sqldeveloper/sqldeveloper.SlackBuild b/development/sqldeveloper/sqldeveloper.SlackBuild
index b175eec991..9eeab5d4cf 100644
--- a/development/sqldeveloper/sqldeveloper.SlackBuild
+++ b/development/sqldeveloper/sqldeveloper.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for Oracle SQL Developer
-# Copyright 2015-2021 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
+# Copyright 2015-2024 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sqldeveloper
-VERSION=${VERSION:-20.4.1.407.0006}
+VERSION=${VERSION:-23.1.1.345.2114}
ARCH=${ARCH:-noarch}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/development/sqldeveloper/sqldeveloper.info b/development/sqldeveloper/sqldeveloper.info
index 85c55ba6ec..0e0ae16104 100644
--- a/development/sqldeveloper/sqldeveloper.info
+++ b/development/sqldeveloper/sqldeveloper.info
@@ -1,10 +1,10 @@
PRGNAM="sqldeveloper"
-VERSION="20.4.1.407.0006"
+VERSION="23.1.1.345.2114"
HOMEPAGE="http://oracle.com/technetwork/developer-tools/sql-developer"
-DOWNLOAD="http://download.oracle.com/otn/java/sqldeveloper/sqldeveloper-20.4.1.407.0006-no-jre.zip"
-MD5SUM="041709f01de2c6d176f37132089b61b8"
+DOWNLOAD="https://download.oracle.com/otn/java/sqldeveloper/sqldeveloper-23.1.1.345.2114-no-jre.zip"
+MD5SUM="dc13da11f837a5f9c64187f52afb1ffe"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="zulu-openjdk8"
+REQUIRES="zulu-openjdk11"
MAINTAINER="Giuseppe Di Terlizzi"
EMAIL="giuseppe.diterlizzi@gmail.com"
diff --git a/development/textadept/textadept.SlackBuild b/development/textadept/textadept.SlackBuild
index b834636e3a..54486a6eed 100644
--- a/development/textadept/textadept.SlackBuild
+++ b/development/textadept/textadept.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=textadept
-VERSION=${VERSION:-12.3}
+VERSION=${VERSION:-12.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -92,8 +92,8 @@ ln -s $CWD/*lua-5.4.6.tar.gz build/_deps/lua-5.4.6.tar.gz
ln -s $CWD/*PDCurses-3.9.zip build/_deps/PDCurses-3.9.zip
ln -s $CWD/*1.0.zip build/_deps/1.0.zip
ln -s $CWD/*scinterm_5.0.zip build/_deps/scinterm_5.0.zip
-ln -s $CWD/*scintilla541.tgz build/_deps/scintilla541.tgz
-ln -s $CWD/*48a6fc9511ec67993e43ac7f5a33efc616b7ea32.zip build/_deps/48a6fc9511ec67993e43ac7f5a33efc616b7ea32.zip
+ln -s $CWD/*scintilla550.tgz build/_deps/scintilla550.tgz
+ln -s $CWD/*scintillua_6.3.zip build/_deps/scintillua_6.3.zip
ln -s $CWD/*3.4.0.zip build/_deps/v3.4.0.zip
ln -s $CWD/*libtermkey-0.22.tar.gz build/_deps/libtermkey-0.22.tar.gz
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release \
diff --git a/development/textadept/textadept.info b/development/textadept/textadept.info
index 904460a663..e1a3e26a0f 100644
--- a/development/textadept/textadept.info
+++ b/development/textadept/textadept.info
@@ -1,7 +1,7 @@
PRGNAM="textadept"
-VERSION="12.3"
+VERSION="12.4"
HOMEPAGE="https://foicica.com/textadept/"
-DOWNLOAD="https://github.com/orbitalquark/textadept/archive/textadept_12.3/textadept-textadept_12.3.tar.gz \
+DOWNLOAD="https://github.com/orbitalquark/textadept/archive/textadept_12.4/textadept-textadept_12.4.tar.gz \
https://github.com/ThomasDickey/cdk-snapshots/archive/refs/tags/t20200923.tar.gz \
https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz \
https://www.scintilla.org/lexilla510.tgz \
@@ -11,11 +11,11 @@ DOWNLOAD="https://github.com/orbitalquark/textadept/archive/textadept_12.3/texta
https://prdownloads.sourceforge.net/pdcurses/PDCurses-3.9.zip \
https://github.com/orbitalquark/lua-std-regex/archive/1.0.zip \
https://github.com/orbitalquark/scinterm/archive/scinterm_5.0.zip \
- https://www.scintilla.org/scintilla541.tgz \
- https://github.com/orbitalquark/scintillua/archive/48a6fc9511ec67993e43ac7f5a33efc616b7ea32.zip \
+ https://www.scintilla.org/scintilla550.tgz \
+ https://github.com/orbitalquark/scintillua/archive/scintillua_6.3.zip \
https://github.com/itay-grudev/SingleApplication/archive/refs/tags/v3.4.0.zip \
https://www.leonerd.org.uk/code/libtermkey/libtermkey-0.22.tar.gz"
-MD5SUM="27020397bbe264b44e7fe96ba8177b7b \
+MD5SUM="4b7ac0d08f5aa001aa8275de19adb27c \
0908cb133f473506a40807c0204a960a \
d718cd5a59438be666d1575855be72c3 \
210fab20f43c7d77af7249fd50c2cdc1 \
@@ -25,8 +25,8 @@ MD5SUM="27020397bbe264b44e7fe96ba8177b7b \
06d657aec0e655d5a335c5a5dc888ef3 \
c3314ca8c5be471888342efeee3a46d2 \
dd7c1f88dd42ae5f2113ba5fe0df2561 \
- d0d5b7944907b7eae125f132b17a80e8 \
- 88ebd6a8c79685c1d6339357faccc76e \
+ 972f2fa44a886b19c62c779f458260e7 \
+ 5ab1205f426f06f5fe7a67b692cf0bb1 \
93b78904c173f13b88ce1398f8d8e576 \
08bf514d59660391c3a21b3977a16c8c"
DOWNLOAD_x86_64=""
diff --git a/development/uftrace/uftrace.SlackBuild b/development/uftrace/uftrace.SlackBuild
index 56c2fa3604..37ffc58c34 100644
--- a/development/uftrace/uftrace.SlackBuild
+++ b/development/uftrace/uftrace.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=uftrace
-VERSION=${VERSION:-20240313_1919a15}
-GITHASH=${GITHASH:-1919a15cd71dbb9fed4138923a1954c79b638796}
+VERSION=${VERSION:-20240410_17df844}
+GITHASH=${GITHASH:-17df844f1488a9a90e218b0a2ba19d1936e4cfb2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/uftrace/uftrace.info b/development/uftrace/uftrace.info
index d8e5473764..068b5e0ee6 100644
--- a/development/uftrace/uftrace.info
+++ b/development/uftrace/uftrace.info
@@ -1,8 +1,8 @@
PRGNAM="uftrace"
-VERSION="20240313_1919a15"
+VERSION="20240410_17df844"
HOMEPAGE="https://github.com/namhyung/uftrace"
-DOWNLOAD="https://github.com/namhyung/uftrace/archive/1919a15/uftrace-1919a15cd71dbb9fed4138923a1954c79b638796.tar.gz"
-MD5SUM="60a04a7e30278ce181475ef2751463da"
+DOWNLOAD="https://github.com/namhyung/uftrace/archive/17df844/uftrace-17df844f1488a9a90e218b0a2ba19d1936e4cfb2.tar.gz"
+MD5SUM="bd49c4c907e5fe013384e265d3e843d7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="capstone"
diff --git a/development/valgrind/valgrind.SlackBuild b/development/valgrind/valgrind.SlackBuild
index 5d8405d1b5..f9a8572a3e 100644
--- a/development/valgrind/valgrind.SlackBuild
+++ b/development/valgrind/valgrind.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=valgrind
-VERSION=${VERSION:-3.22.0}
+VERSION=${VERSION:-3.23.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/valgrind/valgrind.info b/development/valgrind/valgrind.info
index c524c1e987..af19dc32a5 100644
--- a/development/valgrind/valgrind.info
+++ b/development/valgrind/valgrind.info
@@ -1,8 +1,8 @@
PRGNAM="valgrind"
-VERSION="3.22.0"
+VERSION="3.23.0"
HOMEPAGE="http://www.valgrind.org/"
-DOWNLOAD="http://sourceware.org/pub/valgrind/valgrind-3.22.0.tar.bz2"
-MD5SUM="38ea14f567efa09687a822b33b4d9d60"
+DOWNLOAD="http://sourceware.org/pub/valgrind/valgrind-3.23.0.tar.bz2"
+MD5SUM="c59775fcbfa82fcce796843d0aaa7538"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/development/vscode-bin/vscode-bin.SlackBuild b/development/vscode-bin/vscode-bin.SlackBuild
index c543e3cce1..7d8cb0f553 100644
--- a/development/vscode-bin/vscode-bin.SlackBuild
+++ b/development/vscode-bin/vscode-bin.SlackBuild
@@ -26,8 +26,8 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vscode-bin
SRCNAM=code-stable
-VERSION=${VERSION:-1.88.0}
-SRCVER=1712150767
+VERSION=${VERSION:-1.89.0}
+SRCVER=1714529314
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/vscode-bin/vscode-bin.info b/development/vscode-bin/vscode-bin.info
index 47c077e1e1..1179b669b2 100644
--- a/development/vscode-bin/vscode-bin.info
+++ b/development/vscode-bin/vscode-bin.info
@@ -1,10 +1,10 @@
PRGNAM="vscode-bin"
-VERSION="1.88.0"
+VERSION="1.89.0"
HOMEPAGE="https://code.visualstudio.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://vscode.download.prss.microsoft.com/dbazure/download/stable/5c3e652f63e798a5ac2f31ffd0d863669328dc4c/code-stable-x64-1712150767.tar.gz"
-MD5SUM_x86_64="0caa975f650fbb425af202bfcfa15113"
+DOWNLOAD_x86_64="https://vscode.download.prss.microsoft.com/dbazure/download/stable/b58957e67ee1e712cebf466b995adf4c5307b2bd/code-stable-x64-1714529314.tar.gz"
+MD5SUM_x86_64="dfdead89eb48f10c796cf9ee97cfe57f"
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/development/whisper.cpp/README b/development/whisper.cpp/README
new file mode 100644
index 0000000000..2c0e887b33
--- /dev/null
+++ b/development/whisper.cpp/README
@@ -0,0 +1,16 @@
+High-performance inference of OpenAI's Whisper automatic speech
+recognition (ASR) model:
+
+ -Plain C/C++ implementation without dependencies
+ -Apple Silicon first-class citizen - optimized via ARM NEON,
+ Accelerate framework, Metal and Core ML
+ -AVX intrinsics support for x86 architectures
+ -VSX intrinsics support for POWER architectures
+ -Mixed F16 / F32 precision
+ -4-bit and 5-bit integer quantization support
+ -Zero memory allocations at runtime
+ -Support for CPU-only inference
+ -Efficient GPU support for NVIDIA
+ -Partial OpenCL GPU support via CLBlast
+ -OpenVINO Support
+ -C-style API
diff --git a/development/whisper.cpp/slack-desc b/development/whisper.cpp/slack-desc
new file mode 100644
index 0000000000..cb32483015
--- /dev/null
+++ b/development/whisper.cpp/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+whisper.cpp: whisper.cpp (Port of OpenAI's Whisper model in C/C++)
+whisper.cpp:
+whisper.cpp: High-performance inference of OpenAI's Whisper automatic speech
+whisper.cpp: recognition (ASR) model.
+whisper.cpp:
+whisper.cpp:
+whisper.cpp:
+whisper.cpp:
+whisper.cpp:
+whisper.cpp: https://github.com/ggerganov/whisper.cpp
+whisper.cpp:
diff --git a/development/whisper.cpp/whisper.cpp.SlackBuild b/development/whisper.cpp/whisper.cpp.SlackBuild
new file mode 100644
index 0000000000..3e0abaa2e2
--- /dev/null
+++ b/development/whisper.cpp/whisper.cpp.SlackBuild
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+# Slackware build script for whisper.cpp
+
+# Copyright 2024 Johannes Schoepfer, Germany
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=whisper.cpp
+VERSION=${VERSION:-1.5.5}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
+cd $PRGNAM-$VERSION
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} + -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+
+source /usr/share/openvino/setupvars.sh
+mkdir -p build
+cd build
+pwd
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWHISPER_OPENVINO=ON \
+ -DWHISPER_OPENBLAS=ON \
+ -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
+
+[ -n "$LIBDIRSUFFIX" ] && mv $PKG/usr/lib $PKG/usr/lib$LIBDIRSUFFIX
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION
+
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/whisper.cpp/whisper.cpp.info b/development/whisper.cpp/whisper.cpp.info
new file mode 100644
index 0000000000..50c19d2593
--- /dev/null
+++ b/development/whisper.cpp/whisper.cpp.info
@@ -0,0 +1,10 @@
+PRGNAM="whisper.cpp"
+VERSION="1.5.5"
+HOMEPAGE="https://github.com/ggerganov/whisper.cpp"
+DOWNLOAD="https://github.com/ggerganov/whisper.cpp/archive/v1.5.5/whisper.cpp-1.5.5.tar.gz"
+MD5SUM="a4c1d8283381a789c679d0b274ec6c64"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="openvino OpenBLAS"
+MAINTAINER="Johannes Schoepfer"
+EMAIL="slackbuilds@schoepfer.info"
diff --git a/development/xmake/xmake.SlackBuild b/development/xmake/xmake.SlackBuild
index a93ed455e4..86c296c444 100644
--- a/development/xmake/xmake.SlackBuild
+++ b/development/xmake/xmake.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xmake
-VERSION=${VERSION:-2.8.9}
+VERSION=${VERSION:-2.9.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/development/xmake/xmake.info b/development/xmake/xmake.info
index 6bb183ae48..cc9d1b89dc 100644
--- a/development/xmake/xmake.info
+++ b/development/xmake/xmake.info
@@ -1,8 +1,8 @@
PRGNAM="xmake"
-VERSION="2.8.9"
+VERSION="2.9.1"
HOMEPAGE="https://xmake.io/"
-DOWNLOAD="https://github.com/xmake-io/xmake/releases/download/v2.8.9/xmake-v2.8.9.tar.gz"
-MD5SUM="2b38f0522c6a20efe605f024a7949799"
+DOWNLOAD="https://github.com/xmake-io/xmake/releases/download/v2.9.1/xmake-v2.9.1.tar.gz"
+MD5SUM="1878cfb6931dec869d8449b394bb6b2f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/Mindustry/Mindustry.SlackBuild b/games/Mindustry/Mindustry.SlackBuild
index 37e77316d5..cb88e69d20 100644
--- a/games/Mindustry/Mindustry.SlackBuild
+++ b/games/Mindustry/Mindustry.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Mindustry
VERSION=${VERSION:-146}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SERVER=${SERVER:-yes}
@@ -64,23 +64,12 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION 2>/dev/null
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-./gradlew --no-daemon dist -Pbuildversion=146 desktop:dist
mkdir -p $PKG/usr/share/{$PRGNAM,applications} \
$PKG/usr/games
-cp -a desktop/build/libs/$PRGNAM.jar \
+install -m 644 $CWD/$PRGNAM.jar \
$PKG/usr/share/$PRGNAM
-cp -a core/assets/icons/icon_64.png \
+install -m 644 $CWD/$PRGNAM.png \
$PKG/usr/share/$PRGNAM/$PRGNAM.png
# Create destop entry
@@ -105,8 +94,7 @@ EOF
chmod 755 $PKG/usr/games/$PRGNAM
if [ "$SERVER" = "yes" ]; then
- ./gradlew --no-daemon dist -Pbuildversion=146 server:dist
- cp -a server/build/libs/server-release.jar \
+ install -m 644 $CWD/server-release.jar \
$PKG/usr/share/$PRGNAM/$PRGNAM-server.jar
# Create destop entry
cat > $PKG/usr/share/applications/$PRGNAM-server.desktop <<EOF
@@ -131,7 +119,6 @@ EOF
fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a *.md LICENSE* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/games/Mindustry/Mindustry.info b/games/Mindustry/Mindustry.info
index f7349a2884..653ea3cbb9 100644
--- a/games/Mindustry/Mindustry.info
+++ b/games/Mindustry/Mindustry.info
@@ -3,8 +3,10 @@ VERSION="146"
HOMEPAGE="https://mindustrygame.github.io/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/Anuken/Mindustry/archive/v146/Mindustry-146.tar.gz"
-MD5SUM_x86_64="9da9f917ec9057d9e3b38134f3897478"
+DOWNLOAD_x86_64="https://github.com/Anuken/Mindustry/releases/download/v146/Mindustry.jar \
+ https://github.com/Anuken/Mindustry/releases/download/v146/server-release.jar"
+MD5SUM_x86_64="26193b0d3bad4bc84e044cce19a456d7 \
+ 7ddf0531d6abc46b4b8c978860179020"
REQUIRES="zulu-openjdk17"
MAINTAINER="Yth - Arnaud"
EMAIL="yth@ythogtha.org"
diff --git a/games/Mindustry/Mindustry.png b/games/Mindustry/Mindustry.png
new file mode 100644
index 0000000000..a67eae01f3
--- /dev/null
+++ b/games/Mindustry/Mindustry.png
Binary files differ
diff --git a/games/PrismLauncher/PrismLauncher.SlackBuild b/games/PrismLauncher/PrismLauncher.SlackBuild
index 09a660bd7f..4a4aabc117 100644
--- a/games/PrismLauncher/PrismLauncher.SlackBuild
+++ b/games/PrismLauncher/PrismLauncher.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=PrismLauncher
-VERSION=${VERSION:-8.2}
+VERSION=${VERSION:-8.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/PrismLauncher/PrismLauncher.info b/games/PrismLauncher/PrismLauncher.info
index d68f250a41..1505c79f56 100644
--- a/games/PrismLauncher/PrismLauncher.info
+++ b/games/PrismLauncher/PrismLauncher.info
@@ -1,8 +1,8 @@
PRGNAM="PrismLauncher"
-VERSION="8.2"
+VERSION="8.3"
HOMEPAGE="https://prismlauncher.org"
-DOWNLOAD="https://github.com/PrismLauncher/PrismLauncher/releases/download/8.2/PrismLauncher-8.2.tar.gz"
-MD5SUM="2455aec61b37898e21c3ea23498593c7"
+DOWNLOAD="https://github.com/PrismLauncher/PrismLauncher/releases/download/8.3/PrismLauncher-8.3.tar.gz"
+MD5SUM="6e3c44ebc64b2c2f6f9489185b021d57"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="OpenJDK17 scdoc"
diff --git a/games/PrismLauncher/README b/games/PrismLauncher/README
index 1c39a4cf14..9abac1f587 100644
--- a/games/PrismLauncher/README
+++ b/games/PrismLauncher/README
@@ -8,8 +8,13 @@ A Microsoft or Mojang account that owns Minecraft is required to
download and play the game through PrismLauncher.
zulu-openjdk17 can be used instead of OpenJDK17, if one wishes to do
-so. If you plan on using a version of Minecraft that is on version
-1.16.5 or older, you will also have to install either openjdk8 or
-zulu-openjdk8. If you have multiple versions of Java installed on your
+so. Other versions of Java may be needed to run different versions of
+Minecraft.
+
+1.20.5 or newer: zulu-openjdk21
+1.17 to 1.20.4: OpenJDK17 or zulu-openjdk17
+1.16 or older: openjdk8 or zulu-openjdk8
+
+If you have multiple versions of Java installed on your
system, make sure that your JAVA_HOME environment variable is pointed
to OpenJDK17 when building PrismLauncher.
diff --git a/games/PyLotRO/HTTPSConnectionFix.patch b/games/PyLotRO/HTTPSConnectionFix.patch
deleted file mode 100644
index 96f6889037..0000000000
--- a/games/PyLotRO/HTTPSConnectionFix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- PyLotROLauncher/PyLotROUtils.py 2012-11-28 20:06:06.000000000 -0600
-+++ PyLotROLauncher/PyLotROUtils.py 2013-06-04 21:08:53.032626141 -0500
-@@ -37,6 +37,7 @@
- # If Python 3.0 is in use use http otherwise httplib
- if sys.version_info[:2] < (3, 0):
- from httplib import HTTPConnection, HTTPSConnection
-+ import ssl, socket
- from urllib import quote
- else:
- from http.client import HTTPConnection, HTTPSConnection
-@@ -50,7 +51,10 @@
- else:
- url = urlIn[8:].split("/")[0]
- post = urlIn[8:].replace(url, "")
-- return HTTPSConnection(url), post
-+ conn = HTTPSConnection(url)
-+ sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
-+ conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
-+ return conn, post
-
- def GetText(nodelist):
- rc = ""
diff --git a/games/PyLotRO/PyLotRO.SlackBuild b/games/PyLotRO/PyLotRO.SlackBuild
deleted file mode 100644
index 7ed7653ec5..0000000000
--- a/games/PyLotRO/PyLotRO.SlackBuild
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-# Slackbuild for PyLotRO
-
-# Slackbuild is released under the Dog-on-Fire License:
-# If use of this script causes your dog to catch on fire,
-# you agree to send me five dollars. Or a picture
-# of the dog on fire.
-# Otherwise, you're on your own. I've tested the script
-# on my own computer, and it hasn't broken anything.
-# So if it does it on your computer, that falls in
-# the realm of "Not my problem."
-#
-# Of course, if you'll send a bug report to the above
-# email address, I may be able to see what you did
-# wrong and prevent it from happening in the future.
-# In which case, I may just send YOU five dollars.
-
-# Oh, and feel free to copy it and modify it as you
-# see fit. Or as I see fit. Or as I fit. Although
-# that is unlikely, as I am rather tall.
-
-
-cd $(dirname $0) ; CWD=$(pwd)
-
-PRGNAM=PyLotRO
-VERSION=${VERSION:-0.1.15}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-PKGTYPE=${PKGTYPE:-tgz}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
-fi
-
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-unzip $CWD/$PRGNAM-$VERSION.zip
-mv $PRGNAM $PRGNAM-$VERSION
-cd $PRGNAM-$VERSION
-
-patch -p0 < $CWD/HTTPSConnectionFix.patch
-
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-python setup.py build
-python setup.py install --root $PKG
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING ChangeLog README $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-cat $CWD/doinst.sh > $PKG/install/doinst.sh
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/games/PyLotRO/PyLotRO.info b/games/PyLotRO/PyLotRO.info
deleted file mode 100644
index bc5d8424d2..0000000000
--- a/games/PyLotRO/PyLotRO.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="PyLotRO"
-VERSION="0.1.15"
-HOMEPAGE="https://sites.google.com/site/leeslinuxblog/installing-lotro-in-wine"
-DOWNLOAD="https://sites.google.com/site/leeslinuxblog/PyLotRO-0.1.15.zip"
-MD5SUM="0020630b0be1ae8cee075e994c4feb8d"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="JK Wood"
-EMAIL="joshuakwood[at]gmail.com"
diff --git a/games/PyLotRO/README b/games/PyLotRO/README
deleted file mode 100644
index cbed665fa7..0000000000
--- a/games/PyLotRO/README
+++ /dev/null
@@ -1,11 +0,0 @@
-PyLotRO is a launcher for The Lord of the Rings Online and Dungeons
-and Dragons Online for Linux and Mac OSX. This application gives a
-graphical interface that allows both starting and patching/updating
-the game when installed in Wine.
-
-The homepage for PyLotRO disappeared some time ago, but no further
-development appears to be necessary.
-
-PyLotRO does not have any extra build dependencies beyond those
-present in a full install of Slackware, but wine is required to
-actually play either LOTRO or DDO.
diff --git a/games/PyLotRO/doinst.sh b/games/PyLotRO/doinst.sh
deleted file mode 100644
index 5fb28930db..0000000000
--- a/games/PyLotRO/doinst.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-if [ -x /usr/bin/update-desktop-database ]; then
- /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
-fi
diff --git a/games/ags/ags.SlackBuild b/games/ags/ags.SlackBuild
index ab08d344b7..1ab3530198 100644
--- a/games/ags/ags.SlackBuild
+++ b/games/ags/ags.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ags
-VERSION=${VERSION:-3.6.1.23}
+VERSION=${VERSION:-3.6.1.24}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/ags/ags.info b/games/ags/ags.info
index f094e76463..18fe5ee3cf 100644
--- a/games/ags/ags.info
+++ b/games/ags/ags.info
@@ -1,8 +1,8 @@
PRGNAM="ags"
-VERSION="3.6.1.23"
+VERSION="3.6.1.24"
HOMEPAGE="https://github.com/adventuregamestudio/ags"
-DOWNLOAD="https://github.com/adventuregamestudio/ags/archive/v3.6.1.23/ags-3.6.1.23.tar.gz"
-MD5SUM="a69283fea676a89fdc810519932857ca"
+DOWNLOAD="https://github.com/adventuregamestudio/ags/archive/v3.6.1.24/ags-3.6.1.24.tar.gz"
+MD5SUM="db1d9a58de8d0f17fb97ee9ff4734c08"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="SDL2_sound"
diff --git a/games/atari_8bit_utils/README b/games/atari_8bit_utils/README
new file mode 100644
index 0000000000..29e003d4f2
--- /dev/null
+++ b/games/atari_8bit_utils/README
@@ -0,0 +1,90 @@
+This is a collection of Atari 8-bit utilities that I've written,
+mostly back in the 90s, for managing files for an Atari on a
+Linux system. Whether you're using a real Atari or an emulator,
+these can be handy tools.
+
+ATRFS
+
+Want to mount an ATR image as a native file system in Linux?
+Now you can!
+
+This uses FUSE to create a user-space file system that allows
+reading and writing of Atari file systems in ATR image files.
+This requires no special root privileges.
+
+The framework is designed to be modular, making it relatively
+simple to add support for new Atari file systems.
+
+BASIC Autorun
+
+There are lots of AUTORUN.SYS files for running BASIC programs,
+but what if BASIC isn't available? Well, this one will enable
+BASIC first if it's disabled on an XL/XE system.
+If it's a 400/800/1200XL, it will display "BASIC REQUIRED"
+and hang. Also, the command text is stored in ATASCII,
+so it's easy to edit the binary.
+
+SIO2Linux
+
+Pavel Machek made an initial attempt at communicating with the
+Atari through an SIO2PC cable using Linux's serial port drivers.
+He came up with a simple floppy emulator he called "femul.c"
+
+I rewrote that to add a bunch of features:
+* No kernel modules.
+ Unlike the AtariSIO project, this is just a simple user-space
+ program that uses a serial port device.
+* Create new dynamically sized images
+ Each image starts as a 3-sector image file, but grows to
+ accomodate the highest-numbered sector written.
+* Mount your native file system as an Atari disk
+ It's read-only for now, and it doesn't support subdirectories,
+ but each file is mapped to a different starting sector, and
+ as that sector is read, it automatically maps in the rest of
+ the file.
+
+Binary load file analyzer
+
+This program will tell you all about your binary-load format Atari
+files, and even clean them up if there are specific problems.
+It runs under DOS and Unix.
+It includes the option to dump the 6502 assembly.
+
+BASIC analyzer
+
+This program will parse the structure of a BASIC program.
+The most common use would be to check if a file is a valid BASIC
+file, in which case, just redirect the output to /dev/null and
+it's BASIC if the program returns success. It will parse down
+the the line level. Parsing out the individual tokens could be
+done in the future.
+
+Disk image format conversions
+
+Want to convert between DCM and ATR? Want to turn an ATR disk image
+into individual files on your native file system (even creating
+subdirectories for MyDos images!)? Or convert a directory full of
+files back into a disk image? Well, check out these programs:
+
+* atr2unix
+* unix2atr
+* dcmtoatr
+
+Disk manager (Atari-side sector editor and much more)
+
+Back in the mid 80's, I wrote a sector editor in BASIC.
+Over several years, I incorporated additional features and
+tools, as well as re-wrote various routines in assembly language
+for speed. I should have released it back then, but now I've
+gone back through it and added a few extra features.
+I also re-worked all of the assembly language code.
+
+MyDOS Binary Load Menu
+
+There are plenty of menu programs that let you select from a
+list of programs and execute one, but this one goes a step further.
+It supports MyDOS subdirectories and is driven by the joystick,
+so it's ideal for a huge disk image of games.
+I wrote this in 1994 in BASIC and compiled it with ABC.
+
+-- adapted from original Preston Crow file
diff --git a/games/atari_8bit_utils/atari_8bit_utils.SlackBuild b/games/atari_8bit_utils/atari_8bit_utils.SlackBuild
new file mode 100644
index 0000000000..e1bbf5aede
--- /dev/null
+++ b/games/atari_8bit_utils/atari_8bit_utils.SlackBuild
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+# Slackware build script for atari_8bit_utils
+
+# Copyright 2024 Antonio Leal, Porto Salvo, Oeiras, Portugal
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=atari_8bit_utils
+VERSION=${VERSION:-20240328_58d9431}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+TARBALL=${TARBALL:-58d9431dcb958918d5b68456f969d5c12bd75d40}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
+fi
+
+set -e
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$TARBALL
+tar xvfz $CWD/$PRGNAM-$TARBALL.tar.gz
+cd $PRGNAM-$TARBALL
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Build proggies
+cd atrfs
+sed -i -e "s:CFLAGS = -g -O0 -W -Wall # -g and -O0 for easier gdb debugging:CFLAGS = $SLKCFLAGS:" Makefile
+make
+cd ../disasm
+sed -i -e "s:CFLAGS = -g -O0 -W -Wall # -g and -O0 for easier gdb debugging:CFLAGS = $SLKCFLAGS:" Makefile
+make
+cd ..
+for f in `ls -1 *.c`
+ do gcc $SLKCFLAGS $f -o `basename $f .c`
+done
+
+# Setup package files
+mkdir -p $PKG/usr/bin
+install -D -m0755 atrfs/atrfs $PKG/usr/bin/atrfs
+install -D -m0755 disasm/disasm $PKG/usr/bin/disasm
+for f in `ls -1 *.c`
+ do install -D -m0755 `basename $f .c` $PKG/usr/bin/`basename $f .c`
+done
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+cp README $PKG/usr/doc/$PRGNAM-$VERSION
+cp LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/atrfs
+cp atrfs/README.TXT $PKG/usr/doc/$PRGNAM-$VERSION/atrfs
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/disasm
+cp disasm/README $PKG/usr/doc/$PRGNAM-$VERSION/disasm
+
+mkdir -p $PKG/usr/share/$PRGNAM
+cp -avxu basic_autorun $PKG/usr/share/$PRGNAM/
+cp -avxu mydos_bmenu $PKG/usr/share/$PRGNAM/
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/games/atari_8bit_utils/atari_8bit_utils.info b/games/atari_8bit_utils/atari_8bit_utils.info
new file mode 100644
index 0000000000..0ed4b7efbe
--- /dev/null
+++ b/games/atari_8bit_utils/atari_8bit_utils.info
@@ -0,0 +1,10 @@
+PRGNAM="atari_8bit_utils"
+VERSION="20240328_58d9431"
+HOMEPAGE="https://github.com/pcrow/atari_8bit_utils"
+DOWNLOAD="https://github.com/pcrow/atari_8bit_utils/archive/58d9431/atari_8bit_utils-58d9431dcb958918d5b68456f969d5c12bd75d40.tar.gz"
+MD5SUM="b1dfc350e9e5d8dbf43a79a1c3a75947"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Antonio Leal"
+EMAIL="antonioleal@yahoo.com"
diff --git a/games/atari_8bit_utils/slack-desc b/games/atari_8bit_utils/slack-desc
new file mode 100644
index 0000000000..4da5ac2582
--- /dev/null
+++ b/games/atari_8bit_utils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+atari_8bit_utils: atari_8bit_utils (utilities for atari 8bit machines/emulators)
+atari_8bit_utils:
+atari_8bit_utils: atari_8bit_utils contains a set of utilities by Preston Crow for
+atari_8bit_utils: atari 8 bit machines or emulators such atari 400/800, XL, XE.
+atari_8bit_utils:
+atari_8bit_utils: among others: mount atr disks, or convert atr formats..
+atari_8bit_utils:
+atari_8bit_utils:
+atari_8bit_utils: Homepage at https://github.com/pcrow/atari_8bit_utils
+atari_8bit_utils:
+atari_8bit_utils:
diff --git a/games/boosteroid/boosteroid.info b/games/boosteroid/boosteroid.info
index 91385f61f4..94ee0450ca 100644
--- a/games/boosteroid/boosteroid.info
+++ b/games/boosteroid/boosteroid.info
@@ -4,7 +4,7 @@ HOMEPAGE="https://www.boosteroid.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="https://boosteroid.com/linux/installer/boosteroid-install-x64.deb"
-MD5SUM_x86_64="8ea633524913a88a7dd078a9d82e189d"
+MD5SUM_x86_64="936f6c2bd325ea8008fd3f4ac84251a0"
REQUIRES=""
MAINTAINER="Jake Day"
EMAIL="jake@ninebysix.com"
diff --git a/games/ddnet/ddnet.SlackBuild b/games/ddnet/ddnet.SlackBuild
index 9c0505f297..4f29fbef88 100644
--- a/games/ddnet/ddnet.SlackBuild
+++ b/games/ddnet/ddnet.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ddnet
SRCNAM=DDNet
-VERSION=${VERSION:-18.1}
+VERSION=${VERSION:-18.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -73,6 +73,9 @@ if [ -z "$ARCH" ]; then
esac
fi
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$PKGVER-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/games/ddnet/ddnet.info b/games/ddnet/ddnet.info
index 718eaa839f..069312d0bb 100644
--- a/games/ddnet/ddnet.info
+++ b/games/ddnet/ddnet.info
@@ -1,7 +1,7 @@
PRGNAM="ddnet"
-VERSION="18.1"
+VERSION="18.2"
HOMEPAGE="https://ddnet.org/"
-DOWNLOAD="https://ddnet.org/downloads/DDNet-18.1.tar.xz \
+DOWNLOAD="https://ddnet.org/downloads/DDNet-18.2.tar.xz \
https://static.crates.io/crates/cc/cc-1.0.73.crate \
https://static.crates.io/crates/cxx/cxx-1.0.71.crate \
https://static.crates.io/crates/cxxbridge-flags/cxxbridge-flags-1.0.71.crate \
@@ -11,7 +11,7 @@ DOWNLOAD="https://ddnet.org/downloads/DDNet-18.1.tar.xz \
https://static.crates.io/crates/quote/quote-1.0.20.crate \
https://static.crates.io/crates/syn/syn-1.0.98.crate \
https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.1.crate"
-MD5SUM="248c4beb3f27b5f75c209e81cbbd563b \
+MD5SUM="4da22b3f95ba0c01b0b85e36dd03d604 \
8e3a4d0980acef2c4e74485a45de29a9 \
fda5c633e604f175e07829961763f18f \
a8b59a9c52b44b92ec73248f3c85c608 \
diff --git a/games/dwarffortress/dwarffortress.SlackBuild b/games/dwarffortress/dwarffortress.SlackBuild
index ff95029f94..69cc222af2 100644
--- a/games/dwarffortress/dwarffortress.SlackBuild
+++ b/games/dwarffortress/dwarffortress.SlackBuild
@@ -21,12 +21,10 @@
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
cd $(dirname $0) ; CWD=$(pwd)
-
PRGNAM=dwarffortress
-VERSION=${VERSION:-0.50.11}
-SRCNAM=df_50_11_linux
+VERSION=${VERSION:-0.50.13}
+SRCNAM=df_50_13_linux
SRCDIR=df_linux
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -45,14 +43,6 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-if [ "$ARCH" = "i586" ]; then
- BITFLAG="32"
-elif [ "$ARCH" = "x86_64" ]; then
- BITFLAG=""
-else
- BITFLAG=""
-fi
-
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
@@ -65,7 +55,7 @@ cd $PKG
mkdir opt opt/$PRGNAM
cd opt/$PRGNAM
-tar pxvf $CWD/$SRCNAM$BITFLAG.tar.bz2
+tar pxvf $CWD/$SRCNAM.tar.bz2
chown -R root:root .
chmod -R 755 .
diff --git a/games/dwarffortress/dwarffortress.info b/games/dwarffortress/dwarffortress.info
index 0f70dfdd1c..16bc9356e3 100644
--- a/games/dwarffortress/dwarffortress.info
+++ b/games/dwarffortress/dwarffortress.info
@@ -1,8 +1,8 @@
PRGNAM="dwarffortress"
-VERSION="0.50.11"
+VERSION="0.50.13"
HOMEPAGE="https://bay12games.com/dwarves/"
-DOWNLOAD="https://bay12games.com/dwarves/df_50_11_linux.tar.bz2"
-MD5SUM="2974f9f6c563547b4fd40a65f9919593"
+DOWNLOAD="https://bay12games.com/dwarves/df_50_13_linux.tar.bz2"
+MD5SUM="1f8f3eb59d41ed86dba8dc08cb38f4d1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/dwarffortress/slack-desc b/games/dwarffortress/slack-desc
index 8f8e6d21fb..e0dace8895 100644
--- a/games/dwarffortress/slack-desc
+++ b/games/dwarffortress/slack-desc
@@ -8,7 +8,7 @@
|-----handy-ruler------------------------------------------------------|
dwarffortress: dwarffortress (A single-player fantasy simulator adventure game)
dwarffortress:
-dwarffortress: Dwarf Fortress is a complex sandbox game created by Tarn Adams of
+dwarffortress: Dwarf Fortress is a complex sandbox game created by Tarn Adams of
dwarffortress: Bay 12 Games. The graphics are ASCII with various tilesets available.
dwarffortress: In Fortress Mode, the player helps their dwarves survive by declaring
dwarffortress: areas to collect food, create workshops, create defenses, etc.
diff --git a/games/freeciv/freeciv.SlackBuild b/games/freeciv/freeciv.SlackBuild
index a5bf1ae724..30d0c9da5e 100644
--- a/games/freeciv/freeciv.SlackBuild
+++ b/games/freeciv/freeciv.SlackBuild
@@ -30,8 +30,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=freeciv
-VERSION=${VERSION:-3.1.0}
-SRCVERSION=${SRCVERSION:-3.1.0}
+VERSION=${VERSION:-3.1.1}
+SRCVERSION=${SRCVERSION:-3.1.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/freeciv/freeciv.info b/games/freeciv/freeciv.info
index b57bd89161..18fd0b06ba 100644
--- a/games/freeciv/freeciv.info
+++ b/games/freeciv/freeciv.info
@@ -1,8 +1,8 @@
PRGNAM="freeciv"
-VERSION="3.1.0"
+VERSION="3.1.1"
HOMEPAGE="http://www.freeciv.org"
-DOWNLOAD="http://files.freeciv.org/stable/freeciv-3.1.0.tar.xz"
-MD5SUM="c6d2a68f74f2fdecf7a793ee926129a4"
+DOWNLOAD="http://files.freeciv.org/stable/freeciv-3.1.1.tar.xz"
+MD5SUM="84cc920acf453fafad95ea16fa46a924"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/gzdoom/README b/games/gzdoom/README
index c9017e9818..30176aa78d 100644
--- a/games/gzdoom/README
+++ b/games/gzdoom/README
@@ -10,9 +10,3 @@ your system, try installing gzdoom-legacy instead. Note that gzdoom
and gzdoom-legacy conflict: only install one or the other.
See README_SBo.txt for optional runtime dependencies.
-
-Note to 32-bit users: gzdoom requires the SSE2 extension. If you
-get "illegal instruction" errors when trying to run gzdoom, your
-CPU doesn't have SSE2, and you should use gzdoom-legacy instead.
-At this point (2022), there aren't that many non-SSE2 x86 CPUs still
-in service, so probably this won't be a problem for you.
diff --git a/games/gzdoom/gzdoom.info b/games/gzdoom/gzdoom.info
index 96cbbf7bc5..83f1c39a2e 100644
--- a/games/gzdoom/gzdoom.info
+++ b/games/gzdoom/gzdoom.info
@@ -1,10 +1,10 @@
PRGNAM="gzdoom"
VERSION="4.10.0"
HOMEPAGE="http://gzdoom.drdteam.org/"
-DOWNLOAD="https://github.com/coelckers/gzdoom/archive/g4.10.0/gzdoom-g4.10.0.tar.gz"
-MD5SUM="54d8348650b8693fb545b20538e019ad"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/coelckers/gzdoom/archive/g4.10.0/gzdoom-g4.10.0.tar.gz"
+MD5SUM_x86_64="54d8348650b8693fb545b20538e019ad"
REQUIRES="zmusic"
MAINTAINER="B. Watson"
EMAIL="urchlay@slackware.uk"
diff --git a/games/lbreakouthd/lbreakouthd.SlackBuild b/games/lbreakouthd/lbreakouthd.SlackBuild
index 99f74b7cf2..00fb105958 100644
--- a/games/lbreakouthd/lbreakouthd.SlackBuild
+++ b/games/lbreakouthd/lbreakouthd.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lbreakouthd
-VERSION=${VERSION:-1.1.7}
+VERSION=${VERSION:-1.1.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/lbreakouthd/lbreakouthd.info b/games/lbreakouthd/lbreakouthd.info
index b075b57837..447090c0cb 100644
--- a/games/lbreakouthd/lbreakouthd.info
+++ b/games/lbreakouthd/lbreakouthd.info
@@ -1,8 +1,8 @@
PRGNAM="lbreakouthd"
-VERSION="1.1.7"
+VERSION="1.1.8"
HOMEPAGE="https://lgames.sourceforge.io/LBreakoutHD/"
-DOWNLOAD="https://sourceforge.net/projects/lgames/files/lbreakouthd/lbreakouthd-1.1.7.tar.gz"
-MD5SUM="2525f94abb7383a4067b84f1ca44b92b"
+DOWNLOAD="https://sourceforge.net/projects/lgames/files/lbreakouthd/lbreakouthd-1.1.8.tar.gz"
+MD5SUM="d0af6085ca948059cb46145285c57b18"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/melonds/melonds.info b/games/melonds/melonds.info
index 555f3cb883..70c8d2495a 100644
--- a/games/melonds/melonds.info
+++ b/games/melonds/melonds.info
@@ -1,10 +1,10 @@
PRGNAM="melonds"
VERSION="0.9.5"
HOMEPAGE="https://melonds.kuribo64.net"
-DOWNLOAD="https://github.com/melonDS-emu/melonDS/archive/0.9.5/melonDS-0.9.5.tar.gz"
-MD5SUM="23ee3637af072854371675b9e61ab96d"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/melonDS-emu/melonDS/archive/0.9.5/melonDS-0.9.5.tar.gz"
+MD5SUM_x86_64="23ee3637af072854371675b9e61ab96d"
REQUIRES="libslirp"
MAINTAINER="Steven Voges"
EMAIL="svoges.sbo@gmail.com"
diff --git a/games/openttd/openttd.SlackBuild b/games/openttd/openttd.SlackBuild
index f7e8f0912e..dcf0ae6f50 100644
--- a/games/openttd/openttd.SlackBuild
+++ b/games/openttd/openttd.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=openttd
-VERSION=${VERSION:-13.4}
+VERSION=${VERSION:-14.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/openttd/openttd.info b/games/openttd/openttd.info
index 7ba1d9ef92..88fd22d9c2 100644
--- a/games/openttd/openttd.info
+++ b/games/openttd/openttd.info
@@ -1,11 +1,11 @@
PRGNAM="openttd"
-VERSION="13.4"
+VERSION="14.0"
HOMEPAGE="http://www.openttd.org"
-DOWNLOAD="https://cdn.openttd.org/openttd-releases/13.4/openttd-13.4-source.tar.xz \
+DOWNLOAD="https://cdn.openttd.org/openttd-releases/14.0/openttd-14.0-source.tar.xz \
https://cdn.openttd.org/opengfx-releases/7.1/opengfx-7.1-all.zip \
https://cdn.openttd.org/openmsx-releases/0.4.2/openmsx-0.4.2-all.zip \
https://cdn.openttd.org/opensfx-releases/1.0.3/opensfx-1.0.3-all.zip"
-MD5SUM="ed42437a6f33e83b3e27f9ebd988efc4 \
+MD5SUM="f8244406ab5a1efcdf4fe8d173516a5a \
f3cd9de89db7caf37a2e5c4c70fb1304 \
7f853e6b6e673268165a09265ed284b0 \
4cd2a4f8b2e160f8754736beb4d31ccd"
diff --git a/games/planetblupi/planetblupi.SlackBuild b/games/planetblupi/planetblupi.SlackBuild
index 50fba689fc..3dcafa93b7 100644
--- a/games/planetblupi/planetblupi.SlackBuild
+++ b/games/planetblupi/planetblupi.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=planetblupi
-VERSION=${VERSION:-1.15.0}
+VERSION=${VERSION:-1.15.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/planetblupi/planetblupi.info b/games/planetblupi/planetblupi.info
index 38db5bb805..3b8b04b920 100644
--- a/games/planetblupi/planetblupi.info
+++ b/games/planetblupi/planetblupi.info
@@ -1,9 +1,9 @@
PRGNAM="planetblupi"
-VERSION="1.15.0"
+VERSION="1.15.1"
HOMEPAGE="http://www.blupi.org/"
-DOWNLOAD="https://github.com/blupi-games/planetblupi/archive/v1.15.0/planetblupi-1.15.0.tar.gz \
+DOWNLOAD="https://github.com/blupi-games/planetblupi/archive/v1.15.1/planetblupi-1.15.1.tar.gz \
https://github.com/libsdl-org/SDL_ttf/archive/release-2.20.2/SDL_ttf-release-2.20.2.tar.gz"
-MD5SUM="25820360b1f778ff8232c63a6cc4e337 \
+MD5SUM="030fa1514b0e2fe2088aae9b9023e4f7 \
b584f806d65e9c5ced69b99b12828bee"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/games/quakespasm/quakespasm.SlackBuild b/games/quakespasm/quakespasm.SlackBuild
index 8139ffc37a..0e4695cd94 100644
--- a/games/quakespasm/quakespasm.SlackBuild
+++ b/games/quakespasm/quakespasm.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for quakespasm
-# Copyright 2018-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2018-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=quakespasm
-VERSION=${VERSION:-0.95.1}
+VERSION=${VERSION:-0.96.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +38,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/games/quakespasm/quakespasm.info b/games/quakespasm/quakespasm.info
index 69473df54d..3b6dc64613 100644
--- a/games/quakespasm/quakespasm.info
+++ b/games/quakespasm/quakespasm.info
@@ -1,8 +1,8 @@
PRGNAM="quakespasm"
-VERSION="0.95.1"
+VERSION="0.96.1"
HOMEPAGE="https://quakespasm.sourceforge.net"
-DOWNLOAD="https://downloads.sourceforge.net/quakespasm/quakespasm-0.95.1.tar.gz"
-MD5SUM="5445eaab666b1a8c229c4900dc9f8542"
+DOWNLOAD="https://downloads.sourceforge.net/quakespasm/quakespasm-0.96.1.tar.gz"
+MD5SUM="37ea60a01b5cc852ab7635df89496301"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/scid_vs_pc/scid_vs_pc.info b/games/scid_vs_pc/scid_vs_pc.info
index 5209c294c9..2639301ee6 100644
--- a/games/scid_vs_pc/scid_vs_pc.info
+++ b/games/scid_vs_pc/scid_vs_pc.info
@@ -2,7 +2,7 @@ PRGNAM="scid_vs_pc"
VERSION="4.24"
HOMEPAGE="https://scidvspc.sourceforge.net/"
DOWNLOAD="https://downloads.sourceforge.net/project/scidvspc/source/scid_vs_pc-4.24.tgz"
-MD5SUM="3b7d710ac5ccd6ac3b72145328099349"
+MD5SUM="8fbb32863f06beb1fe1e16edb4413089"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/wesnoth/wesnoth.SlackBuild b/games/wesnoth/wesnoth.SlackBuild
index 3af210423e..710a0892b0 100644
--- a/games/wesnoth/wesnoth.SlackBuild
+++ b/games/wesnoth/wesnoth.SlackBuild
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=wesnoth
-VERSION=${VERSION:-1.16.11}
+VERSION=${VERSION:-1.18.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/games/wesnoth/wesnoth.info b/games/wesnoth/wesnoth.info
index c64864bc2c..c25de4dc25 100644
--- a/games/wesnoth/wesnoth.info
+++ b/games/wesnoth/wesnoth.info
@@ -1,8 +1,8 @@
PRGNAM="wesnoth"
-VERSION="1.16.11"
+VERSION="1.18.0"
HOMEPAGE="http://www.wesnoth.org"
-DOWNLOAD="http://downloads.sourceforge.net/wesnoth/wesnoth-1.16.11.tar.bz2"
-MD5SUM="926fce1f3b89e9cf409437a4b78802e6"
+DOWNLOAD="http://downloads.sourceforge.net/wesnoth/wesnoth-1.18.0.tar.bz2"
+MD5SUM="b475028bebe0168f46d5a452c4bc1c05"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/games/xemu/xemu.info b/games/xemu/xemu.info
index 82ea280ea5..a2cbec71ae 100644
--- a/games/xemu/xemu.info
+++ b/games/xemu/xemu.info
@@ -1,7 +1,9 @@
PRGNAM="xemu"
VERSION="0.7.86"
HOMEPAGE="https://xemu.app"
-DOWNLOAD="https://github.com/mborgerson/xemu/archive/v0.7.86/xemu-0.7.86.tar.gz \
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/mborgerson/xemu/archive/v0.7.86/xemu-0.7.86.tar.gz \
https://gitlab.com/qemu-project/berkeley-softfloat-3/-/archive/b64af41c3276f97f0e181920400ee056b9c88037/berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.gz \
https://gitlab.com/qemu-project/berkeley-testfloat-3/-/archive/5a59dcec19327396a011a17fd924aed4fec416b3/berkeley-testfloat-3-5a59dcec19327396a011a17fd924aed4fec416b3.tar.gz \
https://github.com/mborgerson/genconfig/archive/44bab849ce87fceafd74703bfcf2b61a1a1b738f/genconfig-44bab849ce87fceafd74703bfcf2b61a1a1b738f.tar.gz \
@@ -9,7 +11,7 @@ DOWNLOAD="https://github.com/mborgerson/xemu/archive/v0.7.86/xemu-0.7.86.tar.gz
https://github.com/epezent/implot/archive/b47c8bacdbc78bc521691f70666f13924bb522ab/implot-b47c8bacdbc78bc521691f70666f13924bb522ab.tar.gz \
https://gitlab.com/qemu-project/keycodemapdb/-/archive/d21009b1c9f94b740ea66be8e48a1d8ad8124023/keycodemapdb-d21009b1c9f94b740ea66be8e48a1d8ad8124023.tar.gz \
https://github.com/abaire/nv2a_vsh_cpu/archive/d5a7308809a80e1b01b5c016127d4f1b91c8673b/nv2a_vsh_cpu-d5a7308809a80e1b01b5c016127d4f1b91c8673b.tar.gz"
-MD5SUM="f5d4863774ec134b7a7eac371e5b45b6 \
+MD5SUM_x86_64="f5d4863774ec134b7a7eac371e5b45b6 \
7fa778ee82a15c09162b66564455c01e \
5627edcf7c64f95f50925784c806e4d9 \
f55989cc5fd27ee7cbf8addcec370275 \
@@ -17,8 +19,6 @@ MD5SUM="f5d4863774ec134b7a7eac371e5b45b6 \
bc067af8983f58ff4fb492a5fc79dae6 \
109a1dc5d8c7ed5745a78e78a5cfd7f2 \
cfb9f8a87e1b685ca10fe4e0992c76fe"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
REQUIRES="libslirp tomlplusplus"
MAINTAINER="Steven Voges"
EMAIL="svoges.sbo@gmail.com"
diff --git a/games/zsnes/zsnes.info b/games/zsnes/zsnes.info
index 4677393f02..facf966b21 100644
--- a/games/zsnes/zsnes.info
+++ b/games/zsnes/zsnes.info
@@ -3,7 +3,7 @@ VERSION="2.0.12"
HOMEPAGE="https://github.com/xyproto/zsnes"
DOWNLOAD="https://github.com/xyproto/zsnes/archive/2.0.12/zsnes-2.0.12.tar.gz"
MD5SUM="6c28a252c887f1d697c1baa960a1db98"
-DOWNLOAD_x86_64=""
+DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
diff --git a/gis/eccodes/eccodes.SlackBuild b/gis/eccodes/eccodes.SlackBuild
index aac4868d11..a1b6a4602c 100644
--- a/gis/eccodes/eccodes.SlackBuild
+++ b/gis/eccodes/eccodes.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=eccodes
-VERSION=${VERSION:-2.34.1}
+VERSION=${VERSION:-2.35.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/gis/eccodes/eccodes.info b/gis/eccodes/eccodes.info
index 2beec3783e..b3ad7fd648 100644
--- a/gis/eccodes/eccodes.info
+++ b/gis/eccodes/eccodes.info
@@ -1,10 +1,10 @@
PRGNAM="eccodes"
-VERSION="2.34.1"
+VERSION="2.35.0"
HOMEPAGE="https://confluence.ecmwf.int/display/ECC"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://confluence.ecmwf.int/download/attachments/45757960/eccodes-2.34.1-Source.tar.gz"
-MD5SUM_x86_64="e87736db962053828e09d81610c2de93"
+DOWNLOAD_x86_64="https://confluence.ecmwf.int/download/attachments/45757960/eccodes-2.35.0-Source.tar.gz"
+MD5SUM_x86_64="39babf438f2e36641e78322ece62137a"
REQUIRES="libaec"
MAINTAINER="ArTourter"
EMAIL="artourter@gmail.com"
diff --git a/gis/gpxsee/doinst.sh b/gis/gpxsee/doinst.sh
index daaf27f812..43c30eaca1 100644
--- a/gis/gpxsee/doinst.sh
+++ b/gis/gpxsee/doinst.sh
@@ -5,3 +5,10 @@ fi
if [ -x /usr/bin/update-mime-database ]; then
/usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
+
diff --git a/gis/gpxsee/gpxsee.SlackBuild b/gis/gpxsee/gpxsee.SlackBuild
index be7b61c536..435c3c1ca6 100644
--- a/gis/gpxsee/gpxsee.SlackBuild
+++ b/gis/gpxsee/gpxsee.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gpxsee
-VERSION=${VERSION:-13.18}
+VERSION=${VERSION:-13.19}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/gis/gpxsee/gpxsee.info b/gis/gpxsee/gpxsee.info
index 2fca84e828..d7051c0ef0 100644
--- a/gis/gpxsee/gpxsee.info
+++ b/gis/gpxsee/gpxsee.info
@@ -1,8 +1,8 @@
PRGNAM="gpxsee"
-VERSION="13.18"
+VERSION="13.19"
HOMEPAGE="https://www.gpxsee.org/"
-DOWNLOAD="https://github.com/tumic0/GPXSee/archive/13.18/GPXSee-13.18.tar.gz"
-MD5SUM="edd35b435e1d1c1b6f89688927d56248"
+DOWNLOAD="https://github.com/tumic0/GPXSee/archive/13.19/GPXSee-13.19.tar.gz"
+MD5SUM="f7d73349bac597b58ca89a282b7e9e94"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/gis/osgEarth/osgEarth.info b/gis/osgEarth/osgEarth.info
index e46300338f..a5577fa633 100644
--- a/gis/osgEarth/osgEarth.info
+++ b/gis/osgEarth/osgEarth.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://sourceforge.net/projects/slackbuildsdirectlinks/files/osgEarth
MD5SUM="58de6c17ac7643a3ba30d978dc6f0e1b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="fmt gdal OpenSceneGraph protobuf3 rocksdb spdlog"
+REQUIRES="gdal OpenSceneGraph protobuf3 rocksdb spdlog"
MAINTAINER="Christoph Willing"
EMAIL="chris.willing@linux.com"
diff --git a/gis/saga-gis/README b/gis/saga-gis/README
index 25b4b6a1ad..f5bf96ff4e 100644
--- a/gis/saga-gis/README
+++ b/gis/saga-gis/README
@@ -21,22 +21,9 @@ WARNINGS:
install the package wxWidgets (also available in Slackbuilds.org).
If you have both wxGTK3 and wxWidgets installed in your system,
make sure that wxWidgets is installed after wxGTK.
-2) SAGA requires an ODBC driver in the system. It works both with
- iODBC (installed with the libiodbc package (included in Slackware
- 15.0) and unixODBC (installed from the SBo's slackbuild). The build
- first searches for unixODBC then for iODBC. It fails if any driver
- is found. These drivers are in conflict so, if you have installed
- and then removed unixODBC, please make sure to reinstall libiodbc.
- You should also consider that a package prebuilt in a Slackware
- with unixODBC should not be installed in a system with iODBC (and
- vice versa).
-3) unixODBC is a required dependency in 32 bit systems: the source
- code of SAGA conflicts with the code of a libiodbc header
- (/usr/include/iodbcunix.h) and the build fails. This issue can be
- overcome by installing unixODBC from the SBo's slackbuild.
-4) For current users: the build of Python bindings fails since the
- upgrade of swig package to version 4.2 in current (January 2024).
- Therefore Saga with support to Python will be disabled in current
- if the version of swig installed is earlier than 4.0.2. If you
- require the support to Python you must downgrade swig to the version
- released in Slackware 15.0.
+2) SAGA requires an ODBC driver in the system. It works both with
+ iODBC (installed with the libiodbc package (included in Slackware
+ 15.0) and unixODBC (installed from the SBo's slackbuild). The build
+ first searches for unixODBC then for iODBC.
+3) unixODBC is a required dependency in 32 bit systems since the
+ libiodbc headers cause a build failure during the compilation.
diff --git a/gis/saga-gis/saga-gis.SlackBuild b/gis/saga-gis/saga-gis.SlackBuild
index e02d2da421..62a6841dd0 100644
--- a/gis/saga-gis/saga-gis.SlackBuild
+++ b/gis/saga-gis/saga-gis.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=saga-gis
-VERSION=${VERSION:-9.3.2}
+VERSION=${VERSION:-9.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -81,6 +81,22 @@ if [[ "$ARCH" = "i586" || "$ARCH" = "i686" ]] ; then
fi
fi
+# if both unixODBCand and libiodbc are installed, SAGA set the
+# first as default driver ODBC. This flag should prevent possible
+# compilation failures since cmake does not find the correct
+# path of unixODBC headers
+ODBC=""
+if pkg-config --exists odbc; then
+ ODBC="-DODBC_INCLUDE_DIR=/usr/include/unixodbc "
+fi
+
+# Look if the system has PDAL installed
+if pkg-config --exists pdal; then
+ WITHPDAL=""
+else
+ WITHPDAL="-DWITH_TOOLS_PDAL=OFF "
+fi
+
if [ -d /usr/share/cmake-3.29 ]; then
# This prevents some cmake warnings in current
CMAKE_POLICY="-DCMAKE_POLICY_DEFAULT_CMP0153=OLD "
@@ -109,6 +125,8 @@ cd build
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_MANDIR=/usr/man \
+ $ODBC \
+ $WITHPDAL \
$CMAKE_POLICY \
-DCMAKE_BUILD_TYPE=Release ..
make
diff --git a/gis/saga-gis/saga-gis.info b/gis/saga-gis/saga-gis.info
index 62dd9d644b..7336a02902 100644
--- a/gis/saga-gis/saga-gis.info
+++ b/gis/saga-gis/saga-gis.info
@@ -1,8 +1,8 @@
PRGNAM="saga-gis"
-VERSION="9.3.2"
+VERSION="9.4.0"
HOMEPAGE="http://www.saga-gis.org"
-DOWNLOAD="https://sourceforge.net/projects/saga-gis/files/SAGA%20-%209/SAGA%20-%209.3.2/saga-9.3.2.tar.gz"
-MD5SUM="7880d0216e493dd6b9cbf7c9cf398889"
+DOWNLOAD="https://sourceforge.net/projects/saga-gis/files/SAGA%20-%209/SAGA%20-%209.4.0/saga-9.4.0.tar.gz"
+MD5SUM="51c55b07450e343ac08cc9a1bd26014d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="wxWidgets"
diff --git a/graphics/Blender/Blender.SlackBuild b/graphics/Blender/Blender.SlackBuild
index 93a62dc7a4..90999a35a7 100644
--- a/graphics/Blender/Blender.SlackBuild
+++ b/graphics/Blender/Blender.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for Blender
-# Copyright 2015-2023 Christoph Willing, Brisbane Australia
+# Copyright 2015-2024 Christoph Willing, Sydney Australia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,13 +25,13 @@
# 20220322 bkw: Modified by SlackBuilds.org, BUILD=2:
# - make embree optional (makes it possible to build Blender on 32-bit,
# since embree is 64-bit-only).
-# - add patch to fix 32-bit compilation.
+# - add patch to fix 32-bit compilation. (no longer needed)
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Blender
VERSION=${VERSION:-3.3.10}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -106,9 +106,6 @@ sed -i -e '/#include <stdio.h>/a #include <iostream>' intern/locale/boost_locale
sed -i -e '/#include "util\/windows.h"/a #include <system_error>' intern/cycles/util/thread.cpp
sed -i -e '/#include <fstream>/a #include <cstdint>' extern/quadriflow/src/loader.cpp
-# 20220322 bkw: 32-bit needs this
-[ -z "$LIBDIRSUFFIX" ] && patch -p1 < $CWD/overloaded_min.diff
-
mkdir -p build
cd build
cmake ../ \
diff --git a/graphics/Blender/overloaded_min.diff b/graphics/Blender/overloaded_min.diff
deleted file mode 100644
index 5612d01599..0000000000
--- a/graphics/Blender/overloaded_min.diff
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -Naur blender-3.0.1/intern/cycles/scene/hair.cpp blender-3.0.1.patched/intern/cycles/scene/hair.cpp
---- blender-3.0.1/intern/cycles/scene/hair.cpp 2021-10-27 15:21:51.000000000 -0400
-+++ blender-3.0.1.patched/intern/cycles/scene/hair.cpp 2022-03-22 14:54:15.181140060 -0400
-@@ -119,7 +119,7 @@
- {
- /* Figure out which steps we need to fetch and their interpolation factor. */
- const size_t max_step = num_steps - 1;
-- const size_t step = min((int)(time * max_step), max_step - 1);
-+ const size_t step = min((int)(time * max_step), (int)(max_step - 1));
- const float t = time * max_step - step;
- /* Fetch vertex coordinates. */
- float4 curr_keys[2];
-@@ -147,7 +147,7 @@
- {
- /* Figure out which steps we need to fetch and their interpolation factor. */
- const size_t max_step = num_steps - 1;
-- const size_t step = min((int)(time * max_step), max_step - 1);
-+ const size_t step = min((int)(time * max_step), (int)(max_step - 1));
- const float t = time * max_step - step;
- /* Fetch vertex coordinates. */
- float4 curr_keys[4];
-@@ -192,7 +192,7 @@
- float4 r_keys[2]) const
- {
- k0 = max(k0, 0);
-- k1 = min(k1, num_keys - 1);
-+ k1 = min((int)k1, (int)(num_keys - 1));
- const size_t center_step = ((num_steps - 1) / 2);
- if (step == center_step) {
- /* Center step: regular key location. */
-@@ -238,7 +238,7 @@
- float4 r_keys[4]) const
- {
- k0 = max(k0, 0);
-- k3 = min(k3, num_keys - 1);
-+ k3 = min((int)k3, (int)(num_keys - 1));
- const size_t center_step = ((num_steps - 1) / 2);
- if (step == center_step) {
- /* Center step: regular key location. */
-diff -Naur blender-3.0.1/intern/cycles/scene/mesh.cpp blender-3.0.1.patched/intern/cycles/scene/mesh.cpp
---- blender-3.0.1/intern/cycles/scene/mesh.cpp 2021-10-27 15:21:51.000000000 -0400
-+++ blender-3.0.1.patched/intern/cycles/scene/mesh.cpp 2022-03-22 15:35:52.169528851 -0400
-@@ -53,7 +53,7 @@
- {
- /* Figure out which steps we need to fetch and their interpolation factor. */
- const size_t max_step = num_steps - 1;
-- const size_t step = min((int)(time * max_step), max_step - 1);
-+ const size_t step = min((int)(time * max_step), (int)(max_step - 1));
- const float t = time * max_step - step;
- /* Fetch vertex coordinates. */
- float3 curr_verts[3];
diff --git a/graphics/FSPViewer/FSPViewer.SlackBuild b/graphics/FSPViewer/FSPViewer.SlackBuild
index 18c70fe43b..f55f8876f9 100644
--- a/graphics/FSPViewer/FSPViewer.SlackBuild
+++ b/graphics/FSPViewer/FSPViewer.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=FSPViewer
VERSION=${VERSION:-2.1.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -43,9 +43,6 @@ else
exit 1
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -64,6 +61,7 @@ tar xf $CWD/$PRGNAM-$VERSION-$SRCSUFFIX.tar.gz -C $PKG
mkdir -p $PKG/usr/bin
mv $PKG/FSPViewer$SRCSUFFIX $PKG/usr/bin
+strip --strip-unneeded $PKG/usr/bin/FSPViewer$SRCSUFFIX
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/graphics/FSPViewer/FSPViewer.info b/graphics/FSPViewer/FSPViewer.info
index 20682af298..b3fbbe3c46 100644
--- a/graphics/FSPViewer/FSPViewer.info
+++ b/graphics/FSPViewer/FSPViewer.info
@@ -4,7 +4,7 @@ HOMEPAGE="http://www.fsoft.it/FSPViewer/"
DOWNLOAD="http://www.fsoft.it/FSPViewer/dwn-files/FSPViewer-2.1.0-32.tar.gz"
MD5SUM="93f190434d3987d6bb7eafdfa006b5ae"
DOWNLOAD_x86_64="http://www.fsoft.it/FSPViewer/dwn-files/FSPViewer-2.1.0-64.tar.gz"
-MD5SUM_x86_64="86f9688c0a0c2ca26e432cd1790b2983"
+MD5SUM_x86_64="ebe42fe03a99ed42657133137091fd16"
REQUIRES="libpng-legacy12"
MAINTAINER="junkyardsparkle"
EMAIL="junkyardsparkle@yepmail.net"
diff --git a/graphics/XnViewMP/XnViewMP.info b/graphics/XnViewMP/XnViewMP.info
index da322c2aca..28724152a1 100644
--- a/graphics/XnViewMP/XnViewMP.info
+++ b/graphics/XnViewMP/XnViewMP.info
@@ -4,7 +4,7 @@ HOMEPAGE="https://www.xnview.com/en/xnviewmp/"
DOWNLOAD="https://download.xnview.com/XnViewMP-linux.tgz"
MD5SUM="17e8ab2a1de48c8d9bd5f4a42bfac83e"
DOWNLOAD_x86_64="https://download.xnview.com/XnViewMP-linux-x64.tgz"
-MD5SUM_x86_64="a4a8ec89ff10f16f3df7b86ea3e7f57a"
+MD5SUM_x86_64="5cea53367f8c00025974b1236102732d"
REQUIRES=""
MAINTAINER="Melvin Mawhin"
EMAIL="mmawhin@hotmail.com"
diff --git a/graphics/converseen/converseen.SlackBuild b/graphics/converseen/converseen.SlackBuild
index d22845f27b..27ed069f05 100644
--- a/graphics/converseen/converseen.SlackBuild
+++ b/graphics/converseen/converseen.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=converseen
-VERSION=${VERSION:-0.12.2.2}
+VERSION=${VERSION:-0.12.2.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -91,7 +91,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a COPYING README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a README.md $PKG/usr/doc/$PRGNAM-$VERSION
chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/*
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/graphics/converseen/converseen.info b/graphics/converseen/converseen.info
index 5fd33aad61..5d0d864c13 100644
--- a/graphics/converseen/converseen.info
+++ b/graphics/converseen/converseen.info
@@ -1,8 +1,8 @@
PRGNAM="converseen"
-VERSION="0.12.2.2"
+VERSION="0.12.2.3"
HOMEPAGE="https://converseen.fasterland.net/"
-DOWNLOAD="https://downloads.sourceforge.net/converseen/converseen-0.12.2.2.tar.bz2"
-MD5SUM="49528b1583a84af9c1bd24fffce6709c"
+DOWNLOAD="https://downloads.sourceforge.net/converseen/converseen-0.12.2.3.tar.bz2"
+MD5SUM="8e00aaaeee81a52798e6fd9b2f29db98"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/graphics/gimp-wideangle-plugin/gimp-wideangle-plugin.SlackBuild b/graphics/gimp-wideangle-plugin/gimp-wideangle-plugin.SlackBuild
index 15548724a8..9938485132 100644
--- a/graphics/gimp-wideangle-plugin/gimp-wideangle-plugin.SlackBuild
+++ b/graphics/gimp-wideangle-plugin/gimp-wideangle-plugin.SlackBuild
@@ -8,7 +8,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gimp-wideangle-plugin
VERSION=${VERSION:-1.0.10}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -66,7 +66,7 @@ fi
GIMPPLUGINS=usr/lib${LIBDIRSUFFIX}/gimp/2.0/plug-ins/
mkdir -p $PKG/$GIMPPLUGINS
-gcc $SLKCFLAGS \
+gcc $SLKCFLAGS -lm \
$( pkg-config --cflags gimpui-2.0 gimp-2.0 gtk+-2.0 ) \
-o $PKG/$GIMPPLUGINS/$SRCNAM $SRC \
$( pkg-config --libs gimpui-2.0 gimp-2.0 gtk+-2.0 )
diff --git a/graphics/graphviz/graphviz.SlackBuild b/graphics/graphviz/graphviz.SlackBuild
index 40849f7daf..68c4d53abe 100644
--- a/graphics/graphviz/graphviz.SlackBuild
+++ b/graphics/graphviz/graphviz.SlackBuild
@@ -28,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=graphviz
-VERSION=${VERSION:-10.0.1}
+VERSION=${VERSION:-11.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/graphics/graphviz/graphviz.info b/graphics/graphviz/graphviz.info
index 2418064f2d..97a5a45696 100644
--- a/graphics/graphviz/graphviz.info
+++ b/graphics/graphviz/graphviz.info
@@ -1,8 +1,8 @@
PRGNAM="graphviz"
-VERSION="10.0.1"
+VERSION="11.0.0"
HOMEPAGE="https://www.graphviz.org/"
-DOWNLOAD="https://gitlab.com/graphviz/graphviz/-/archive/10.0.1/graphviz-10.0.1.tar.bz2"
-MD5SUM="5d343d0ba08dc11624d3961af2b4755c"
+DOWNLOAD="https://gitlab.com/graphviz/graphviz/-/archive/11.0.0/graphviz-11.0.0.tar.bz2"
+MD5SUM="cbc948bb249ff4a26cd3f0ef35938a98"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/graphics/hugin/boost-1.85.0-patch.gz b/graphics/hugin/boost-1.85.0-patch.gz
new file mode 100644
index 0000000000..d03ca9fd5e
--- /dev/null
+++ b/graphics/hugin/boost-1.85.0-patch.gz
Binary files differ
diff --git a/graphics/hugin/hugin.SlackBuild b/graphics/hugin/hugin.SlackBuild
index 0c5c216bc4..e90b451e18 100644
--- a/graphics/hugin/hugin.SlackBuild
+++ b/graphics/hugin/hugin.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for Hugin
#
# Copyright 2009-2010 Erik W. Hanson, Minneapolis, MN, USA
-# Copyright 2011-2023 by titopoquito (titopoquito@gmail.com)
+# Copyright 2011-2024 by titopoquito (titopoquito@gmail.com)
# Thanks to Romain Dartigues for the help with the update to 2016.2.0
# All rights reserved.
#
@@ -35,7 +35,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=hugin
VERSION=${VERSION:-2023.0.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -79,6 +79,8 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
+zcat $CWD/boost-1.85.0-patch | patch -p0
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/graphics/qcustomplot/qcustomplot.info b/graphics/qcustomplot/qcustomplot.info
index b248ef9d3c..baab57cc97 100644
--- a/graphics/qcustomplot/qcustomplot.info
+++ b/graphics/qcustomplot/qcustomplot.info
@@ -1,7 +1,7 @@
PRGNAM="qcustomplot"
VERSION="2.1.1"
HOMEPAGE="https://www.qcustomplot.com/"
-DOWNLOAD="https://gitlab.com/DerManu/QCustomPlot/-/archive/v2.1.1/QCustomPlot-v2.1.1.tar.gz \
+DOWNLOAD="https://gitlab.com/ecme2/QCustomPlot/-/archive/v2.1.1/QCustomPlot-v2.1.1.tar.gz \
https://www.qcustomplot.com/release/2.1.1/QCustomPlot-source.tar.gz"
MD5SUM="e481fc69a91cd9ad1341397338457caa \
dec87d6ad14745683ebe166b5936bab1"
diff --git a/graphics/ueberzugpp/ueberzugpp.info b/graphics/ueberzugpp/ueberzugpp.info
index 49f1b3a994..0ee4d3f378 100644
--- a/graphics/ueberzugpp/ueberzugpp.info
+++ b/graphics/ueberzugpp/ueberzugpp.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/jstkdng/ueberzugpp/archive/v2.9.4/ueberzugpp-2.9.4.
MD5SUM="7388e482a328d1fdfc655d48576e017b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="CLI11 chafa fmt libsixel nlohmann_json oneTBB range-v3 spdlog vips"
+REQUIRES="CLI11 chafa libsixel nlohmann_json oneTBB range-v3 spdlog vips"
MAINTAINER="xaizek"
EMAIL="xaizek@posteo.net"
diff --git a/graphics/veles/README b/graphics/veles/README
index 67aa361a89..b1b2d4b179 100644
--- a/graphics/veles/README
+++ b/graphics/veles/README
@@ -10,3 +10,5 @@ binary data - all at a glance.
Warning: This SlackBuild requires network access when it runs, meaning
it downloads files from the Internet with root access. YMMV on whether
this is a good idea.
+
+NOTE: Upstream project is now archived
diff --git a/graphics/veles/veles.SlackBuild b/graphics/veles/veles.SlackBuild
index 058d5f6a29..bcaf3c427a 100644
--- a/graphics/veles/veles.SlackBuild
+++ b/graphics/veles/veles.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=veles
VERSION=${VERSION:-2018.05.0.TIF}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -79,6 +79,13 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+export PATH="/opt/rust16/bin:$PATH"
+if [ -z "$LD_LIBRARY_PATH" ]; then
+ export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX"
+else
+ export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX:$LD_LIBRARY_PATH"
+fi
+
mkdir -p build
cd build
cmake \
diff --git a/graphics/veles/veles.info b/graphics/veles/veles.info
index 5fda33da35..cd8cd095b7 100644
--- a/graphics/veles/veles.info
+++ b/graphics/veles/veles.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/codilime/veles/archive/2018.05.0.TIF/veles-2018.05.
MD5SUM="f10259c5d85700f45e36b629090efed7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="msgpack-c"
+REQUIRES="msgpack-c rust16"
MAINTAINER="Fernando Lopez Jr."
EMAIL="fernando.lopezjr@gmail.com"
diff --git a/graphics/wine-nine-standalone/wine-nine-standalone.info b/graphics/wine-nine-standalone/wine-nine-standalone.info
index 99c9a530d6..140159575a 100644
--- a/graphics/wine-nine-standalone/wine-nine-standalone.info
+++ b/graphics/wine-nine-standalone/wine-nine-standalone.info
@@ -3,7 +3,7 @@ VERSION="0.8"
HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
DOWNLOAD="https://github.com/iXit/wine-nine-standalone/archive/v0.8/wine-nine-standalone-0.8.tar.gz"
MD5SUM="84c245c029aa88e21a544dd01607d93e"
-DOWNLOAD_x86_64=""
+DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES="wine"
MAINTAINER="Hunter Sezen"
diff --git a/ham/cm256cc/cm256cc.SlackBuild b/ham/cm256cc/cm256cc.SlackBuild
index c20e2a7004..c341be9e75 100644
--- a/ham/cm256cc/cm256cc.SlackBuild
+++ b/ham/cm256cc/cm256cc.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=cm256cc
-VERSION=${VERSION:-1.1.0}
+VERSION=${VERSION:-1.1.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -71,7 +71,7 @@ mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-unzip $CWD/$PRGNAM-$VERSION.zip
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
diff --git a/ham/cm256cc/cm256cc.info b/ham/cm256cc/cm256cc.info
index 2ff6b319ad..a1073a6aaa 100644
--- a/ham/cm256cc/cm256cc.info
+++ b/ham/cm256cc/cm256cc.info
@@ -1,8 +1,8 @@
PRGNAM="cm256cc"
-VERSION="1.1.0"
+VERSION="1.1.1"
HOMEPAGE="https://github.com/f4exb/cm256cc/"
-DOWNLOAD="https://github.com/f4exb/cm256cc/archive/v1.1.0/cm256cc-1.1.0.zip"
-MD5SUM="0b9b0a5b8eebbee6eb90a31fe96957df"
+DOWNLOAD="https://github.com/f4exb/cm256cc/archive/v1.1.1/cm256cc-1.1.1.tar.gz"
+MD5SUM="d727f0f10cc00e91d9c24d83004b351c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/ham/dab_lib/dab_lib.SlackBuild b/ham/dab_lib/dab_lib.SlackBuild
index 3d5fc871b4..02071203fb 100644
--- a/ham/dab_lib/dab_lib.SlackBuild
+++ b/ham/dab_lib/dab_lib.SlackBuild
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dab_lib
-VERSION=${VERSION:-20231211.815d83fc}
-SRCVERSION=${SRCVERSION:-815d83fcd1b2ffa1289501943c913cc86d6b567b}
+VERSION=${VERSION:-20240428.229149eb}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -71,9 +71,9 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf dab-cmdline-$SRCVERSION#
-unzip $CWD/dab-cmdline-$SRCVERSION.zip
-cd dab-cmdline-$SRCVERSION/library
+rm -rf dab-cmdline-${VERSION##*.}*
+tar xvf $CWD/dab-cmdline-${VERSION##*.}*.tar.gz
+cd dab-cmdline-${VERSION##*.}*/library
chown -R root:root .
find -L . \
@@ -91,6 +91,7 @@ cd build
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=/usr/man \
-DCMAKE_BUILD_TYPE=Release ..
+ make $NUMJOBS
make install/strip DESTDIR=$PKG
cd ../..
@@ -98,10 +99,9 @@ cd ../..
[ -d $PKG/usr/lib -a ! -e $PKG/usr/lib$LIBDIRSUFFIX ] && mv $PKG/usr/lib $PKG/usr/lib$LIBDIRSUFFIX
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
+cp \
LICENSE README.md AUTHORS \
$PKG/usr/doc/$PRGNAM-$VERSION
-chmod 0644 $PKG/usr/doc/$PRGNAM-$VERSION/README.md
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/ham/dab_lib/dab_lib.info b/ham/dab_lib/dab_lib.info
index 5b501d25d7..a1a2c14183 100644
--- a/ham/dab_lib/dab_lib.info
+++ b/ham/dab_lib/dab_lib.info
@@ -1,8 +1,8 @@
PRGNAM="dab_lib"
-VERSION="20231211.815d83fc"
+VERSION="20240428.229149eb"
HOMEPAGE="https://github.com/JvanKatwijk/dab-cmdline/"
-DOWNLOAD="https://github.com/JvanKatwijk/dab-cmdline/archive/815d83fc/dab-cmdline-815d83fcd1b2ffa1289501943c913cc86d6b567b.zip"
-MD5SUM="15457cfebfeda63a0619bf6ea170eb8f"
+DOWNLOAD="https://github.com/JvanKatwijk/dab-cmdline/archive/229149eb/dab-cmdline-229149eb421eeb8302ff96005c69b3cdab2cc349.tar.gz"
+MD5SUM="38f5fb46df66f6bf395b0d1a367e1a77"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="faad2"
diff --git a/ham/libsigmf/libsigmf.SlackBuild b/ham/libsigmf/libsigmf.SlackBuild
index 269312c783..2278ca3bb0 100644
--- a/ham/libsigmf/libsigmf.SlackBuild
+++ b/ham/libsigmf/libsigmf.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libsigmf
-VERSION=${VERSION:-20231212.b9d14e21}
-SRCVERSION=${SRCVERSION:-b9d14e2199bfcd958e16c33612ab35295e527087}
+VERSION=${VERSION:-20240428.299dc8f9}
+SRCVERSION=${SRCVERSION:-299dc8f9725f1733e5cc1ce8a69fbcf7f18a2f58}
VERSION_flatbuffers=${VERSION_flatbuffers:-d8210d5a83faa345046648e520d82b54ea724e35}
VERSION_json=${VERSION_json:-9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03}
BUILD=${BUILD:-1}
diff --git a/ham/libsigmf/libsigmf.info b/ham/libsigmf/libsigmf.info
index df9b092712..78a17159dc 100644
--- a/ham/libsigmf/libsigmf.info
+++ b/ham/libsigmf/libsigmf.info
@@ -1,10 +1,12 @@
PRGNAM="libsigmf"
-VERSION="20231212.b9d14e21"
+VERSION="20240428.299dc8f9"
HOMEPAGE="https://github.com/f4exb/libsigmf/"
-DOWNLOAD="https://github.com/f4exb/libsigmf/archive/b9d14e21/libsigmf-b9d14e2199bfcd958e16c33612ab35295e527087.zip \
+DOWNLOAD="https://github.com/f4exb/libsigmf/archive/299dc8f9/libsigmf-299dc8f9725f1733e5cc1ce8a69fbcf7f18a2f58.zip \
https://github.com/google/flatbuffers/archive/d8210d5a/flatbuffers-d8210d5a83faa345046648e520d82b54ea724e35.zip \
https://github.com/nlohmann/json/archive/9cca280a/json-9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03.zip"
-MD5SUM="85fcd782696082c48e1654b050d0ba98 9cd198fc0c93c4cd7bf632eb80a39286 05239fe4145889a732c4d90a180ce4bc"
+MD5SUM="2da9c5db69ed2c0570e7e5d1f2a6f206 \
+ 9cd198fc0c93c4cd7bf632eb80a39286 \
+ 05239fe4145889a732c4d90a180ce4bc"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/ham/mbelib/mbelib.SlackBuild b/ham/mbelib/mbelib.SlackBuild
index 9ae7571738..43890bfeec 100644
--- a/ham/mbelib/mbelib.SlackBuild
+++ b/ham/mbelib/mbelib.SlackBuild
@@ -25,8 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mbelib
-VERSION=${VERSION:-20231211.9a04ed5c}
-SRCVERSION=${SRCVERSION:-9a04ed5c78176a9965f3d43f7aa1b1f5330e771f}
+VERSION=${VERSION:-20240428.9a04ed5c}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -71,9 +70,9 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$SRCVERSION
-unzip $CWD/$PRGNAM-$SRCVERSION.zip
-cd $PRGNAM-$SRCVERSION
+rm -rf $PRGNAM-${VERSION##*.}*
+tar xvf $CWD/$PRGNAM-${VERSION##*.}*.tar.gz
+cd $PRGNAM-${VERSION##*.}*
chown -R root:root .
find -L . \
diff --git a/ham/mbelib/mbelib.info b/ham/mbelib/mbelib.info
index fc1a97d7bf..06887470b0 100644
--- a/ham/mbelib/mbelib.info
+++ b/ham/mbelib/mbelib.info
@@ -1,8 +1,8 @@
PRGNAM="mbelib"
-VERSION="20231211.9a04ed5c"
+VERSION="20240428.9a04ed5c"
HOMEPAGE="https://github.com/szechyjs/mbelib/"
-DOWNLOAD="https://github.com/szechyjs/mbelib/archive/9a04ed5c/mbelib-9a04ed5c78176a9965f3d43f7aa1b1f5330e771f.zip"
-MD5SUM="7925d70bbf0d0e6607555f3a90d7b10f"
+DOWNLOAD="https://github.com/szechyjs/mbelib/archive/9a04ed5c/mbelib-9a04ed5c78176a9965f3d43f7aa1b1f5330e771f.tar.gz"
+MD5SUM="9c998de63e1dea2f04bcd085177008dc"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/ham/qlog/qlog.SlackBuild b/ham/qlog/qlog.SlackBuild
index 8fc28d502d..829fe4d22a 100644
--- a/ham/qlog/qlog.SlackBuild
+++ b/ham/qlog/qlog.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qlog
SRCNAM=QLog
-VERSION=${VERSION:-0.34.0}
+VERSION=${VERSION:-0.35.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/ham/qlog/qlog.info b/ham/qlog/qlog.info
index cf5b1ee24f..2d5827fee5 100644
--- a/ham/qlog/qlog.info
+++ b/ham/qlog/qlog.info
@@ -1,10 +1,10 @@
PRGNAM="qlog"
-VERSION="0.34.0"
+VERSION="0.35.0"
HOMEPAGE="https://github.com/foldynl/QLog"
-DOWNLOAD="https://github.com/foldynl/QLog/archive/refs/tags/v0.34.0/QLog-0.34.0.tar.gz \
- https://github.com/foldynl/QLog-Flags/archive/refs/tags/v0.34.0/QLog-Flags-0.34.0.tar.gz"
-MD5SUM="071583828a6409516a7d6e264d0b6309 \
- c9afee8394a8e0d536ff45b5f56c146b"
+DOWNLOAD="https://github.com/foldynl/QLog/archive/refs/tags/v0.35.0/QLog-0.35.0.tar.gz \
+ https://github.com/foldynl/QLog-Flags/archive/refs/tags/v0.35.0/QLog-Flags-0.35.0.tar.gz"
+MD5SUM="4987483e95af8b668e21a4fce29debb8\
+ 3e6dc56ab8f80bf8acfc93424eb8883d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="hamlib"
diff --git a/ham/satdump/satdump.SlackBuild b/ham/satdump/satdump.SlackBuild
index facfab3718..a984608207 100644
--- a/ham/satdump/satdump.SlackBuild
+++ b/ham/satdump/satdump.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=satdump
-VERSION=${VERSION:-1.1.2}
+VERSION=${VERSION:-1.1.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/ham/satdump/satdump.info b/ham/satdump/satdump.info
index dedbf6c26c..5194b697f5 100644
--- a/ham/satdump/satdump.info
+++ b/ham/satdump/satdump.info
@@ -1,8 +1,8 @@
PRGNAM="satdump"
-VERSION="1.1.2"
+VERSION="1.1.4"
HOMEPAGE="https://www.satdump.org/"
-DOWNLOAD="https://github.com/SatDump/SatDump/archive/1.1.2/SatDump-1.1.2.tar.gz"
-MD5SUM="c7bbd6cd82d27b2ffa1c64fae236262f"
+DOWNLOAD="https://github.com/SatDump/SatDump/archive/1.1.4/SatDump-1.1.4.tar.gz"
+MD5SUM="588b8ff40a1da81d1fb9d618448ede75"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="volk glfw3 nng"
diff --git a/ham/sdrangel/README b/ham/sdrangel/README
index 1093c95fd2..883a6e912d 100644
--- a/ham/sdrangel/README
+++ b/ham/sdrangel/README
@@ -30,7 +30,7 @@ is to provide a Software Defined Radio platform that is committed to:
Depending to your SDR hardware you may want to install some or all:
libairspy, libairspyhf, libbladeRF, libhackrf, liniio, libmirisdr,
-libperseus, librtlsdr, uhd ...
+SDRplay, libperseus, librtlsdr, uhd ...
(not all available at slackbuilds.org)
Optional features can be enabled installing:
diff --git a/ham/sdrangel/sdrangel.SlackBuild b/ham/sdrangel/sdrangel.SlackBuild
index 6736df78bc..1307b9c770 100644
--- a/ham/sdrangel/sdrangel.SlackBuild
+++ b/ham/sdrangel/sdrangel.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sdrangel
-VERSION=${VERSION:-7.17.3}
+VERSION=${VERSION:-7.20.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -85,6 +85,9 @@ find -L . \
# Fix
zcat $CWD/localsink.diff.gz | patch -p0 || exit
+# Fix (ver 3.14 Added RSP1B Support)
+sed 's/case SDRPLAY_RSP1B_ID/case (6)/' -i plugins/samplesource/sdrplayv3/sdrplayv3input.cpp
+
mkdir -p build
cd build
cmake \
diff --git a/ham/sdrangel/sdrangel.info b/ham/sdrangel/sdrangel.info
index 75d60fb1ed..e638693ff9 100644
--- a/ham/sdrangel/sdrangel.info
+++ b/ham/sdrangel/sdrangel.info
@@ -1,8 +1,8 @@
PRGNAM="sdrangel"
-VERSION="7.17.3"
+VERSION="7.20.0"
HOMEPAGE="https://github.com/f4exb/sdrangel/wiki/"
-DOWNLOAD="https://github.com/f4exb/sdrangel/archive/v7.17.3/sdrangel-v7.17.3.tar.gz"
-MD5SUM="845857adc5a4ce96c6a74ed26832453d"
+DOWNLOAD="https://github.com/f4exb/sdrangel/archive/v7.20.0/sdrangel-v7.20.0.tar.gz"
+MD5SUM="f32e5c197ae11116ddb9c8dede609722"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="faad2 codec2 hamlib"
diff --git a/ham/sgp4/sgp4.SlackBuild b/ham/sgp4/sgp4.SlackBuild
index a9f9bc2f4d..cd3ac618cb 100644
--- a/ham/sgp4/sgp4.SlackBuild
+++ b/ham/sgp4/sgp4.SlackBuild
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sgp4
-VERSION=${VERSION:-20231211.6a448b48}
-SRCVERSION=${SRCVERSION:-6a448b4850e5fbf8c1ca03bb5f6013a9fdc1fd91}
+VERSION=${VERSION:-20240428.6a448b48}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -71,9 +71,9 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$SRCVERSION
-unzip $CWD/$PRGNAM-$SRCVERSION.zip
-cd $PRGNAM-$SRCVERSION
+rm -rf $PRGNAM-${VERSION##*.}*
+tar xvf $CWD/$PRGNAM-${VERSION##*.}*.tar.gz
+cd $PRGNAM-${VERSION##*.}*
chown -R root:root .
find -L . \
@@ -91,7 +91,7 @@ cd build
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=/usr/man \
-DCMAKE_BUILD_TYPE=Release ..
- make
+ make $NUMJOBS
make install/strip DESTDIR=$PKG
cd ..
diff --git a/ham/sgp4/sgp4.info b/ham/sgp4/sgp4.info
index 4f1ce6b7ed..460f8aaf32 100644
--- a/ham/sgp4/sgp4.info
+++ b/ham/sgp4/sgp4.info
@@ -1,8 +1,8 @@
PRGNAM="sgp4"
-VERSION="20231211.6a448b48"
+VERSION="20240428.6a448b48"
HOMEPAGE="https://github.com/dnwrnr/sgp4/"
-DOWNLOAD="https://github.com/dnwrnr/sgp4/archive/6a448b48/sgp4-6a448b4850e5fbf8c1ca03bb5f6013a9fdc1fd91.zip"
-MD5SUM="90b246600ec54eaeb35f414accc020d4"
+DOWNLOAD="https://github.com/dnwrnr/sgp4/archive/6a448b48/sgp4-6a448b4850e5fbf8c1ca03bb5f6013a9fdc1fd91.tar.gz"
+MD5SUM="795cfea39667e3348a5d664ff5415fb6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="serialDV"
diff --git a/libraries/CLI11/CLI11.SlackBuild b/libraries/CLI11/CLI11.SlackBuild
index dcbca39923..6835bf9685 100644
--- a/libraries/CLI11/CLI11.SlackBuild
+++ b/libraries/CLI11/CLI11.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=CLI11
-VERSION=${VERSION:-2.4.1}
+VERSION=${VERSION:-2.4.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/CLI11/CLI11.info b/libraries/CLI11/CLI11.info
index 2fe228f05b..55590fd232 100644
--- a/libraries/CLI11/CLI11.info
+++ b/libraries/CLI11/CLI11.info
@@ -1,8 +1,8 @@
PRGNAM="CLI11"
-VERSION="2.4.1"
+VERSION="2.4.2"
HOMEPAGE="https://cliutils.github.io/CLI11/book/"
-DOWNLOAD="https://github.com/CLIUtils/CLI11/archive/v2.4.1/CLI11-2.4.1.tar.gz"
-MD5SUM="d88b829bb557951e2b784baa2a0a2655"
+DOWNLOAD="https://github.com/CLIUtils/CLI11/archive/v2.4.2/CLI11-2.4.2.tar.gz"
+MD5SUM="f9c0acb8c483a524e9dd275955227254"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/ell/README b/libraries/ell/README
new file mode 100644
index 0000000000..4772d79eb6
--- /dev/null
+++ b/libraries/ell/README
@@ -0,0 +1,2 @@
+Embedded Linux Library provides core, low-level functionality for
+system daemons.
diff --git a/libraries/ell/ell.SlackBuild b/libraries/ell/ell.SlackBuild
new file mode 100644
index 0000000000..c73d685198
--- /dev/null
+++ b/libraries/ell/ell.SlackBuild
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+# Slackware build script for ell
+
+# Copyright 2024 Thibaut Notteboom, Paris, FRANCE
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=ell
+VERSION=${VERSION:-0.65}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make
+make install-strip DESTDIR=$PKG
+
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog README TODO \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/libraries/ell/ell.info b/libraries/ell/ell.info
new file mode 100644
index 0000000000..92c3d61ac5
--- /dev/null
+++ b/libraries/ell/ell.info
@@ -0,0 +1,10 @@
+PRGNAM="ell"
+VERSION="0.65"
+HOMEPAGE="https://git.kernel.org/pub/scm/libs/ell/ell.git"
+DOWNLOAD="https://mirrors.edge.kernel.org/pub/linux/libs/ell/ell-0.65.tar.gz"
+MD5SUM="b1480a0d8cf5826e02c60802b602e173"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Thibaut Notteboom"
+EMAIL="thibaut.notteboom@gmail.com"
diff --git a/libraries/ell/slack-desc b/libraries/ell/slack-desc
new file mode 100644
index 0000000000..63036d7301
--- /dev/null
+++ b/libraries/ell/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+ell: ell (Embedded Linux library)
+ell:
+ell: Embedded Linux Library provides core, low-level functionality for
+ell: system daemons.
+ell:
+ell:
+ell:
+ell:
+ell:
+ell:
+ell:
diff --git a/libraries/goffice/goffice.SlackBuild b/libraries/goffice/goffice.SlackBuild
index 39282e2f9d..e30e2ed5f1 100644
--- a/libraries/goffice/goffice.SlackBuild
+++ b/libraries/goffice/goffice.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for goffice
# Copyright (c) 2007 alkos333 <me@alkos333.net>
+# Copyright (c) 2023-24 Jim Diamond, Dartmouth, Nova Scotia, Canada
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,8 +32,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=goffice
-VERSION=${VERSION:-0.10.56}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-0.10.57}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -57,17 +58,14 @@ if [ "$ARCH" = "i586" -o "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=$ARCH -mtune=i686"
LIBDIRSUFFIX=""
CONFIG_ARGS="--without-long-double"
- NEED_PATCHES=T
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
CONFIG_ARGS=
- NEED_PATCHES=F
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
CONFIG_ARGS=
- NEED_PATCHES=F
fi
set -e
@@ -79,16 +77,6 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
-if [ "$NEED_PATCHES" = T ]
-then
- for i in $CWD/patches/*
- do
- patch -p0 < $i
- done
- cp $CWD/import-ryu tools/
- chmod 755 tools/import-ryu
-fi
-
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/libraries/goffice/goffice.info b/libraries/goffice/goffice.info
index 209e7365ab..7e4d226c69 100644
--- a/libraries/goffice/goffice.info
+++ b/libraries/goffice/goffice.info
@@ -1,8 +1,8 @@
PRGNAM="goffice"
-VERSION="0.10.56"
+VERSION="0.10.57"
HOMEPAGE="https://download.gnome.org/sources/goffice/"
-DOWNLOAD="https://download.gnome.org/sources/goffice/0.10/goffice-0.10.56.tar.xz"
-MD5SUM="50555440e0e4ccef4651193e5e0b5f62"
+DOWNLOAD="https://download.gnome.org/sources/goffice/0.10/goffice-0.10.57.tar.xz"
+MD5SUM="4c55f99d8fafe1f91276cb7538521fdb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/goffice/import-ryu b/libraries/goffice/import-ryu
deleted file mode 100644
index e99f022e0b..0000000000
--- a/libraries/goffice/import-ryu
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/perl -w
-# -----------------------------------------------------------------------------
-
-my $ryu = $ARGV[0];
-
-my @files = (# "ryu.h",
- "common.h",
- "digit_table.h",
- "d2s_intrinsics.h",
- "d2s_small_table.h",
- 'd2s.c',
- 'WITH_LONG_DOUBLE',
- 'ryu_generic_128.h',
- 'generic_128.h',
- 'generic_128.c');
-
-print "#define RYU_OPTIMIZE_SIZE 1\n\n";
-print "#define bool int\n\n";
-print "#include \"go-ryu.h\"\n";
-print "#include <inttypes.h>\n";
-print "\n";
-
-my $with_long_double = 0;
-
-foreach my $f (@files) {
- if ($f eq 'WITH_LONG_DOUBLE') {
- $with_long_double = 1;
- next;
- }
-
- my $fn = "$ryu/ryu/$f";
-
- my $in_conditional = 0;
-
- print STDERR "Importing $f...\n";
- open my $fh, "<", $fn or die "$0: cannot read $fn:$!\n";
-
- print "#ifdef GOFFICE_WITH_LONG_DOUBLE\n" if $with_long_double;
-
- print "// File $f imported from ryu\n";
- while (<$fh>) {
- next if /^\s*#\s*include\s*"ryu.*"/;
-
- s/\b((float|double|long_double)_to_fd128|generic_binary_to_decimal|generic_to_chars|(d|f)2(s|exp|fixed)(|_buffered_n|_buffered))\b/go_ryu_$1/g;
-
- if (/\b(go_ryu_d2s_buffered|go_ryu_d2s|go_ryu_f2s_buffered_n|go_ryu_f2s_buffered|go_ryu_f2s|go_ryu_d2fixed_buffered_n|go_ryu_d2fixed_buffered|go_ryu_d2fixed|go_ryu_d2exp_buffered_n|go_ryu_d2exp_buffered|go_ryu_d2exp)\s*\([a-z]+\s.*\)(;|\s*\{)$/) {
- print "#if 0\n";
- $_ = "static $_";
- $in_conditional = 1;
- }
-
- if (/\b(go_ryu_long_double_to_fd128|go_ryu_generic_to_chars)\s*\([a-z]+\s.*\)(;|\s*\{)$/) {
- $_ = "static $_";
- }
-
- if (/struct floating_decimal_128 go_ryu_generic_binary_to_decimal\(/) {
- $_ = "static $_";
- }
-
-
- if ($f =~ /128/) {
- s/\b(pow5bits|pow5Factor|multipleOfPowerOf[25]|log10Pow[25]|copy_special_str|POW5_TABLE_SIZE)\b/$1l/g;
-
- if (/go_ryu_float_to_fd128\(float/) {
- print "#if 0\n";
- $_ = "static $_";
- $in_conditional = 1;
- }
-
- if (/go_ryu_double_to_fd128\(double/) {
- print "#if 0\n";
- $_ = "static $_";
- $in_conditional = 1;
- }
- }
-
- if ($in_conditional && (/^[a-z].*\);$/ || /^}/)) {
- $_ = "$_#endif\n";
- $in_conditional = 0;
- }
-
- print;
- }
- print "// End of file $f imported from ryu\n";
- print "#endif // GOFFICE_WITH_LONG_DOUBLE\n" if $with_long_double;
- print "\n";
-
- die "Trouble" if $in_conditional;
-}
-
-print "\n";
-print "#ifdef GOFFICE_WITH_LONG_DOUBLE\n";
-print "int go_ryu_ld2s_buffered_n (long double d, char *dst) {\n";
-print " struct floating_decimal_128 fd128 = go_ryu_long_double_to_fd128(d);\n";
-print " return go_ryu_generic_to_chars(fd128, dst);\n";
-print "}\n";
-print "#endif\n";
diff --git a/libraries/goffice/patches/NEWS.patch b/libraries/goffice/patches/NEWS.patch
deleted file mode 100644
index 773bb5a77b..0000000000
--- a/libraries/goffice/patches/NEWS.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- NEWS 2023-12-27 18:37:51.129423722 -0400
-+++ NEWS.patched 2023-12-27 18:36:14.000000000 -0400
-@@ -1,3 +1,8 @@
-+goffice 0.10.57:
-+
-+ * Excise long double parts of ryu unless --with-long-double.
-+
-+--------------------------------------------------------------------------
- goffice 0.10.56:
-
- B.S.:
diff --git a/libraries/goffice/patches/configure.ac.patch b/libraries/goffice/patches/configure.ac.patch
deleted file mode 100644
index 1b82b29215..0000000000
--- a/libraries/goffice/patches/configure.ac.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- configure.ac 2023-05-19 22:19:44.000000000 -0300
-+++ configure.ac.fixed 2023-12-27 16:38:43.520064640 -0400
-@@ -560,14 +560,23 @@
- GOFFICE_CHECK_FUNC(acosh)
- GOFFICE_CHECK_FUNC(atanh)
-
-+AC_TYPE_LONG_DOUBLE
-+dnl go-ryu needs __uint128_t for long double support.
-+AC_CHECK_TYPES([__uint128_t], [], [], [[#include <inttypes.h>
-+#include <stdint.h>]])
-+if test $ac_cv_type_long_double.$ac_cv_type___uint128_t = yes.yes; then
-+ with_long_double_default=yes
-+else
-+ with_long_double_default=no
-+fi
-+
- float_msg=no
- AC_ARG_WITH(long-double,
- [ --without-long-double disable support for long double],
-- , [ with_long_double=yes])
-+ , [ with_long_double=$with_long_double_default])
-
- if test "x$with_long_double" = "xyes"; then
-- AC_TYPE_LONG_DOUBLE
-- if test $ac_cv_type_long_double = yes; then
-+ if test $with_long_double_default = yes; then
- have_mandatory_funcs=yes
- need_sunmath=0
- ss_ccprog=`echo $CC | sed -e 's/ .*//'`
diff --git a/libraries/goffice/patches/go-dtoa.c.patch b/libraries/goffice/patches/go-dtoa.c.patch
deleted file mode 100644
index 525d2893b8..0000000000
--- a/libraries/goffice/patches/go-dtoa.c.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- goffice/math/go-dtoa.c 2023-05-21 13:08:07.000000000 -0300
-+++ goffice/math/go-dtoa.c.patched 2023-12-27 19:28:35.623167312 -0400
-@@ -464,9 +464,14 @@
- GString const *dec = go_locale_get_decimal();
-
- g_string_set_size (dst, 53 + oldlen + dec->len);
-- if (is_long)
-+ if (is_long) {
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- n = go_ryu_ld2s_buffered_n (d, dst->str + oldlen);
-- else
-+#else
-+ g_critical ("Compiled with long-double, then asked to use it");
-+ return;
-+#endif
-+ } else
- n = go_ryu_d2s_buffered_n ((double)d, dst->str + oldlen);
- g_string_set_size (dst, oldlen + n);
- dpos = strchr (dst->str + oldlen, '.');
diff --git a/libraries/goffice/patches/go-ryu.c.patch b/libraries/goffice/patches/go-ryu.c.patch
deleted file mode 100644
index 6d0513c752..0000000000
--- a/libraries/goffice/patches/go-ryu.c.patch
+++ /dev/null
@@ -1,204 +0,0 @@
---- goffice/math/go-ryu.c 2023-05-20 20:02:02.000000000 -0300
-+++ goffice/math/go-ryu.c.patched 2023-12-27 19:28:35.623167312 -0400
-@@ -3,55 +3,8 @@
- #define bool int
-
- #include "go-ryu.h"
--// File ryu.h imported from ryu
--// Copyright 2018 Ulf Adams
--//
--// The contents of this file may be used under the terms of the Apache License,
--// Version 2.0.
--//
--// (See accompanying file LICENSE-Apache or copy at
--// http://www.apache.org/licenses/LICENSE-2.0)
--//
--// Alternatively, the contents of this file may be used under the terms of
--// the Boost Software License, Version 1.0.
--// (See accompanying file LICENSE-Boost or copy at
--// https://www.boost.org/LICENSE_1_0.txt)
--//
--// Unless required by applicable law or agreed to in writing, this software
--// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
--// KIND, either express or implied.
--#ifndef RYU_H
--#define RYU_H
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
- #include <inttypes.h>
-
--int go_ryu_d2s_buffered_n(double f, char* result);
--void go_ryu_d2s_buffered(double f, char* result);
--char* go_ryu_d2s(double f);
--
--int go_ryu_f2s_buffered_n(float f, char* result);
--void go_ryu_f2s_buffered(float f, char* result);
--char* go_ryu_f2s(float f);
--
--int go_ryu_d2fixed_buffered_n(double d, uint32_t precision, char* result);
--void go_ryu_d2fixed_buffered(double d, uint32_t precision, char* result);
--char* go_ryu_d2fixed(double d, uint32_t precision);
--
--int go_ryu_d2exp_buffered_n(double d, uint32_t precision, char* result);
--void go_ryu_d2exp_buffered(double d, uint32_t precision, char* result);
--char* go_ryu_d2exp(double d, uint32_t precision);
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif // RYU_H
--// End of file ryu.h imported from ryu
--
- // File common.h imported from ryu
- // Copyright 2018 Ulf Adams
- //
-@@ -1242,20 +1195,25 @@
- return to_chars(v, ieeeSign, result);
- }
-
--void go_ryu_d2s_buffered(double f, char* result) {
-+#if 0
-+static void go_ryu_d2s_buffered(double f, char* result) {
- const int index = go_ryu_d2s_buffered_n(f, result);
-
- // Terminate the string.
- result[index] = '\0';
- }
-+#endif
-
--char* go_ryu_d2s(double f) {
-+#if 0
-+static char* go_ryu_d2s(double f) {
- char* const result = (char*) malloc(25);
- go_ryu_d2s_buffered(f, result);
- return result;
- }
-+#endif
- // End of file d2s.c imported from ryu
-
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- // File ryu_generic_128.h imported from ryu
- // Copyright 2018 Ulf Adams
- //
-@@ -1303,16 +1261,20 @@
- bool sign;
- };
-
--struct floating_decimal_128 go_ryu_float_to_fd128(float f);
--struct floating_decimal_128 go_ryu_double_to_fd128(double d);
-+#if 0
-+static struct floating_decimal_128 go_ryu_float_to_fd128(float f);
-+#endif
-+#if 0
-+static struct floating_decimal_128 go_ryu_double_to_fd128(double d);
-+#endif
-
- // According to wikipedia (https://en.wikipedia.org/wiki/Long_double), this likely only works on
- // x86 with specific compilers (clang?). May need an ifdef.
--struct floating_decimal_128 go_ryu_long_double_to_fd128(long double d);
-+static struct floating_decimal_128 go_ryu_long_double_to_fd128(long double d);
-
- // Converts the given binary floating point number to the shortest decimal floating point number
- // that still accurately represents it.
--struct floating_decimal_128 go_ryu_generic_binary_to_decimal(
-+static struct floating_decimal_128 go_ryu_generic_binary_to_decimal(
- const __uint128_t bits, const uint32_t mantissaBits, const uint32_t exponentBits, const bool explicitLeadingBit);
-
- // Converts the given decimal floating point number to a string, writing to result, and returning
-@@ -1322,7 +1284,7 @@
- // Maximal char buffer requirement:
- // sign + mantissa digits + decimal dot + 'E' + exponent sign + exponent digits
- // = 1 + 39 + 1 + 1 + 1 + 10 = 53
--int go_ryu_generic_to_chars(const struct floating_decimal_128 v, char* const result);
-+static int go_ryu_generic_to_chars(const struct floating_decimal_128 v, char* const result);
-
- #ifdef __cplusplus
- }
-@@ -1330,7 +1292,9 @@
-
- #endif // RYU_GENERIC_128_H
- // End of file ryu_generic_128.h imported from ryu
-+#endif // GOFFICE_WITH_LONG_DOUBLE
-
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- // File generic_128.h imported from ryu
- // Copyright 2018 Ulf Adams
- //
-@@ -1852,7 +1816,9 @@
-
- #endif // RYU_GENERIC128_H
- // End of file generic_128.h imported from ryu
-+#endif // GOFFICE_WITH_LONG_DOUBLE
-
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- // File generic_128.c imported from ryu
- // Copyright 2018 Ulf Adams
- //
-@@ -1903,25 +1869,29 @@
- #define FLOAT_MANTISSA_BITS 23
- #define FLOAT_EXPONENT_BITS 8
-
--struct floating_decimal_128 go_ryu_float_to_fd128(float f) {
-+#if 0
-+static struct floating_decimal_128 go_ryu_float_to_fd128(float f) {
- uint32_t bits = 0;
- memcpy(&bits, &f, sizeof(float));
- return go_ryu_generic_binary_to_decimal(bits, FLOAT_MANTISSA_BITS, FLOAT_EXPONENT_BITS, false);
- }
-+#endif
-
- #define DOUBLE_MANTISSA_BITS 52
- #define DOUBLE_EXPONENT_BITS 11
-
--struct floating_decimal_128 go_ryu_double_to_fd128(double d) {
-+#if 0
-+static struct floating_decimal_128 go_ryu_double_to_fd128(double d) {
- uint64_t bits = 0;
- memcpy(&bits, &d, sizeof(double));
- return go_ryu_generic_binary_to_decimal(bits, DOUBLE_MANTISSA_BITS, DOUBLE_EXPONENT_BITS, false);
- }
-+#endif
-
- #define LONG_DOUBLE_MANTISSA_BITS 64
- #define LONG_DOUBLE_EXPONENT_BITS 15
-
--struct floating_decimal_128 go_ryu_long_double_to_fd128(long double d) {
-+static struct floating_decimal_128 go_ryu_long_double_to_fd128(long double d) {
- uint128_t bits = 0;
- memcpy(&bits, &d, sizeof(long double));
- #ifdef RYU_DEBUG
-@@ -1934,7 +1904,7 @@
- return go_ryu_generic_binary_to_decimal(bits, LONG_DOUBLE_MANTISSA_BITS, LONG_DOUBLE_EXPONENT_BITS, true);
- }
-
--struct floating_decimal_128 go_ryu_generic_binary_to_decimal(
-+static struct floating_decimal_128 go_ryu_generic_binary_to_decimal(
- const uint128_t bits, const uint32_t mantissaBits, const uint32_t exponentBits, const bool explicitLeadingBit) {
- #ifdef RYU_DEBUG
- printf("IN=");
-@@ -2147,7 +2117,7 @@
- return fd.sign + 8;
- }
-
--int go_ryu_generic_to_chars(const struct floating_decimal_128 v, char* const result) {
-+static int go_ryu_generic_to_chars(const struct floating_decimal_128 v, char* const result) {
- if (v.exponent == FD128_EXCEPTIONAL_EXPONENT) {
- return copy_special_strl(result, v);
- }
-@@ -2200,9 +2170,12 @@
- return index;
- }
- // End of file generic_128.c imported from ryu
-+#endif // GOFFICE_WITH_LONG_DOUBLE
-
-
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- int go_ryu_ld2s_buffered_n (long double d, char *dst) {
- struct floating_decimal_128 fd128 = go_ryu_long_double_to_fd128(d);
- return go_ryu_generic_to_chars(fd128, dst);
- }
-+#endif
diff --git a/libraries/goffice/patches/go-ryu.h.patch b/libraries/goffice/patches/go-ryu.h.patch
deleted file mode 100644
index 623da14e36..0000000000
--- a/libraries/goffice/patches/go-ryu.h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- goffice/math/go-ryu.h 2023-05-20 19:48:32.000000000 -0300
-+++ goffice/math/go-ryu.h.patched 2023-12-27 19:28:35.623167312 -0400
-@@ -9,7 +9,9 @@
- /* ------------------------------------------------------------------------- */
-
- int go_ryu_d2s_buffered_n (double d, char *dst);
-+#ifdef GOFFICE_WITH_LONG_DOUBLE
- int go_ryu_ld2s_buffered_n (long double d, char *dst);
-+#endif
-
- /* ------------------------------------------------------------------------- */
-
diff --git a/libraries/grpc/grpc.SlackBuild b/libraries/grpc/grpc.SlackBuild
index a8b5061c8e..981e72a85d 100644
--- a/libraries/grpc/grpc.SlackBuild
+++ b/libraries/grpc/grpc.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=grpc
-VERSION=${VERSION:-1.62.1}
+VERSION=${VERSION:-1.63.0}
OPENCENSUS_VERSION=${OPENCENSUS_VERSION:-0.3.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -103,14 +103,11 @@ cmake -Bbuild \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DgRPC_BUILD_TESTS=OFF \
-DgRPC_BUILD_CODEGEN=ON \
- -DgRPC_BUILD_CSHARP_EXT=ON \
- -DgRPC_BACKWARDS_COMPATIBILITY_MODE=OFF \
-DgRPC_ZLIB_PROVIDER='package' \
-DgRPC_CARES_PROVIDER='package' \
-DgRPC_RE2_PROVIDER='package' \
-DgRPC_SSL_PROVIDER='package' \
-DgRPC_PROTOBUF_PROVIDER='package' \
- -DgRPC_PROTOBUF_PACKAGE_TYPE='MODULE' \
-DgRPC_BENCHMARK_PROVIDER:STRING='package' \
-DgRPC_ABSL_PROVIDER:STRING='package' \
-DgRPC_USE_PROTO_LITE=OFF \
diff --git a/libraries/grpc/grpc.info b/libraries/grpc/grpc.info
index a987421e33..a5342238d1 100644
--- a/libraries/grpc/grpc.info
+++ b/libraries/grpc/grpc.info
@@ -1,9 +1,9 @@
PRGNAM="grpc"
-VERSION="1.62.1"
+VERSION="1.63.0"
HOMEPAGE="https://grpc.io/"
-DOWNLOAD="https://github.com/grpc/grpc/archive/v1.62.1/grpc-1.62.1.tar.gz \
+DOWNLOAD="https://github.com/grpc/grpc/archive/v1.63.0/grpc-1.63.0.tar.gz \
https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0/opencensus-proto-0.3.0.tar.gz"
-MD5SUM="e1d5a5152303a7edb48bdf5f60a22c04 \
+MD5SUM="a7a4cd8ce187c4a49d9498b3fcd148b2 \
0b208800a68548cbf2d4bff763c050a2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/libraries/gtk-session-lock/README b/libraries/gtk-session-lock/README
new file mode 100644
index 0000000000..b4c374bded
--- /dev/null
+++ b/libraries/gtk-session-lock/README
@@ -0,0 +1,5 @@
+gtk-session-lock (Wayland GTK3 session-lock protocol)
+
+This is a library to use GTK 3 to build screen lockers using the
+secure ext-session-lock-v1 protocol. This Library is compatible with
+C, C++ and any language that supports GObject introspection files.
diff --git a/libraries/gtk-session-lock/gtk-session-lock.SlackBuild b/libraries/gtk-session-lock/gtk-session-lock.SlackBuild
new file mode 100644
index 0000000000..055cbc3ca1
--- /dev/null
+++ b/libraries/gtk-session-lock/gtk-session-lock.SlackBuild
@@ -0,0 +1,111 @@
+#!/bin/bash
+
+# Slackware build script for gtk-session-lock
+
+# Copyright 2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=gtk-session-lock
+VERSION=${VERSION:-0.2.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p meson-build
+cd meson-build
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ meson setup .. \
+ --buildtype=release \
+ --infodir=/usr/info \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --prefix=/usr \
+ --sysconfdir=/etc
+
+"${NINJA:=ninja}"
+ DESTDIR=$PKG $NINJA install
+cd ..
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.md LICENSE_* compatibility.md README.md release_process.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/libraries/gtk-session-lock/gtk-session-lock.info b/libraries/gtk-session-lock/gtk-session-lock.info
new file mode 100644
index 0000000000..bf058b8350
--- /dev/null
+++ b/libraries/gtk-session-lock/gtk-session-lock.info
@@ -0,0 +1,10 @@
+PRGNAM="gtk-session-lock"
+VERSION="0.2.0"
+HOMEPAGE="http://github.com/Cu3PO42/gtk-session-lock/"
+DOWNLOAD="https://github.com/Cu3PO42/gtk-session-lock/archive/v0.2.0/gtk-session-lock-0.2.0.tar.gz"
+MD5SUM="6c9efb18c461ce91ac05d2e5a7b861e3"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Jay Lanagan"
+EMAIL="j@lngn.net"
diff --git a/libraries/gtk-session-lock/slack-desc b/libraries/gtk-session-lock/slack-desc
new file mode 100644
index 0000000000..6e60b55455
--- /dev/null
+++ b/libraries/gtk-session-lock/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+gtk-session-lock: gtk-session-lock (Wayland GTK3 session-lock protocol)
+gtk-session-lock:
+gtk-session-lock: This is a library to use GTK 3 to build screen lockers using the
+gtk-session-lock: secure ext-session-lock-v1 protocol. This Library is compatible with
+gtk-session-lock: C, C++ and any language that supports GObject introspection files.
+gtk-session-lock:
+gtk-session-lock: Homepage: https://github.com/Cu3PO42/gtk-session-lock
+gtk-session-lock:
+gtk-session-lock:
+gtk-session-lock:
+gtk-session-lock:
diff --git a/libraries/htslib/htslib.SlackBuild b/libraries/htslib/htslib.SlackBuild
index b27ea38502..d88f89c846 100644
--- a/libraries/htslib/htslib.SlackBuild
+++ b/libraries/htslib/htslib.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=htslib
-VERSION=${VERSION:-1.19.1}
+VERSION=${VERSION:-1.20}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/htslib/htslib.info b/libraries/htslib/htslib.info
index dd142db7c4..fb49fe4935 100644
--- a/libraries/htslib/htslib.info
+++ b/libraries/htslib/htslib.info
@@ -1,8 +1,8 @@
PRGNAM="htslib"
-VERSION="1.19.1"
+VERSION="1.20"
HOMEPAGE="http://www.htslib.org"
-DOWNLOAD="https://github.com/samtools/htslib/releases/download/1.19.1/htslib-1.19.1.tar.bz2"
-MD5SUM="f9b2f75e1e9ec6cc5c1e204d56fbee9e"
+DOWNLOAD="https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2"
+MD5SUM="127cbea4e9a8c084fb09c3fd24bd825d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libbass/libbass.info b/libraries/libbass/libbass.info
index 6079096f0c..63193d59d0 100644
--- a/libraries/libbass/libbass.info
+++ b/libraries/libbass/libbass.info
@@ -2,7 +2,7 @@ PRGNAM="libbass"
VERSION="2.4.17"
HOMEPAGE="https://www.un4seen.com"
DOWNLOAD="http://www.un4seen.com/files/bass24-linux.zip"
-MD5SUM="a9ea0bca8e1da1d3759cc0d0dc7e6bbe"
+MD5SUM="91b04cdc2f29c79ff9f6108b8aa33486"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libbassmidi/libbassmidi.info b/libraries/libbassmidi/libbassmidi.info
index 3e186a9f19..cde021b54d 100644
--- a/libraries/libbassmidi/libbassmidi.info
+++ b/libraries/libbassmidi/libbassmidi.info
@@ -1,7 +1,7 @@
PRGNAM="libbassmidi"
VERSION="2.4.14.1"
HOMEPAGE="https://www.un4seen.com"
-DOWNLOAD="http://www.un4seen.com/files/bassmidi24-linux.zip"
+DOWNLOAD="https://slackware.uk/sbosrcarch/by-md5/4/9/4985968621722888acbb639de9cffd06/bassmidi24-linux.zip"
MD5SUM="4985968621722888acbb639de9cffd06"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/libraries/libbpg/README b/libraries/libbpg/README
index d5aa204430..31f6a26015 100644
--- a/libraries/libbpg/README
+++ b/libraries/libbpg/README
@@ -5,12 +5,12 @@ browsers with small javascript decoder.It is based on
the subset of HEVC Open Video Compression Standard.
An HTML demonstration is available
-in /usr/doc/libbpg-0e2aadb_20180428/html/index.html
+in /usr/doc/libbpg-0.9.8/html/index.html
you can access it by using the Falkon web browser or
using chrome with --allow-file-access-from-files option
The BPG file format is specified in
-/usr/doc/libbpg-0e2aadb_20180428/doc/bpg_spec.txt.
+/usr/doc/libbpg-0.9.8/doc/bpg_spec.txt.
This is an optional dependency for VLC media player.
It is supported only on 64-bit platforms only.
diff --git a/libraries/libbpg/libbpg.SlackBuild b/libraries/libbpg/libbpg.SlackBuild
index 7278baacc7..9b33550520 100644
--- a/libraries/libbpg/libbpg.SlackBuild
+++ b/libraries/libbpg/libbpg.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libbpg
-# Copyright 2022 Vijay Marcel
+# Copyright 2022-2024 Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libbpg
-VERSION=${VERSION:-0e2aadb_20180428}
+VERSION=${VERSION:-0.9.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-COMMIT=${COMMIT:-0e2aadbe40fd8b962440caa51a52c558ccdbc791}
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -39,9 +39,6 @@ case "$( uname -m )" in
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -52,13 +49,13 @@ PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKCFLAGS="-march=i586 -mtune=i686 -pipe -O2 -fPIC"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ SLKCFLAGS="-march=i686 -mtune=i686 -pipe -O2 -fPIC"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-march=x86-64 -mtune=generic -pipe -O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
@@ -72,8 +69,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$COMMIT.tar.gz
-cd $PRGNAM-$COMMIT
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -87,7 +84,7 @@ CXXFLAGS="$SLKCFLAGS" \
sed -i 's/$(CMAKE_OPTS)/$(CMAKE_OPTS) -DENABLE_LIBNUMA=OFF/' "Makefile"
sed -i 's/^CFLAGS+=-I.$/CFLAGS+=-I. -fPIC/' "Makefile"
-make USE_JCTVC=y USE_JCTVC_HIGH_BIT_DEPTH=y USE_X265=y USE_BPGVIEW=y prefix=/usr
+CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" make USE_JCTVC=y USE_JCTVC_HIGH_BIT_DEPTH=y USE_X265=y USE_BPGVIEW=y prefix=/usr
install -Dm755 bpgdec "$PKG/usr/bin/bpgdec"
install -Dm755 bpgenc "$PKG/usr/bin/bpgenc"
diff --git a/libraries/libbpg/libbpg.info b/libraries/libbpg/libbpg.info
index 5846e2e9d9..d9c8f9dd74 100644
--- a/libraries/libbpg/libbpg.info
+++ b/libraries/libbpg/libbpg.info
@@ -1,10 +1,10 @@
PRGNAM="libbpg"
-VERSION="0e2aadb_20180428"
-HOMEPAGE="http://bellard.org/bpg/"
+VERSION="0.9.8"
+HOMEPAGE="https://bellard.org/bpg/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/mirrorer/libbpg/archive/0e2aadb/libbpg-0e2aadbe40fd8b962440caa51a52c558ccdbc791.tar.gz"
-MD5SUM_x86_64="e1c94ee36488fb989a3b1a2f79821f4b"
+DOWNLOAD_x86_64="https://bellard.org/bpg/libbpg-0.9.8.tar.gz"
+MD5SUM_x86_64="1c8258bc6de26bbae7c688944a2023ac"
REQUIRES=""
MAINTAINER="Vijay Marcel"
EMAIL="vijaymarcel@outlook.com"
diff --git a/libraries/libcpuid/libcpuid.SlackBuild b/libraries/libcpuid/libcpuid.SlackBuild
index 46c85264ab..f5aed0b7fe 100644
--- a/libraries/libcpuid/libcpuid.SlackBuild
+++ b/libraries/libcpuid/libcpuid.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libcpuid
-VERSION=${VERSION:-0.6.4}
+VERSION=${VERSION:-0.6.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/libcpuid/libcpuid.info b/libraries/libcpuid/libcpuid.info
index 55a61967b6..0ce6795494 100644
--- a/libraries/libcpuid/libcpuid.info
+++ b/libraries/libcpuid/libcpuid.info
@@ -1,8 +1,8 @@
PRGNAM="libcpuid"
-VERSION="0.6.4"
+VERSION="0.6.5"
HOMEPAGE="http://libcpuid.sourceforge.net"
-DOWNLOAD="https://github.com/anrieff/libcpuid/archive/v0.6.4/libcpuid-0.6.4.tar.gz"
-MD5SUM="dad029ee90ed683ee07bf83a2b32304d"
+DOWNLOAD="https://github.com/anrieff/libcpuid/archive/v0.6.5/libcpuid-0.6.5.tar.gz"
+MD5SUM="034584d695e8df67d544c571c98c9467"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libfabric/changelog b/libraries/libfabric/changelog
index 0e7e63095c..936fd485a4 100644
--- a/libraries/libfabric/changelog
+++ b/libraries/libfabric/changelog
@@ -18,3 +18,7 @@ on x86_64 platform only.
19/02/2024:
Updated to version 1.20.1
+
+23/04/2024:
+
+Updated to version 1.21.0
diff --git a/libraries/libfabric/libfabric.SlackBuild b/libraries/libfabric/libfabric.SlackBuild
index 196598c58a..6043fa3371 100644
--- a/libraries/libfabric/libfabric.SlackBuild
+++ b/libraries/libfabric/libfabric.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libfabric
-VERSION=${VERSION:-1.20.1}
+VERSION=${VERSION:-1.21.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -81,6 +81,7 @@ CXXFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--enable-shared \
--with-valgrind \
+ --disable-static \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
diff --git a/libraries/libfabric/libfabric.info b/libraries/libfabric/libfabric.info
index 8462d1dc4e..e8b5d73c79 100644
--- a/libraries/libfabric/libfabric.info
+++ b/libraries/libfabric/libfabric.info
@@ -1,10 +1,10 @@
PRGNAM="libfabric"
-VERSION="1.20.1"
+VERSION="1.21.0"
HOMEPAGE="https://libfabric.org/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/ofiwg/libfabric/archive/v1.20.1/libfabric-1.20.1.tar.gz"
-MD5SUM_x86_64="1d94cdfea3bcbac8cd9fc49496c48af4"
+DOWNLOAD_x86_64="https://github.com/ofiwg/libfabric/archive/v1.21.0/libfabric-1.21.0.tar.gz"
+MD5SUM_x86_64="43e7a7e473a9afc7b5af88fe56f06d17"
REQUIRES="numactl rdma-core valgrind"
MAINTAINER="Vijay Marcel"
EMAIL="vijaymarcel@outlook.com"
diff --git a/libraries/libfaketime/libfaketime.SlackBuild b/libraries/libfaketime/libfaketime.SlackBuild
index 70ce838f4a..1b335e33aa 100644
--- a/libraries/libfaketime/libfaketime.SlackBuild
+++ b/libraries/libfaketime/libfaketime.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libfaketime
-# Copyright 2016-2021 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
+# Copyright 2016-2024 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libfaketime
-VERSION=${VERSION:-0.9.9}
+VERSION=${VERSION:-0.9.10}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/libfaketime/libfaketime.info b/libraries/libfaketime/libfaketime.info
index 6b7bed9c56..f1b7ff542f 100644
--- a/libraries/libfaketime/libfaketime.info
+++ b/libraries/libfaketime/libfaketime.info
@@ -1,8 +1,8 @@
PRGNAM="libfaketime"
-VERSION="0.9.9"
+VERSION="0.9.10"
HOMEPAGE="https://github.com/wolfcw/libfaketime"
-DOWNLOAD="https://github.com/wolfcw/libfaketime/archive/v0.9.9/libfaketime-0.9.9.tar.gz"
-MD5SUM="1f784c9c0ec7807b9d1107d1730dbb41"
+DOWNLOAD="https://github.com/wolfcw/libfaketime/archive/v0.9.10/libfaketime-0.9.10.tar.gz"
+MD5SUM="bbeaa43f514fc8e637e5efdac53e2671"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libfm/README b/libraries/libfm/README
index 4b3684e8a7..d8dc092950 100644
--- a/libraries/libfm/README
+++ b/libraries/libfm/README
@@ -3,9 +3,9 @@ giving a convenient higher-level API.
You can choose which version of gtk the library will build against:
- GTK=2 link with gtk+2 (default)
- GTK=3 link with gtk+3
- GTK=0 don't link against gtk at all
+ GTK3=yes link with gtk+3 (default)
+ GTK3=no link with gtk+2
+ GTK3=- don't link against gtk at all
Pass the script the parameter you prefer, like
- GTK=3 ./libfm.SlackBuild
+ GTK3=no ./libfm.SlackBuild
diff --git a/libraries/libfm/libfm.SlackBuild b/libraries/libfm/libfm.SlackBuild
index 0be4336787..99a22733f4 100644
--- a/libraries/libfm/libfm.SlackBuild
+++ b/libraries/libfm/libfm.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for libfm
# Copyright 2010 Chris Abela <chris.abela@maltats.com>
-# Copyright 2013-2021 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2013-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libfm
VERSION=${VERSION:-1.3.2}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -39,9 +39,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -65,13 +62,10 @@ else
LIBDIRSUFFIX=""
fi
-# Enable custom actions if we have vala available
-if [ -h /usr/bin/vapigen ]; then actions=""; else actions="--disable-actions"; fi
-
-case "$GTK" in
- 3) gtk="--with-gtk=3 --enable-gtk-doc" ;;
- 0) gtk="--without-gtk" ;;
- *) gtk="--with-gtk=2 --enable-gtk-doc" ;;
+case "${GTK3:-yes}" in
+ "no") gtk="--with-gtk=2 --enable-gtk-doc" ;;
+ "-") gtk="--without-gtk" ;;
+ *) gtk="--with-gtk=3 --enable-gtk-doc" ;;
esac
set -e
@@ -102,7 +96,6 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-static=no \
--enable-udisks \
$gtk \
- $actions \
--build=$ARCH-slackware-linux
make
@@ -117,8 +110,10 @@ make install-strip DESTDIR=$PKG
cd $PKG/usr/lib$LIBDIRSUFFIX
rm -f libfm-extra.so* pkgconfig/libfm-extra.pc libfm-extra.la )
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+if [ -d $PKG/usr/man ]; then
+ find $PKG/usr/man -type f -exec gzip -9 {} \;
+ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+fi
# add handlers for terminal and archiver from LXDE components to the default config
sed -i -e 's|\[ui\]|terminal=lxterminal -e %s\narchiver=file-roller %s\n\n[ui]|' \
diff --git a/libraries/libgusb/libgusb.SlackBuild b/libraries/libgusb/libgusb.SlackBuild
index 5154f86a00..519a936acf 100644
--- a/libraries/libgusb/libgusb.SlackBuild
+++ b/libraries/libgusb/libgusb.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libgusb
-# Copyright 2016-2023 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2016-2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libgusb
-VERSION=${VERSION:-0.4.8}
+VERSION=${VERSION:-0.4.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/libgusb/libgusb.info b/libraries/libgusb/libgusb.info
index 8404cdd1c9..23dba9393a 100644
--- a/libraries/libgusb/libgusb.info
+++ b/libraries/libgusb/libgusb.info
@@ -1,8 +1,8 @@
PRGNAM="libgusb"
-VERSION="0.4.8"
+VERSION="0.4.9"
HOMEPAGE="https://github.com/hughsie/libgusb"
-DOWNLOAD="https://github.com/hughsie/libgusb/releases/download/0.4.8/libgusb-0.4.8.tar.xz"
-MD5SUM="edc0715ded0b886c063189deef94c754"
+DOWNLOAD="https://github.com/hughsie/libgusb/releases/download/0.4.9/libgusb-0.4.9.tar.xz"
+MD5SUM="354a3227334991ea4e924843c144bd82"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch b/libraries/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
new file mode 100644
index 0000000000..e3f337419f
--- /dev/null
+++ b/libraries/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
@@ -0,0 +1,22 @@
+From a911b26a902c5f89fee2dc20ac4dfaafcb8144ec Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <Lastique@users.noreply.github.com>
+Date: Fri, 15 Mar 2024 17:46:48 +0300
+Subject: [PATCH] Fix compilation with libsvtav1 2.0.0.
+
+---
+ libheif/plugins/encoder_svt.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libheif/plugins/encoder_svt.cc b/libheif/plugins/encoder_svt.cc
+index 4597d7b8fc..1ff3bce2d5 100644
+--- a/libheif/plugins/encoder_svt.cc
++++ b/libheif/plugins/encoder_svt.cc
+@@ -646,7 +646,7 @@ struct heif_error svt_encode_image(void* encoder_raw, const struct heif_image* i
+
+ if (nclx) {
+ svt_config.color_description_present_flag = true;
+-#if SVT_AV1_VERSION_MAJOR == 1
++#if SVT_AV1_VERSION_MAJOR >= 1
+ svt_config.color_primaries = static_cast<EbColorPrimaries>(nclx->color_primaries);
+ svt_config.transfer_characteristics = static_cast<EbTransferCharacteristics>(nclx->transfer_characteristics);
+ svt_config.matrix_coefficients = static_cast<EbMatrixCoefficients>(nclx->matrix_coefficients);
diff --git a/libraries/libheif/libheif.SlackBuild b/libraries/libheif/libheif.SlackBuild
index 48456dfbac..b961a74b1e 100644
--- a/libraries/libheif/libheif.SlackBuild
+++ b/libraries/libheif/libheif.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libheif
VERSION=${VERSION:-1.17.6}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -76,6 +76,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+patch -p1 < $CWD/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
+
mkdir -p build
cd build
cmake \
diff --git a/libraries/libliftoff/libliftoff.SlackBuild b/libraries/libliftoff/libliftoff.SlackBuild
index a27bf71e70..a4d25ff895 100644
--- a/libraries/libliftoff/libliftoff.SlackBuild
+++ b/libraries/libliftoff/libliftoff.SlackBuild
@@ -67,9 +67,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-v$VERSION-$COMMIT
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || tar xvf $CWD/$VERSION.tar.gz
-cd $PRGNAM-v$VERSION-$COMMIT
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/libraries/libliftoff/libliftoff.info b/libraries/libliftoff/libliftoff.info
index 4f240361bd..126a9a6352 100644
--- a/libraries/libliftoff/libliftoff.info
+++ b/libraries/libliftoff/libliftoff.info
@@ -1,7 +1,7 @@
PRGNAM="libliftoff"
VERSION="0.4.1"
HOMEPAGE="https://gitlab.freedesktop.org/emersion/libliftoff"
-DOWNLOAD="https://gitlab.freedesktop.org/emersion/libliftoff/-/archive/v0.4.1/libliftoff-0.4.1.tar.gz"
+DOWNLOAD="https://gitlab.freedesktop.org/emersion/libliftoff/-/releases/v0.4.1/downloads/libliftoff-0.4.1.tar.gz"
MD5SUM="5c5ef466a63cf7e00822341e424d7412"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/libraries/libqtpas/changelog b/libraries/libqtpas/changelog
index 156ad52fa6..24df36ea70 100644
--- a/libraries/libqtpas/changelog
+++ b/libraries/libqtpas/changelog
@@ -24,3 +24,7 @@ Bumped the build no.
Upgraded to version 2.9 corresponding to the lazarus
version 2.2.6-0 in SBo.
+
+26/04/2024:
+
+Update to use lazarus version 3.2-0
diff --git a/libraries/libqtpas/libqtpas.SlackBuild b/libraries/libqtpas/libqtpas.SlackBuild
index ee0160a08a..b42fadb75f 100644
--- a/libraries/libqtpas/libqtpas.SlackBuild
+++ b/libraries/libqtpas/libqtpas.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=${SRCNAM:-lazarus}
-SRCVER=${SRCVER:-3.0}
+SRCVER=${SRCVER:-3.2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -61,7 +61,7 @@ elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="$PREPROCESS -march=i686 -mtune=i686 -O2 -fPIC $HARDENING"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="$PREPROCESS -march=x86-64 -mtune=native -O2 -fPIC $HARDENING"
+ SLKCFLAGS="$PREPROCESS -march=x86-64 -mtune=generic -O2 -fPIC $HARDENING"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
diff --git a/libraries/libqtpas/libqtpas.info b/libraries/libqtpas/libqtpas.info
index 6e36b91df9..ec0dc8139a 100644
--- a/libraries/libqtpas/libqtpas.info
+++ b/libraries/libqtpas/libqtpas.info
@@ -1,8 +1,8 @@
PRGNAM="libqtpas"
VERSION="2.15"
HOMEPAGE="http://www.lazarus.freepascal.org/"
-DOWNLOAD="http://downloads.sourceforge.net/lazarus/lazarus-3.0-0.tar.gz"
-MD5SUM="d4130b835451e3a61df3a9d9603e8063"
+DOWNLOAD="http://downloads.sourceforge.net/lazarus/lazarus-3.2-0.tar.gz"
+MD5SUM="75b871d4d19d08570d2f282b0d8fed0e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/librepfunc/librepfunc.SlackBuild b/libraries/librepfunc/librepfunc.SlackBuild
index 0f89fe34bc..2f4ec2353f 100644
--- a/libraries/librepfunc/librepfunc.SlackBuild
+++ b/libraries/librepfunc/librepfunc.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=librepfunc
-VERSION=${VERSION:-1.8.1}
+VERSION=${VERSION:-1.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/librepfunc/librepfunc.info b/libraries/librepfunc/librepfunc.info
index 3c47205f09..af3a723875 100644
--- a/libraries/librepfunc/librepfunc.info
+++ b/libraries/librepfunc/librepfunc.info
@@ -1,8 +1,8 @@
PRGNAM="librepfunc"
-VERSION="1.8.1"
+VERSION="1.10.0"
HOMEPAGE="https://github.com/wirbel-at-vdr-portal/librepfunc"
-DOWNLOAD="https://github.com/wirbel-at-vdr-portal/librepfunc/archive/1.8.1/librepfunc-1.8.1.tar.gz"
-MD5SUM="8087573812dd396efb55cd0702b3faa8"
+DOWNLOAD="https://github.com/wirbel-at-vdr-portal/librepfunc/archive/1.10.0/librepfunc-1.10.0.tar.gz"
+MD5SUM="b1f52cb230907416628af27539e11923"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libtecla/libtecla.SlackBuild b/libraries/libtecla/libtecla.SlackBuild
index c8d986e2f1..52476b6339 100644
--- a/libraries/libtecla/libtecla.SlackBuild
+++ b/libraries/libtecla/libtecla.SlackBuild
@@ -93,8 +93,8 @@ CXXFLAGS="$SLKCFLAGS" \
# Remove static
sed -i "s|static shared|shared|" Makefile
-make
-make install prefix="$PKG/usr" LIBDIR="$PKG/usr/lib${LIBDIRSUFFIX}" MANDIR="$PKG/usr/man"
+make -j1
+make -j1 install prefix="$PKG/usr" LIBDIR="$PKG/usr/lib${LIBDIRSUFFIX}" MANDIR="$PKG/usr/man"
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
diff --git a/libraries/libtorch-cxx11-abi-shared-with-deps/README b/libraries/libtorch-cxx11-abi-shared-with-deps/README
deleted file mode 100644
index 513950f231..0000000000
--- a/libraries/libtorch-cxx11-abi-shared-with-deps/README
+++ /dev/null
@@ -1,4 +0,0 @@
-Tensors and Dynamic neural networks in Python with strong GPU
-acceleration.
-
-These are precompiled libraries
diff --git a/libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.info b/libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.info
deleted file mode 100644
index 1bd175634b..0000000000
--- a/libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libtorch-cxx11-abi-shared-with-deps"
-VERSION="2.1.1"
-HOMEPAGE="https://pytorch.org/"
-DOWNLOAD="https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.1.1%2Bcpu.zip"
-MD5SUM="9209a7dba2ab08bea5a2b59b5ae36088"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Johannes Schoepfer"
-EMAIL="slackbuilds@schoepfer.info"
diff --git a/libraries/libtorch-cxx11-abi-shared-with-deps/slack-desc b/libraries/libtorch-cxx11-abi-shared-with-deps/slack-desc
deleted file mode 100644
index f7792a3a2e..0000000000
--- a/libraries/libtorch-cxx11-abi-shared-with-deps/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libtorch-cxx11-abi-shared-with-deps: libtorch-cxx11-abi-shared-with-deps (Tensors and neural networks)
-libtorch-cxx11-abi-shared-with-deps:
-libtorch-cxx11-abi-shared-with-deps: Tensors and Dynamic neural networks in Python with strong GPU
-libtorch-cxx11-abi-shared-with-deps: acceleration.
-libtorch-cxx11-abi-shared-with-deps:
-libtorch-cxx11-abi-shared-with-deps: These are precompiled libraries.
-libtorch-cxx11-abi-shared-with-deps:
-libtorch-cxx11-abi-shared-with-deps:
-libtorch-cxx11-abi-shared-with-deps:
-libtorch-cxx11-abi-shared-with-deps: https://pytorch.org/
-libtorch-cxx11-abi-shared-with-deps:
diff --git a/libraries/libxmlb/libxmlb.SlackBuild b/libraries/libxmlb/libxmlb.SlackBuild
index 026fdc3ffb..b7cf8065f1 100644
--- a/libraries/libxmlb/libxmlb.SlackBuild
+++ b/libraries/libxmlb/libxmlb.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libxmlb
-VERSION=${VERSION:-0.3.15}
+VERSION=${VERSION:-0.3.19}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -77,6 +77,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Use newer meson
+PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')
+export PYTHONPATH=/opt/python$PYVER/site-packages/
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
meson \
diff --git a/libraries/libxmlb/libxmlb.info b/libraries/libxmlb/libxmlb.info
index 908366a050..3f6c7c61d8 100644
--- a/libraries/libxmlb/libxmlb.info
+++ b/libraries/libxmlb/libxmlb.info
@@ -1,10 +1,10 @@
PRGNAM="libxmlb"
-VERSION="0.3.15"
+VERSION="0.3.19"
HOMEPAGE="https://github.com/hughsie/libxmlb"
-DOWNLOAD="https://github.com/hughsie/libxmlb/archive/0.3.15/libxmlb-0.3.15.tar.gz"
-MD5SUM="8cec7081a7bb4db1eb38d8709d890035"
+DOWNLOAD="https://github.com/hughsie/libxmlb/archive/0.3.19/libxmlb-0.3.19.tar.gz"
+MD5SUM="4a66b1865538868efd902db6a9f27234"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="python3-meson-opt"
MAINTAINER="Andrew Clemons"
EMAIL="andrew.clemons@gmail.com"
diff --git a/libraries/lua-readline/README b/libraries/lua-readline/README
deleted file mode 100644
index 6effa3b8f8..0000000000
--- a/libraries/lua-readline/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This Lua module offers a simple calling interface
-to the GNU Readline/History Library.
-
-Optional Dependency: lua52, lua53.
-Default support for all versions of Lua installed before build.
diff --git a/libraries/lua-readline/lua-readline.SlackBuild b/libraries/lua-readline/lua-readline.SlackBuild
deleted file mode 100644
index f2ec41e0ab..0000000000
--- a/libraries/lua-readline/lua-readline.SlackBuild
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/bash
-
-# Slackware build script for lua-readline
-# Copyright 2021 abooksigun <abooksigun09@gmail.com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cd $(dirname $0) ; CWD=$(pwd)
-
-PRGNAM=lua-readline
-SRCNAM=readline
-VERSION=${VERSION:-2.9}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-PKGTYPE=${PKGTYPE:-tgz}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
-fi
-
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
-cd $SRCNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-LUAVERS="5.1 5.2 5.3 5.4"
-
-for luaver in $LUAVERS
-do
- if [ $luaver != 5.1 ]; then version=$luaver dir=lua$version; fi
- if $(lua$version -v &> /dev/null)
- then
- gcc $SLKCFLAGS -I /usr/include/$dir -c C-readline.c -o C-readline.o
- gcc $SLKCFLAGS -shared -o C-readline.so.$luaver C-readline.o
-
- install -D -m 0755 C-readline.so.$luaver $PKG/usr/lib$LIBDIRSUFFIX/lua/$luaver/C-readline.so
- install -D -m 0644 readline.lua $PKG/usr/share/lua/$luaver/readline.lua
- fi
-done
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp doc/readline.html $PKG/usr/doc/$PRGNAM-$VERSION
-
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/libraries/lua-readline/lua-readline.info b/libraries/lua-readline/lua-readline.info
deleted file mode 100644
index 6c8455a684..0000000000
--- a/libraries/lua-readline/lua-readline.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="lua-readline"
-VERSION="2.9"
-HOMEPAGE="http://www.pjb.com.au/comp/lua/readline.html"
-DOWNLOAD="http://www.pjb.com.au/comp/lua/readline-2.9.tar.gz"
-MD5SUM="9423302e81cad9a2b9f0fbfd0b39b5a8"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="lua-posix"
-MAINTAINER="abooksigun"
-EMAIL="abooksigun09@gmail.com"
diff --git a/libraries/lxqt-build-tools/lxqt-build-tools.SlackBuild b/libraries/lxqt-build-tools/lxqt-build-tools.SlackBuild
index dced673631..9f8403e6ec 100644
--- a/libraries/lxqt-build-tools/lxqt-build-tools.SlackBuild
+++ b/libraries/lxqt-build-tools/lxqt-build-tools.SlackBuild
@@ -4,7 +4,7 @@
#
# Copyright 2016-2017 Edinaldo P. Silva, Rio de Janeiro, Brazil.
# Copyright 2018-2022 Matteo Bernardini, Pisa, Italy.
-# Copyright 2022-2023 Isaac Yu <isaacyu@protonmail.com>
+# Copyright 2022-2024 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
diff --git a/libraries/lxqt-build-tools/lxqt-build-tools.info b/libraries/lxqt-build-tools/lxqt-build-tools.info
index c832f7d827..69a95e8278 100644
--- a/libraries/lxqt-build-tools/lxqt-build-tools.info
+++ b/libraries/lxqt-build-tools/lxqt-build-tools.info
@@ -1,6 +1,6 @@
PRGNAM="lxqt-build-tools"
VERSION="0.13.0"
-HOMEPAGE="https://github.com/lxde/lxqt-build-tools"
+HOMEPAGE="https://github.com/lxqt/lxqt-build-tools"
DOWNLOAD="https://github.com/lxqt/lxqt-build-tools/releases/download/0.13.0/lxqt-build-tools-0.13.0.tar.xz"
MD5SUM="f434042d33af5b47d61afdd6f0677276"
DOWNLOAD_x86_64=""
diff --git a/libraries/lxqt-qtplugin/lxqt-qtplugin.SlackBuild b/libraries/lxqt-qtplugin/lxqt-qtplugin.SlackBuild
index b291015091..8bdfdb7ec8 100644
--- a/libraries/lxqt-qtplugin/lxqt-qtplugin.SlackBuild
+++ b/libraries/lxqt-qtplugin/lxqt-qtplugin.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for lxqt-qtplugin
-# Copyright 2022-2023 Isaac Yu <isaacyu@protonmail.com>
+# Copyright 2022-2024 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxqt-qtplugin
-VERSION=${VERSION:-1.3.0}
+VERSION=${VERSION:-1.4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/lxqt-qtplugin/lxqt-qtplugin.info b/libraries/lxqt-qtplugin/lxqt-qtplugin.info
index 1d3e7fee8f..88d27a54cb 100644
--- a/libraries/lxqt-qtplugin/lxqt-qtplugin.info
+++ b/libraries/lxqt-qtplugin/lxqt-qtplugin.info
@@ -1,8 +1,8 @@
PRGNAM="lxqt-qtplugin"
-VERSION="1.3.0"
+VERSION="1.4.1"
HOMEPAGE="https://github.com/lxqt/lxqt-qtplugin"
-DOWNLOAD="https://github.com/lxqt/lxqt-qtplugin/releases/download/1.3.0/lxqt-qtplugin-1.3.0.tar.xz"
-MD5SUM="569bbb880942c3eeb1b08b8d4115365b"
+DOWNLOAD="https://github.com/lxqt/lxqt-qtplugin/releases/download/1.4.1/lxqt-qtplugin-1.4.1.tar.xz"
+MD5SUM="b2644cd53c16341013b3987077b6fec6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libfm-qt libqtxdg"
diff --git a/libraries/mimalloc/mimalloc.SlackBuild b/libraries/mimalloc/mimalloc.SlackBuild
index 7cde1378c7..8f87d83a0f 100644
--- a/libraries/mimalloc/mimalloc.SlackBuild
+++ b/libraries/mimalloc/mimalloc.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mimalloc
-VERSION=${VERSION:-2.1.2}
+VERSION=${VERSION:-2.1.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/mimalloc/mimalloc.info b/libraries/mimalloc/mimalloc.info
index 55cded1893..79cf6a1b71 100644
--- a/libraries/mimalloc/mimalloc.info
+++ b/libraries/mimalloc/mimalloc.info
@@ -1,8 +1,8 @@
PRGNAM="mimalloc"
-VERSION="2.1.2"
+VERSION="2.1.4"
HOMEPAGE="https://github.com/microsoft/mimalloc"
-DOWNLOAD="https://github.com/microsoft/mimalloc/archive/v2.1.2/mimalloc-2.1.2.tar.gz"
-MD5SUM="5179c8f5cf1237d2300e2d8559a7bc55"
+DOWNLOAD="https://github.com/microsoft/mimalloc/archive/v2.1.4/mimalloc-2.1.4.tar.gz"
+MD5SUM="50f2e6e2bf0e92876bedf95cf5444d43"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/nng/nng.SlackBuild b/libraries/nng/nng.SlackBuild
index b85000e4b5..79e9122276 100644
--- a/libraries/nng/nng.SlackBuild
+++ b/libraries/nng/nng.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nng
-VERSION=${VERSION:-1.6.0}
+VERSION=${VERSION:-1.8.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/nng/nng.info b/libraries/nng/nng.info
index c29dc48122..98339ffc94 100644
--- a/libraries/nng/nng.info
+++ b/libraries/nng/nng.info
@@ -1,8 +1,8 @@
PRGNAM="nng"
-VERSION="1.6.0"
+VERSION="1.8.0"
HOMEPAGE="https://nng.nanomsg.org/"
-DOWNLOAD="https://github.com/nanomsg/nng/archive/v1.6.0/nng-v1.6.0.tar.gz"
-MD5SUM="1af544f3cc51c0d240e3dcd329333264"
+DOWNLOAD="https://github.com/nanomsg/nng/archive/v1.8.0/nng-v1.8.0.tar.gz"
+MD5SUM="6a8857856b9b15f0187ebcc5f7301b5a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/opencl-amd/opencl-amd.info b/libraries/opencl-amd/opencl-amd.info
index 15f6c25ea6..8ff03f005d 100644
--- a/libraries/opencl-amd/opencl-amd.info
+++ b/libraries/opencl-amd/opencl-amd.info
@@ -1,8 +1,8 @@
PRGNAM="opencl-amd"
VERSION="22.20.3"
HOMEPAGE="https://docs.amd.com/bundle/ROCm-Release-Notes-v5.2/page/About_This_Document.html"
-DOWNLOAD="https://repo.radeon.com/amdgpu/22.20.3/ubuntu/pool/main/libd/libdrm-amdgpu/libdrm-amdgpu-amdgpu1_2.4.110.50203-1462318~22.04_amd64.deb"
-MD5SUM="cd291312140d06b001381991c3e6ce24"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
DOWNLOAD_x86_64="https://repo.radeon.com/amdgpu/22.20.3/ubuntu/pool/main/libd/libdrm-amdgpu/libdrm-amdgpu-amdgpu1_2.4.110.50203-1462318~22.04_amd64.deb \
https://repo.radeon.com/rocm/apt/5.2.3/pool/main/r/rocm-core/rocm-core_5.2.3.50203-109_amd64.deb \
https://repo.radeon.com/rocm/apt/5.2.3/pool/main/c/comgr/comgr_2.4.0.50203-109_amd64.deb \
diff --git a/libraries/openvdb/openvdb.info b/libraries/openvdb/openvdb.info
index f27cbec8cb..88e5891ac6 100644
--- a/libraries/openvdb/openvdb.info
+++ b/libraries/openvdb/openvdb.info
@@ -1,10 +1,10 @@
PRGNAM="openvdb"
VERSION="10.0.1"
HOMEPAGE="https://github.com/AcademySoftwareFoundation/openvdb/"
-DOWNLOAD="https://github.com/AcademySoftwareFoundation/openvdb/archive/v10.0.1/openvdb-10.0.1.tar.gz"
-MD5SUM="0239ff0c912a3eac76bd6a4ae1b03522"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/AcademySoftwareFoundation/openvdb/archive/v10.0.1/openvdb-10.0.1.tar.gz"
+MD5SUM_x86_64="0239ff0c912a3eac76bd6a4ae1b03522"
REQUIRES="c-blosc tbb glfw3"
MAINTAINER="Lockywolf"
EMAIL="for_sbo.openvdb_2023-07-12@lockywolf.net"
diff --git a/libraries/openvino/README b/libraries/openvino/README
new file mode 100644
index 0000000000..5370ef436e
--- /dev/null
+++ b/libraries/openvino/README
@@ -0,0 +1,9 @@
+OpenVINO is an open-source toolkit for optimizing and deploying AI
+inference.
+
+Supported hardware:
+https://docs.openvino.ai/2024/about-openvino/system-requirements.html
+
+The dependency oneTBB needs to be compiled with its optional
+dependency hwloc, otherwise libtbbbind-2.5 is missing and openvino
+will fail to build.
diff --git a/libraries/openvino/openvino.SlackBuild b/libraries/openvino/openvino.SlackBuild
new file mode 100644
index 0000000000..e05fe6fbfa
--- /dev/null
+++ b/libraries/openvino/openvino.SlackBuild
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+# Slackware build script for openvino
+
+# Copyright 2024 Johannes Schoepfer, Germany
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=openvino
+VERSION=${VERSION:-2024.1.0}
+VERSION_FLATBUFFERS=24.3.25
+VERSION_ONNX=1.16.0
+VERSION_ITTAPI=3.24.4
+COMMIT_ONEDNN=26633ae49edd4353a29b7170d9fcef6b2d79f4b3
+COMMIT_MLAS=d1bc25ec4660cddd87804fcf03b2411b5dfb2e94
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
+cd $PRGNAM-$VERSION
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} + -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+
+# Flatbuffers from SBo provide broken cmake files(static-lib removed but static-lib-cmake-files not removed)
+(
+cd thirdparty/flatbuffers/
+rmdir flatbuffers
+tar vxf $CWD/flatbuffers-$VERSION_FLATBUFFERS.tar.gz
+ln -s flatbuffers-$VERSION_FLATBUFFERS flatbuffers
+)
+## onnx frontend
+(
+cd thirdparty/onnx/
+rmdir onnx
+tar vxf $CWD/onnx-$VERSION_ONNX.tar.gz
+ln -s onnx-$VERSION_ONNX onnx
+)
+# ittapi
+(
+cd thirdparty/ittapi/
+rmdir ittapi
+tar vxf $CWD/ittapi-$VERSION_ITTAPI.tar.gz
+ln -s ittapi-$VERSION_ITTAPI ittapi
+)
+# mlas for cpu inference device
+(
+cd src/plugins/intel_cpu/thirdparty
+rmdir mlas
+tar vxf $CWD/mlas-$COMMIT_MLAS.tar.gz
+ln -s mlas-$COMMIT_MLAS mlas
+)
+# oneDNN for cpu inference device
+# oneDNN supports 64 bit platforms only
+if [ "$LIBDIRSUFFIX" == 64 ]; then
+ CPU=ON
+ GPU=ON
+ (
+ cd src/plugins/intel_cpu/thirdparty
+ rmdir onednn
+ tar vxf $CWD/oneDNN-$COMMIT_ONEDNN.tar.gz
+ ln -s oneDNN-$COMMIT_ONEDNN onednn
+ )
+ # oneDNN for gpu inference device, original project
+ (
+ cd src/plugins/intel_gpu/thirdparty
+ rmdir onednn_gpu
+ tar vxf $CWD/oneDNN-$COMMIT_ONEDNN.tar.gz
+ ln -s oneDNN-$COMMIT_ONEDNN onednn
+ )
+else
+ CPU=OFF
+ GPU=OFF
+fi
+
+mkdir -p build
+cd build
+ unshare -n cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DCMAKE_INSTALL_PREFIX=/usr/share/openvino \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DONNX_ML=ON \
+ -DENABLE_SYSTEM_SNAPPY=ON \
+ -DENABLE_SYSTEM_TBB=ON \
+ -DENABLE_SYSTEM_PROTOBUF=ON \
+ -DENABLE_SYSTEM_PUGIXML=ON \
+ -DProtobuf_LIBRARY=/usr/lib$LIBDIRSUFFIX/libprotobuf.so \
+ -DENABLE_PROFILING_ITT=ON \
+ -DENABLE_TBBBIND_2_5=OFF \
+ -DENABLE_JS=OFF \
+ -DENABLE_SAMPLES=OFF \
+ -DENABLE_INTEL_CPU=$CPU \
+ -DENABLE_INTEL_GPU=$GPU \
+ -DENABLE_INTEL_NPU=OFF \
+ -DENABLE_ONEDNN_FOR_GPU=OFF \
+ -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
+
+# We don't build samples, so we remove samples stub files
+rm -rf $PKG/usr/share/openvino/samples
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/libraries/openvino/openvino.info b/libraries/openvino/openvino.info
new file mode 100644
index 0000000000..01a9c32ad4
--- /dev/null
+++ b/libraries/openvino/openvino.info
@@ -0,0 +1,20 @@
+PRGNAM="openvino"
+VERSION="2024.1.0"
+HOMEPAGE="https://github.com/openvinotoolkit/openvino/"
+DOWNLOAD="https://github.com/openvinotoolkit/openvino/archive/2024.1.0/openvino-2024.1.0.tar.gz \
+ https://github.com/openvinotoolkit/mlas/archive/d1bc25e/mlas-d1bc25ec4660cddd87804fcf03b2411b5dfb2e94.tar.gz \
+ https://github.com/openvinotoolkit/onednn/archive/26633ae/oneDNN-26633ae49edd4353a29b7170d9fcef6b2d79f4b3.tar.gz \
+ https://github.com/google/flatbuffers/archive/v24.3.25/flatbuffers-24.3.25.tar.gz \
+ https://github.com/onnx/onnx/archive/v1.16.0/onnx-1.16.0.tar.gz \
+ https://github.com/intel/ittapi/archive/v3.24.4/ittapi-3.24.4.tar.gz"
+MD5SUM="459481c0b3f7fe3fcc2be799fe413308 \
+ 0e87473410db355fd9251a2e1337dc32 \
+ 2cbdb4f80608959b3c013bab745bb807 \
+ f28f12fc16c72f4e7c22066a35405c3a \
+ 5ef5a7bd4f9dad914bddc3b4335a67cd \
+ aec402d3441bb8ecb9c8e75bab6cc102"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="protobuf3 oneTBB xbyak pugixml snappy pybind11 OpenCL-CLHPP"
+MAINTAINER="Johannes Schoepfer"
+EMAIL="slackbuilds@schoepfer.info"
diff --git a/libraries/openvino/slack-desc b/libraries/openvino/slack-desc
new file mode 100644
index 0000000000..d5180cdf26
--- /dev/null
+++ b/libraries/openvino/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+openvino: openvino (toolkit for optimizing and deploying AI inference)
+openvino:
+openvino: OpenVINO is an open-source toolkit for optimizing and deploying AI
+openvino: inference.
+openvino:
+openvino: Supported hardware:
+openvino: https://docs.openvino.ai/2024/about-openvino/system-requirements.html
+openvino:
+openvino:
+openvino: https://github.com/openvinotoolkit/openvino/
+openvino:
diff --git a/libraries/pcl/pcl.SlackBuild b/libraries/pcl/pcl.SlackBuild
index c99211b384..fad32479ee 100644
--- a/libraries/pcl/pcl.SlackBuild
+++ b/libraries/pcl/pcl.SlackBuild
@@ -4,7 +4,7 @@
# Copyright 2017 Nikolay Nikolov <nikobnikolov[at]gmail[dot]com>
# All rights reserved.
-# Copyright 2019 Chriastoph Willing Brisbane, Australia
+# Copyright 2019-2024 Christoph Willing Sydney, Australia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pcl
-VERSION=${VERSION:-1.12.1}
+VERSION=${VERSION:-1.14.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/pcl/pcl.info b/libraries/pcl/pcl.info
index 02a97014de..5a6657f92c 100644
--- a/libraries/pcl/pcl.info
+++ b/libraries/pcl/pcl.info
@@ -1,8 +1,8 @@
PRGNAM="pcl"
-VERSION="1.12.1"
+VERSION="1.14.0"
HOMEPAGE="http://www.pointclouds.org/"
-DOWNLOAD="https://github.com/PointCloudLibrary/pcl/archive/pcl-1.12.1/pcl-pcl-1.12.1.tar.gz"
-MD5SUM="eb1be79330872f9674c9850bb35023bf"
+DOWNLOAD="https://github.com/PointCloudLibrary/pcl/archive/pcl-1.14.0/pcl-pcl-1.14.0.tar.gz"
+MD5SUM="b0a73380e878837916a782c8ee807ab6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="flann VTK"
diff --git a/libraries/pytorch/README b/libraries/pytorch/README
new file mode 100644
index 0000000000..a27962167a
--- /dev/null
+++ b/libraries/pytorch/README
@@ -0,0 +1,3 @@
+Deep neural networks built on a tape-based autograd system.
+
+This package is a library build, supporting CPU(not GPU).
diff --git a/libraries/pytorch/pytorch.SlackBuild b/libraries/pytorch/pytorch.SlackBuild
new file mode 100644
index 0000000000..76967ea5c5
--- /dev/null
+++ b/libraries/pytorch/pytorch.SlackBuild
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+# Slackware build script for pytorch
+
+# Copyright 2024 Johannes Schoepfer, Germany
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=pytorch
+VERSION=${VERSION:-2.3.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+else
+ SLKCFLAGS="-O2"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf v$PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-v$VERSION.tar.gz
+cd $PRGNAM-v$VERSION
+chown -R root:root .
+chmod -R u+w,go-w,a+rX-st $PKG
+
+# Fix cmake libdir location
+sed -i c10/CMakeLists.txt \
+ -e "s;DESTINATION lib;DESTINATION lib$LIBDIRSUFFIX;g"
+
+mkdir -p build
+cd build
+ unshare -n cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX="/usr" \
+ -DLIBSHM_INSTALL_LIB_SUBDIR="lib$LIBDIRSUFFIX" \
+ -DTORCH_INSTALL_LIB_DIR="lib$LIBDIRSUFFIX" \
+ -DPYTHON_EXECUTABLE=$(which python3) \
+ -DBUILD_TEST=OFF \
+ -DBUILD_CAFFE2=OFF \
+ -DBUILD_CAFFE2_OPS=OFF \
+ -DBUILD_PYTHON=OFF \
+ -DBUILD_CUSTOM_PROTOBUF=OFF \
+ -DUSE_CUDA=OFF \
+ -DUSE_CUDNN=OFF \
+ -DUSE_FBGEMM=OFF \
+ -DUSE_FFMPEG=ON \
+ -DUSE_KINETO=OFF \
+ -DUSE_MKLDNN=OFF \
+ -DUSE_MPI=OFF \
+ -DUSE_NCCL=OFF \
+ -DUSE_NNPACK=OFF \
+ -DUSE_OPENMP=OFF \
+ -DUSE_OPENCL=ON \
+ -DUSE_OPENCV=ON \
+ -DUSE_PTHREADPOOL=OFF \
+ -DUSE_PYTORCH_QNNPACK=OFF \
+ -DUSE_QNNPACK=OFF \
+ -DUSE_SYSTEM_TBB=ON \
+ -DUSE_XNNPACK=OFF \
+ -Wno-dev \
+ -DUSE_DISTRIBUTED=OFF \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=tmpxxx
+
+ mkdir -p $PKG/usr
+ mv tmpxxx/usr/include $PKG/usr
+ mkdir -p $PKG/usr/share
+ mv tmpxxx/usr/share/cmake $PKG/usr/share
+ mkdir -p $PKG/usr/lib$LIBDIRSUFFIX
+ mv tmpxxx/usr/lib$LIBDIRSUFFIX/*.so $PKG/usr/lib$LIBDIRSUFFIX
+cd ..
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE NOTICE README.md RELEASE.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/libraries/pytorch/pytorch.info b/libraries/pytorch/pytorch.info
new file mode 100644
index 0000000000..f8cd244420
--- /dev/null
+++ b/libraries/pytorch/pytorch.info
@@ -0,0 +1,10 @@
+PRGNAM="pytorch"
+VERSION="2.3.0"
+HOMEPAGE="https://pytorch.org/"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/pytorch/pytorch/releases/download/v2.3.0/pytorch-v2.3.0.tar.gz"
+MD5SUM_x86_64="786047d07da744410eb41493a1cd0687"
+REQUIRES="oneTBB protobuf3 OpenBLAS typing-extensions"
+MAINTAINER="Johannes Schoepfer"
+EMAIL="slackbuilds@schoepfer.info"
diff --git a/games/PyLotRO/slack-desc b/libraries/pytorch/slack-desc
index 471a87d1b8..72ee22b524 100644
--- a/games/PyLotRO/slack-desc
+++ b/libraries/pytorch/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-PyLotRO: PyLotRO (Python launcher of Lord of the Rings Online)
-PyLotRO:
-PyLotRO: PyLotRO is a launcher for the Lord of the Rings Online MMO written
-PyLotRO: in Python. It allows patching and beginning the game under Linux
-PyLotRO: when installed in wine.
-PyLotRO: PyLotRO should also work with Dungeons and Dragons Online (DDO).
-PyLotRO:
-PyLotRO: Homepage:
-PyLotRO: https://sites.google.com/site/leeslinuxblog/installing-lotro-in-wine
-PyLotRO:
-PyLotRO:
+pytorch: pytorch (Tensors and Dynamic neural networks in Python)
+pytorch:
+pytorch: Deep neural networks built on a tape-based autograd system.
+pytorch:
+pytorch: This package is a library build, supporting CPU(not GPU).
+pytorch:
+pytorch:
+pytorch:
+pytorch:
+pytorch: https://pytorch.org
+pytorch:
diff --git a/libraries/rapidjson/fix-build-on-gcc7.diff b/libraries/rapidjson/fix-build-on-gcc7.diff
deleted file mode 100644
index d55a477678..0000000000
--- a/libraries/rapidjson/fix-build-on-gcc7.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Nur rapidjson-1.1.0.orig/include/rapidjson/internal/regex.h rapidjson-1.1.0/include/rapidjson/internal/regex.h
---- rapidjson-1.1.0.orig/include/rapidjson/internal/regex.h 2016-08-25 02:59:05.000000000 -0500
-+++ rapidjson-1.1.0/include/rapidjson/internal/regex.h 2017-12-27 01:10:17.765316098 -0600
-@@ -29,6 +29,9 @@
- #ifdef __GNUC__
- RAPIDJSON_DIAG_PUSH
- RAPIDJSON_DIAG_OFF(effc++)
-+#if __GNUC__ >= 7
-+RAPIDJSON_DIAG_OFF(implicit-fallthrough)
-+#endif
- #endif
-
- #ifdef _MSC_VER
diff --git a/libraries/rapidjson/rapidjson.SlackBuild b/libraries/rapidjson/rapidjson.SlackBuild
index e1454d89c6..029cf9421d 100644
--- a/libraries/rapidjson/rapidjson.SlackBuild
+++ b/libraries/rapidjson/rapidjson.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for RapidJson
# Copyright 2017 Andre Barboza, Belo Horizonte - Brazil
+# Copyright 2024 Jeremy Hansen <jebrhansen+SBo@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +30,8 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rapidjson
VERSION=${VERSION:-1.1.0}
-BUILD=${BUILD:-3}
+GTESTVER=${GTESTVER:-ba96d0b1161f540656efdaed035b3c062b60e006}
+BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -72,6 +74,9 @@ cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
+rmdir thirdparty/gtest/
+tar xvf $CWD/googletest-$GTESTVER.tar.gz
+mv googletest-$GTESTVER thirdparty/gtest
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -79,26 +84,27 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
-# Patch for -current but should be harmless on -stable
-patch -p1 < $CWD/fix-build-on-gcc7.diff
-find -name CMakeLists.txt | xargs sed -e 's|-Werror||' -i
+# Fix for gcc7+
+find -name CMakeLists.txt -exec sed -i 's/ -Werror//g' {} +
mkdir -p build
cd build
cmake \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
+ -DDOC_INSTALL_DIR=/usr/doc/$PRGNAM-$VERSION \
+ -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=ON \
-DCMAKE_BUILD_TYPE=Release ..
make
make install DESTDIR=$PKG
cd ..
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-mv $PKG/usr/share/doc/RapidJSON/* $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGELOG.md license.txt readme.md readme.zh-cn.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ CHANGELOG.md license.txt readme.md readme.zh-cn.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-rmdir --parents $PKG/usr/share/doc/RapidJSON 2>/dev/null || true
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/libraries/rapidjson/rapidjson.info b/libraries/rapidjson/rapidjson.info
index 4eff481a5f..281fa98e7a 100644
--- a/libraries/rapidjson/rapidjson.info
+++ b/libraries/rapidjson/rapidjson.info
@@ -1,10 +1,12 @@
PRGNAM="rapidjson"
VERSION="1.1.0"
-HOMEPAGE="https://github.com/miloyip/rapidjson/"
-DOWNLOAD="https://github.com/miloyip/rapidjson/archive/v1.1.0/rapidjson-1.1.0.tar.gz"
-MD5SUM="badd12c511e081fec6c89c43a7027bce"
+HOMEPAGE="https://github.com/Tencent/rapidjson/"
+DOWNLOAD="https://github.com/Tencent/rapidjson/archive/v1.1.0/rapidjson-1.1.0.tar.gz \
+ https://github.com/google/googletest/archive/ba96d0b/googletest-ba96d0b1161f540656efdaed035b3c062b60e006.tar.gz"
+MD5SUM="badd12c511e081fec6c89c43a7027bce \
+ b629364cd39a2dd886d449d9559da0f1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Andre Barboza"
-EMAIL="bmg.andre@gmail.com"
+MAINTAINER="Jeremy Hansen"
+EMAIL="jebrhansen+SBo@@gmail.com"
diff --git a/libraries/rapidjson/slack-desc b/libraries/rapidjson/slack-desc
index 937f0eb30e..cb48eb4d26 100644
--- a/libraries/rapidjson/slack-desc
+++ b/libraries/rapidjson/slack-desc
@@ -15,5 +15,5 @@ rapidjson:
rapidjson:
rapidjson:
rapidjson:
-rapidjson: https://github.com/miloyip/rapidjson
+rapidjson: https://github.com/Tencent/rapidjson
rapidjson:
diff --git a/libraries/scafacos/scafacos.SlackBuild b/libraries/scafacos/scafacos.SlackBuild
index 6016fce3b9..1bd68bf063 100644
--- a/libraries/scafacos/scafacos.SlackBuild
+++ b/libraries/scafacos/scafacos.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=scafacos
VERSION=${VERSION:-1.0.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -91,7 +91,7 @@ CXXFLAGS="$SLKCFLAGS" \
--disable-static \
--enable-shared
-make -j 10
+make
make doc
make install DESTDIR=$PKG
diff --git a/libraries/spdlog/spdlog.SlackBuild b/libraries/spdlog/spdlog.SlackBuild
index 2895b47708..b94c82e6cb 100644
--- a/libraries/spdlog/spdlog.SlackBuild
+++ b/libraries/spdlog/spdlog.SlackBuild
@@ -27,8 +27,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=spdlog
-VERSION=${VERSION:-1.12.0}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-1.14.1}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/spdlog/spdlog.info b/libraries/spdlog/spdlog.info
index 2da0e77b10..e4584a4019 100644
--- a/libraries/spdlog/spdlog.info
+++ b/libraries/spdlog/spdlog.info
@@ -1,10 +1,10 @@
PRGNAM="spdlog"
-VERSION="1.12.0"
+VERSION="1.14.1"
HOMEPAGE="https://github.com/gabime/spdlog"
-DOWNLOAD="https://github.com/gabime/spdlog/archive/v1.12.0/spdlog-1.12.0.tar.gz"
-MD5SUM="6b4446526264c1d1276105482adc18d1"
+DOWNLOAD="https://github.com/gabime/spdlog/archive/v1.14.1/spdlog-1.14.1.tar.gz"
+MD5SUM="f2c3f15c20e67b261836ff7bfda302cf"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="Catch2"
+REQUIRES="Catch2 fmt"
MAINTAINER="Steven Voges"
EMAIL="svoges.sbo@gmail.com"
diff --git a/libraries/tclws/tclws.info b/libraries/tclws/tclws.info
index c3f5e6da90..4d7a8cb331 100644
--- a/libraries/tclws/tclws.info
+++ b/libraries/tclws/tclws.info
@@ -2,7 +2,7 @@ PRGNAM="tclws"
VERSION="3.4.0"
HOMEPAGE="https://core.tcl-lang.org/tclws"
DOWNLOAD="https://core.tcl-lang.org/tclws/tarball/tclws-3.4.0.tar.gz"
-MD5SUM="36815313028e90332048d9e16bd0726f"
+MD5SUM="886df07686b75354b6cd70c55316ea82"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="tcllib tcl-tls tDOM"
diff --git a/libraries/td_lib/td_lib.SlackBuild b/libraries/td_lib/td_lib.SlackBuild
index bf0f96fd88..1f9fef6ff9 100644
--- a/libraries/td_lib/td_lib.SlackBuild
+++ b/libraries/td_lib/td_lib.SlackBuild
@@ -12,11 +12,17 @@
# path of least resistance is to break this library out into its own
# build, even though nothing else besides ded uses it.
+# 20240423 bkw, BUILD=2: add missing .pc file to package. I thought
+# ded was compiling OK without it, but it was actually pulling in
+# td_lib from $TMP, not the installed package... which meant building
+# td_lib followed by ded seemed to work, but building td_lib, then "rm
+# -rf /tmp/SBo", *then* building ded would fail. Grr.
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=td_lib
VERSION=${VERSION:-20230122}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -84,6 +90,11 @@ CXXFLAGS="$SLKCFLAGS" \
make -j1
make -j1 install DESTDIR=$PKG
+# 20240423 bkw: make install doesn't install this, ded needs it.
+PC=$PKG/usr/lib$LIBDIRSUFFIX/pkgconfig
+mkdir -p $PC
+cp -a support/$PRGNAM.pc $PC
+
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a CHANGES COPYING README $PKGDOC
diff --git a/libraries/yascreen/yascreen.SlackBuild b/libraries/yascreen/yascreen.SlackBuild
index e00d1cd642..ea1ca081f9 100644
--- a/libraries/yascreen/yascreen.SlackBuild
+++ b/libraries/yascreen/yascreen.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for yascreen
-# Copyright 2022-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2022-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=yascreen
-VERSION=${VERSION:-1.97}
+VERSION=${VERSION:-1.99}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/libraries/yascreen/yascreen.info b/libraries/yascreen/yascreen.info
index e0006d05b4..c9ad43afc7 100644
--- a/libraries/yascreen/yascreen.info
+++ b/libraries/yascreen/yascreen.info
@@ -1,8 +1,8 @@
PRGNAM="yascreen"
-VERSION="1.97"
+VERSION="1.99"
HOMEPAGE="https://github.com/bbonev/yascreen"
-DOWNLOAD="https://github.com/bbonev/yascreen/releases/download/v1.97/yascreen-1.97.tar.xz"
-MD5SUM="6e0d650760d3376d83cedbff4133f214"
+DOWNLOAD="https://github.com/bbonev/yascreen/releases/download/v1.99/yascreen-1.99.tar.xz"
+MD5SUM="016255de7841ff711e1f778cff7b3c23"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/misc/bitwarden-desktop/bitwarden-desktop.SlackBuild b/misc/bitwarden-desktop/bitwarden-desktop.SlackBuild
index ec9dc75610..1dad02550a 100644
--- a/misc/bitwarden-desktop/bitwarden-desktop.SlackBuild
+++ b/misc/bitwarden-desktop/bitwarden-desktop.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=bitwarden-desktop
SRCNAM=bitwarden
-VERSION=${VERSION:-2024.3.2}
+VERSION=${VERSION:-2024.4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/misc/bitwarden-desktop/bitwarden-desktop.info b/misc/bitwarden-desktop/bitwarden-desktop.info
index 967b85825c..107a5d8eae 100644
--- a/misc/bitwarden-desktop/bitwarden-desktop.info
+++ b/misc/bitwarden-desktop/bitwarden-desktop.info
@@ -1,10 +1,10 @@
PRGNAM="bitwarden-desktop"
-VERSION="2024.3.2"
+VERSION="2024.4.1"
HOMEPAGE="https://bitwarden.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/bitwarden/clients/releases/download/desktop-v2024.3.2/Bitwarden-2024.3.2-amd64.deb"
-MD5SUM_x86_64="8d7d6ab9e973c6890267ea72c3e61e61"
+DOWNLOAD_x86_64="https://github.com/bitwarden/clients/releases/download/desktop-v2024.4.1/Bitwarden-2024.4.1-amd64.deb"
+MD5SUM_x86_64="6493b798986277d1041a5db778015c0c"
REQUIRES=""
MAINTAINER="marav"
EMAIL="marav8@free.fr"
diff --git a/misc/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild b/misc/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild
index 2d1e5c5a1f..8729f514fe 100644
--- a/misc/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild
+++ b/misc/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild
@@ -80,6 +80,8 @@ cd build
-DCMAKE_CXX_FLAGS="${SLKCFLAGS}" \
-DCMAKE_C_FLAGS="${SLKCFLAGS}" \
-DCMAKE_INSTALL_PREFIX="/usr" \
+ -DUSE_QT6="OFF" \
+ -DENABLE_TEST="OFF" \
-DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} ..
make
make install/strip DESTDIR=$PKG
diff --git a/misc/par2cmdline-tbb/par2cmdline-tbb.info b/misc/par2cmdline-tbb/par2cmdline-tbb.info
index abf6afd8b3..d197ad0868 100644
--- a/misc/par2cmdline-tbb/par2cmdline-tbb.info
+++ b/misc/par2cmdline-tbb/par2cmdline-tbb.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/jcfp/par2tbb-chuchusoft-sources/releases/download/0
MD5SUM="8159d5747647d9790ae39e3aedbd2f3c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="tbb"
+REQUIRES="oneTBB"
MAINTAINER="powtrix"
EMAIL="powtrix@gmail.com"
diff --git a/misc/sigrok-firmware-fx2lafw/patches/00-fx2lafw__silence_integer_overflow_compile_warnings.patch b/misc/sigrok-firmware-fx2lafw/patches/00-fx2lafw__silence_integer_overflow_compile_warnings.patch
new file mode 100644
index 0000000000..57143d0f91
--- /dev/null
+++ b/misc/sigrok-firmware-fx2lafw/patches/00-fx2lafw__silence_integer_overflow_compile_warnings.patch
@@ -0,0 +1,26 @@
+From: Gerhard Sittig <redacted>
+Date: Mon, 22 Feb 2021 19:17:02 +0000 (+0100)
+Subject: fx2lafw: silence integer overflow compile warnings
+X-Git-Url: http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=commitdiff_plain;h=61f1c8fc33ce959f167f6bcb5ba3b0959d60b038
+
+fx2lafw: silence integer overflow compile warnings
+
+Explicitly mark literals for control bitfield values as unsigned, to
+avoid compiler warnings when the MSB gets set in assignments to a byte.
+This kind of follows up to commit f6ef2ff72979 after commit b283ba837a11
+re-introduced the warning.
+---
+
+diff --git a/gpif-acquisition.c b/gpif-acquisition.c
+index 96476ccc..c6ba52a0 100644
+--- a/gpif-acquisition.c
++++ b/gpif-acquisition.c
+@@ -161,7 +161,7 @@ static void gpif_make_data_dp_state(volatile BYTE *pSTATE)
+ * BRANCH
+ * Branch to IDLE if condition is true, back to S0 otherwise.
+ */
+- pSTATE[0] = (1 << 7) | (7 << 3) | (0 << 0);
++ pSTATE[0] = (1u << 7) | (7u << 3) | (0u << 0);
+
+ /*
+ * OPCODE
diff --git a/misc/sigrok-firmware-fx2lafw/patches/01-fx2lib__Update___interrupt_syntax_for_sdcc_4.2.3.patch b/misc/sigrok-firmware-fx2lafw/patches/01-fx2lib__Update___interrupt_syntax_for_sdcc_4.2.3.patch
new file mode 100644
index 0000000000..72387ac5d7
--- /dev/null
+++ b/misc/sigrok-firmware-fx2lafw/patches/01-fx2lib__Update___interrupt_syntax_for_sdcc_4.2.3.patch
@@ -0,0 +1,575 @@
+From: Matthew Cengia <redacted>
+Date: Tue, 15 Aug 2023 00:38:34 +0000 (+1000)
+Subject: fx2lib: Update __interrupt syntax for sdcc>=4.2.3
+X-Git-Url: http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=commitdiff_plain;h=5aab87d358a4585a10ad89277bb88ad139077abd
+
+fx2lib: Update __interrupt syntax for sdcc>=4.2.3
+
+The SDCC user manual https://sdcc.sourceforge.net/doc/sdccman.pdf
+section 1.5 "Compatibility with previous versions" on page 11 states:
+
+> In 4.2.3, support for non-parenthesized arguments to __using and
+> __interrupt was dropped.
+
+Adjust the imported fx2lib source files to unbreak compilation with
+more recent SDCC versions.
+---
+
+diff --git a/fx2lib/include/autovector.h b/fx2lib/include/autovector.h
+index 495a3126..38f80fcd 100644
+--- a/fx2lib/include/autovector.h
++++ b/fx2lib/include/autovector.h
+@@ -172,49 +172,49 @@ typedef enum {
+ // you must include the predef of these in the file with your main
+ // so lets just define them here
+
+-void sudav_isr() __interrupt SUDAV_ISR;
+-void sof_isr() __interrupt SOF_ISR;
+-void sutok_isr() __interrupt SUTOK_ISR;
+-void suspend_isr() __interrupt SUSPEND_ISR;
+-void usbreset_isr() __interrupt USBRESET_ISR;
+-void hispeed_isr() __interrupt HISPEED_ISR;
+-void ep0ack_isr() __interrupt EP0ACK_ISR;
+-void ep0in_isr() __interrupt EP0IN_ISR;
+-void ep0out_isr() __interrupt EP0OUT_ISR;
+-void ep1in_isr() __interrupt EP1IN_ISR;
+-void ep1out_isr() __interrupt EP1OUT_ISR;
+-void ep2_isr() __interrupt EP2_ISR;
+-void ep4_isr() __interrupt EP4_ISR;
+-void ep6_isr() __interrupt EP6_ISR;
+-void ep8_isr() __interrupt EP8_ISR;
+-void ibn_isr() __interrupt IBN_ISR;
+-void ep0ping_isr() __interrupt EP0PING_ISR;
+-void ep1ping_isr() __interrupt EP1PING_ISR;
+-void ep2ping_isr() __interrupt EP2PING_ISR;
+-void ep4ping_isr() __interrupt EP4PING_ISR;
+-void ep6ping_isr() __interrupt EP6PING_ISR;
+-void ep8ping_isr() __interrupt EP8PING_ISR;
+-void errlimit_isr() __interrupt ERRLIMIT_ISR;
+-void ep2isoerr_isr() __interrupt EP2ISOERR_ISR;
+-void ep4isoerr_isr() __interrupt EP4ISOERR_ISR;
+-void ep6isoerr_isr() __interrupt EP6ISOERR_ISR;
+-void ep8isoerr_isr() __interrupt EP8ISOERR_ISR;
+-void spare_isr() __interrupt RESERVED_ISR; // not used
++void sudav_isr() __interrupt(SUDAV_ISR);
++void sof_isr() __interrupt(SOF_ISR);
++void sutok_isr() __interrupt(SUTOK_ISR);
++void suspend_isr() __interrupt(SUSPEND_ISR);
++void usbreset_isr() __interrupt(USBRESET_ISR);
++void hispeed_isr() __interrupt(HISPEED_ISR);
++void ep0ack_isr() __interrupt(EP0ACK_ISR);
++void ep0in_isr() __interrupt(EP0IN_ISR);
++void ep0out_isr() __interrupt(EP0OUT_ISR);
++void ep1in_isr() __interrupt(EP1IN_ISR);
++void ep1out_isr() __interrupt(EP1OUT_ISR);
++void ep2_isr() __interrupt(EP2_ISR);
++void ep4_isr() __interrupt(EP4_ISR);
++void ep6_isr() __interrupt(EP6_ISR);
++void ep8_isr() __interrupt(EP8_ISR);
++void ibn_isr() __interrupt(IBN_ISR);
++void ep0ping_isr() __interrupt(EP0PING_ISR);
++void ep1ping_isr() __interrupt(EP1PING_ISR);
++void ep2ping_isr() __interrupt(EP2PING_ISR);
++void ep4ping_isr() __interrupt(EP4PING_ISR);
++void ep6ping_isr() __interrupt(EP6PING_ISR);
++void ep8ping_isr() __interrupt(EP8PING_ISR);
++void errlimit_isr() __interrupt(ERRLIMIT_ISR);
++void ep2isoerr_isr() __interrupt(EP2ISOERR_ISR);
++void ep4isoerr_isr() __interrupt(EP4ISOERR_ISR);
++void ep6isoerr_isr() __interrupt(EP6ISOERR_ISR);
++void ep8isoerr_isr() __interrupt(EP8ISOERR_ISR);
++void spare_isr() __interrupt(RESERVED_ISR); // not used
+ // gpif ints
+-void ep2pf_isr() __interrupt EP2PF_ISR;
+-void ep4pf_isr() __interrupt EP4PF_ISR;
+-void ep6pf_isr() __interrupt EP6PF_ISR;
+-void ep8pf_isr() __interrupt EP8PF_ISR;
+-void ep2ef_isr() __interrupt EP2EF_ISR;
+-void ep4ef_isr() __interrupt EP4EF_ISR;
+-void ep6ef_isr() __interrupt EP6EF_ISR;
+-void ep8ef_isr() __interrupt EP8EF_ISR;
+-void ep2ff_isr() __interrupt EP2FF_ISR;
+-void ep4ff_isr() __interrupt EP4FF_ISR;
+-void ep6ff_isr() __interrupt EP6FF_ISR;
+-void ep8ff_isr() __interrupt EP8FF_ISR;
+-void gpifdone_isr() __interrupt GPIFDONE_ISR;
+-void gpifwf_isr() __interrupt GPIFWF_ISR;
++void ep2pf_isr() __interrupt(EP2PF_ISR);
++void ep4pf_isr() __interrupt(EP4PF_ISR);
++void ep6pf_isr() __interrupt(EP6PF_ISR);
++void ep8pf_isr() __interrupt(EP8PF_ISR);
++void ep2ef_isr() __interrupt(EP2EF_ISR);
++void ep4ef_isr() __interrupt(EP4EF_ISR);
++void ep6ef_isr() __interrupt(EP6EF_ISR);
++void ep8ef_isr() __interrupt(EP8EF_ISR);
++void ep2ff_isr() __interrupt(EP2FF_ISR);
++void ep4ff_isr() __interrupt(EP4FF_ISR);
++void ep6ff_isr() __interrupt(EP6FF_ISR);
++void ep8ff_isr() __interrupt(EP8FF_ISR);
++void gpifdone_isr() __interrupt(GPIFDONE_ISR);
++void gpifwf_isr() __interrupt(GPIFWF_ISR);
+
+ #endif
+
+diff --git a/fx2lib/lib/interrupts/ep0ack_isr.c b/fx2lib/lib/interrupts/ep0ack_isr.c
+index dec4e56a..d216717d 100644
+--- a/fx2lib/lib/interrupts/ep0ack_isr.c
++++ b/fx2lib/lib/interrupts/ep0ack_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0ack_isr() __interrupt EP0ACK_ISR {}
++void ep0ack_isr() __interrupt(EP0ACK_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0in_isr.c b/fx2lib/lib/interrupts/ep0in_isr.c
+index 2fa99a42..f3d8990e 100644
+--- a/fx2lib/lib/interrupts/ep0in_isr.c
++++ b/fx2lib/lib/interrupts/ep0in_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0in_isr() __interrupt EP0IN_ISR {}
++void ep0in_isr() __interrupt(EP0IN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0out_isr.c b/fx2lib/lib/interrupts/ep0out_isr.c
+index 043ae70d..a5acedb7 100644
+--- a/fx2lib/lib/interrupts/ep0out_isr.c
++++ b/fx2lib/lib/interrupts/ep0out_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0out_isr() __interrupt EP0OUT_ISR {}
++void ep0out_isr() __interrupt(EP0OUT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0ping_isr.c b/fx2lib/lib/interrupts/ep0ping_isr.c
+index 3062d177..7b1ee929 100644
+--- a/fx2lib/lib/interrupts/ep0ping_isr.c
++++ b/fx2lib/lib/interrupts/ep0ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0ping_isr() __interrupt EP0PING_ISR {}
++void ep0ping_isr() __interrupt(EP0PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1in_isr.c b/fx2lib/lib/interrupts/ep1in_isr.c
+index d4ecf06f..b666fcb3 100644
+--- a/fx2lib/lib/interrupts/ep1in_isr.c
++++ b/fx2lib/lib/interrupts/ep1in_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1in_isr() __interrupt EP1IN_ISR {}
++void ep1in_isr() __interrupt(EP1IN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1out_isr.c b/fx2lib/lib/interrupts/ep1out_isr.c
+index 998b7aa8..6c87dc20 100644
+--- a/fx2lib/lib/interrupts/ep1out_isr.c
++++ b/fx2lib/lib/interrupts/ep1out_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1out_isr() __interrupt EP1OUT_ISR {}
++void ep1out_isr() __interrupt(EP1OUT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1ping_isr.c b/fx2lib/lib/interrupts/ep1ping_isr.c
+index ff8990e0..c32d437c 100644
+--- a/fx2lib/lib/interrupts/ep1ping_isr.c
++++ b/fx2lib/lib/interrupts/ep1ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1ping_isr() __interrupt EP1PING_ISR {}
++void ep1ping_isr() __interrupt(EP1PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2_isr.c b/fx2lib/lib/interrupts/ep2_isr.c
+index 43a31b7d..4de637a3 100644
+--- a/fx2lib/lib/interrupts/ep2_isr.c
++++ b/fx2lib/lib/interrupts/ep2_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2_isr() __interrupt EP2_ISR {}
++void ep2_isr() __interrupt(EP2_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2ef_isr.c b/fx2lib/lib/interrupts/ep2ef_isr.c
+index e26c5e8a..46f3f87a 100644
+--- a/fx2lib/lib/interrupts/ep2ef_isr.c
++++ b/fx2lib/lib/interrupts/ep2ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ef_isr() __interrupt EP2EF_ISR{}
++void ep2ef_isr() __interrupt(EP2EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2ff_isr.c b/fx2lib/lib/interrupts/ep2ff_isr.c
+index 22bb95d7..400e4803 100644
+--- a/fx2lib/lib/interrupts/ep2ff_isr.c
++++ b/fx2lib/lib/interrupts/ep2ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ff_isr() __interrupt EP2FF_ISR{}
++void ep2ff_isr() __interrupt(EP2FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2isoerr_isr.c b/fx2lib/lib/interrupts/ep2isoerr_isr.c
+index b9dc9b50..d0ca4a89 100644
+--- a/fx2lib/lib/interrupts/ep2isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep2isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2isoerr_isr() __interrupt EP2ISOERR_ISR {}
++void ep2isoerr_isr() __interrupt(EP2ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2pf_isr.c b/fx2lib/lib/interrupts/ep2pf_isr.c
+index 7cad068e..9bd8e9aa 100644
+--- a/fx2lib/lib/interrupts/ep2pf_isr.c
++++ b/fx2lib/lib/interrupts/ep2pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2pf_isr() __interrupt EP2PF_ISR{}
++void ep2pf_isr() __interrupt(EP2PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2ping_isr.c b/fx2lib/lib/interrupts/ep2ping_isr.c
+index 78affed5..dad1e953 100644
+--- a/fx2lib/lib/interrupts/ep2ping_isr.c
++++ b/fx2lib/lib/interrupts/ep2ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ping_isr() __interrupt EP2PING_ISR {}
++void ep2ping_isr() __interrupt(EP2PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4_isr.c b/fx2lib/lib/interrupts/ep4_isr.c
+index 0315c853..5affac9a 100644
+--- a/fx2lib/lib/interrupts/ep4_isr.c
++++ b/fx2lib/lib/interrupts/ep4_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4_isr() __interrupt EP4_ISR {}
++void ep4_isr() __interrupt(EP4_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4ef_isr.c b/fx2lib/lib/interrupts/ep4ef_isr.c
+index a203e7ba..4a0cff1a 100644
+--- a/fx2lib/lib/interrupts/ep4ef_isr.c
++++ b/fx2lib/lib/interrupts/ep4ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ef_isr() __interrupt EP4EF_ISR{}
++void ep4ef_isr() __interrupt(EP4EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4ff_isr.c b/fx2lib/lib/interrupts/ep4ff_isr.c
+index e0cd201b..3278da2d 100644
+--- a/fx2lib/lib/interrupts/ep4ff_isr.c
++++ b/fx2lib/lib/interrupts/ep4ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ff_isr() __interrupt EP4FF_ISR{}
++void ep4ff_isr() __interrupt(EP4FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4isoerr_isr.c b/fx2lib/lib/interrupts/ep4isoerr_isr.c
+index 579fb8bf..dcd7ff90 100644
+--- a/fx2lib/lib/interrupts/ep4isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep4isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4isoerr_isr() __interrupt EP4ISOERR_ISR {}
++void ep4isoerr_isr() __interrupt(EP4ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4pf_isr.c b/fx2lib/lib/interrupts/ep4pf_isr.c
+index ec5ce725..7bbe9f02 100644
+--- a/fx2lib/lib/interrupts/ep4pf_isr.c
++++ b/fx2lib/lib/interrupts/ep4pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4pf_isr() __interrupt EP4PF_ISR{}
++void ep4pf_isr() __interrupt(EP4PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4ping_isr.c b/fx2lib/lib/interrupts/ep4ping_isr.c
+index 18bac000..8d226856 100644
+--- a/fx2lib/lib/interrupts/ep4ping_isr.c
++++ b/fx2lib/lib/interrupts/ep4ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ping_isr() __interrupt EP4PING_ISR {}
++void ep4ping_isr() __interrupt(EP4PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6_isr.c b/fx2lib/lib/interrupts/ep6_isr.c
+index 552e60de..630f9b26 100644
+--- a/fx2lib/lib/interrupts/ep6_isr.c
++++ b/fx2lib/lib/interrupts/ep6_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6_isr() __interrupt EP6_ISR {}
++void ep6_isr() __interrupt(EP6_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6ef_isr.c b/fx2lib/lib/interrupts/ep6ef_isr.c
+index 39e8e0c5..e9ba6d54 100644
+--- a/fx2lib/lib/interrupts/ep6ef_isr.c
++++ b/fx2lib/lib/interrupts/ep6ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ef_isr() __interrupt EP6EF_ISR{}
++void ep6ef_isr() __interrupt(EP6EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6ff_isr.c b/fx2lib/lib/interrupts/ep6ff_isr.c
+index 54137316..011fe871 100644
+--- a/fx2lib/lib/interrupts/ep6ff_isr.c
++++ b/fx2lib/lib/interrupts/ep6ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ff_isr() __interrupt EP6FF_ISR{}
++void ep6ff_isr() __interrupt(EP6FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6isoerr_isr.c b/fx2lib/lib/interrupts/ep6isoerr_isr.c
+index 407414c7..8c005777 100644
+--- a/fx2lib/lib/interrupts/ep6isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep6isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6isoerr_isr() __interrupt EP6ISOERR_ISR {}
++void ep6isoerr_isr() __interrupt(EP6ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6pf_isr.c b/fx2lib/lib/interrupts/ep6pf_isr.c
+index 808f7513..52f6d738 100644
+--- a/fx2lib/lib/interrupts/ep6pf_isr.c
++++ b/fx2lib/lib/interrupts/ep6pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6pf_isr() __interrupt EP6PF_ISR{}
++void ep6pf_isr() __interrupt(EP6PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6ping_isr.c b/fx2lib/lib/interrupts/ep6ping_isr.c
+index 53f8ba52..5430f209 100644
+--- a/fx2lib/lib/interrupts/ep6ping_isr.c
++++ b/fx2lib/lib/interrupts/ep6ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ping_isr() __interrupt EP6PING_ISR {}
++void ep6ping_isr() __interrupt(EP6PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8_isr.c b/fx2lib/lib/interrupts/ep8_isr.c
+index 4f1dd51d..d415a3ec 100644
+--- a/fx2lib/lib/interrupts/ep8_isr.c
++++ b/fx2lib/lib/interrupts/ep8_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8_isr() __interrupt EP8_ISR {}
++void ep8_isr() __interrupt(EP8_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8ef_isr.c b/fx2lib/lib/interrupts/ep8ef_isr.c
+index c018f3ac..d04d2376 100644
+--- a/fx2lib/lib/interrupts/ep8ef_isr.c
++++ b/fx2lib/lib/interrupts/ep8ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ef_isr() __interrupt EP8EF_ISR{}
++void ep8ef_isr() __interrupt(EP8EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8ff_isr.c b/fx2lib/lib/interrupts/ep8ff_isr.c
+index a6169de3..d1e5fcd7 100644
+--- a/fx2lib/lib/interrupts/ep8ff_isr.c
++++ b/fx2lib/lib/interrupts/ep8ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ff_isr() __interrupt EP8FF_ISR{}
++void ep8ff_isr() __interrupt(EP8FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8isoerr_isr.c b/fx2lib/lib/interrupts/ep8isoerr_isr.c
+index a95bae9a..a7e8e0f9 100644
+--- a/fx2lib/lib/interrupts/ep8isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep8isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8isoerr_isr() __interrupt EP8ISOERR_ISR {}
++void ep8isoerr_isr() __interrupt(EP8ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8pf_isr.c b/fx2lib/lib/interrupts/ep8pf_isr.c
+index b0e687c6..53dcdf27 100644
+--- a/fx2lib/lib/interrupts/ep8pf_isr.c
++++ b/fx2lib/lib/interrupts/ep8pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8pf_isr() __interrupt EP8PF_ISR{}
++void ep8pf_isr() __interrupt(EP8PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8ping_isr.c b/fx2lib/lib/interrupts/ep8ping_isr.c
+index e9c25d9e..5cf05dc7 100644
+--- a/fx2lib/lib/interrupts/ep8ping_isr.c
++++ b/fx2lib/lib/interrupts/ep8ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ping_isr() __interrupt EP8PING_ISR {}
++void ep8ping_isr() __interrupt(EP8PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/errlimit_isr.c b/fx2lib/lib/interrupts/errlimit_isr.c
+index fe103c22..cf4e1f61 100644
+--- a/fx2lib/lib/interrupts/errlimit_isr.c
++++ b/fx2lib/lib/interrupts/errlimit_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void errlimit_isr() __interrupt ERRLIMIT_ISR {}
++void errlimit_isr() __interrupt(ERRLIMIT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/gpifdone_isr.c b/fx2lib/lib/interrupts/gpifdone_isr.c
+index 6bb15c77..ee5ce1f6 100644
+--- a/fx2lib/lib/interrupts/gpifdone_isr.c
++++ b/fx2lib/lib/interrupts/gpifdone_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void gpifdone_isr() __interrupt GPIFDONE_ISR{}
++void gpifdone_isr() __interrupt(GPIFDONE_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/gpifwf_isr.c b/fx2lib/lib/interrupts/gpifwf_isr.c
+index 49eba448..e9941541 100644
+--- a/fx2lib/lib/interrupts/gpifwf_isr.c
++++ b/fx2lib/lib/interrupts/gpifwf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void gpifwf_isr() __interrupt GPIFWF_ISR{}
++void gpifwf_isr() __interrupt(GPIFWF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/hispeed_isr.c b/fx2lib/lib/interrupts/hispeed_isr.c
+index 7b05916f..9daabc12 100644
+--- a/fx2lib/lib/interrupts/hispeed_isr.c
++++ b/fx2lib/lib/interrupts/hispeed_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void hispeed_isr() __interrupt HISPEED_ISR {}
++void hispeed_isr() __interrupt(HISPEED_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ibn_isr.c b/fx2lib/lib/interrupts/ibn_isr.c
+index 0f38871a..aa0a7523 100644
+--- a/fx2lib/lib/interrupts/ibn_isr.c
++++ b/fx2lib/lib/interrupts/ibn_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ibn_isr() __interrupt IBN_ISR {}
++void ibn_isr() __interrupt(IBN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sof_isr.c b/fx2lib/lib/interrupts/sof_isr.c
+index 49bf5081..64a409c4 100644
+--- a/fx2lib/lib/interrupts/sof_isr.c
++++ b/fx2lib/lib/interrupts/sof_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sof_isr() __interrupt SOF_ISR {}
++void sof_isr() __interrupt(SOF_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/spare_isr.c b/fx2lib/lib/interrupts/spare_isr.c
+index 965b2818..3b81fd20 100644
+--- a/fx2lib/lib/interrupts/spare_isr.c
++++ b/fx2lib/lib/interrupts/spare_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void spare_isr() __interrupt RESERVED_ISR {}
++void spare_isr() __interrupt(RESERVED_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sudav_isr.c b/fx2lib/lib/interrupts/sudav_isr.c
+index 7660e115..4d36b59a 100644
+--- a/fx2lib/lib/interrupts/sudav_isr.c
++++ b/fx2lib/lib/interrupts/sudav_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sudav_isr() __interrupt SUDAV_ISR {}
++void sudav_isr() __interrupt(SUDAV_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/suspend_isr.c b/fx2lib/lib/interrupts/suspend_isr.c
+index 4b2f1aa2..cf08b28a 100644
+--- a/fx2lib/lib/interrupts/suspend_isr.c
++++ b/fx2lib/lib/interrupts/suspend_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void suspend_isr() __interrupt SUSPEND_ISR {}
++void suspend_isr() __interrupt(SUSPEND_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sutok_isr.c b/fx2lib/lib/interrupts/sutok_isr.c
+index 05330799..8c7368d2 100644
+--- a/fx2lib/lib/interrupts/sutok_isr.c
++++ b/fx2lib/lib/interrupts/sutok_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sutok_isr() __interrupt SUTOK_ISR {}
++void sutok_isr() __interrupt(SUTOK_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/usbreset_isr.c b/fx2lib/lib/interrupts/usbreset_isr.c
+index 7f2ed72d..8888eede 100644
+--- a/fx2lib/lib/interrupts/usbreset_isr.c
++++ b/fx2lib/lib/interrupts/usbreset_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void usbreset_isr() __interrupt USBRESET_ISR {}
++void usbreset_isr() __interrupt(USBRESET_ISR) {}
+
diff --git a/misc/sigrok-firmware-fx2lafw/patches/02-fx2lafw__Update___interrupt_syntax_for_sdcc_4.2.3.patch b/misc/sigrok-firmware-fx2lafw/patches/02-fx2lafw__Update___interrupt_syntax_for_sdcc_4.2.3.patch
new file mode 100644
index 0000000000..402ec85b64
--- /dev/null
+++ b/misc/sigrok-firmware-fx2lafw/patches/02-fx2lafw__Update___interrupt_syntax_for_sdcc_4.2.3.patch
@@ -0,0 +1,108 @@
+From: Matthew Cengia <redacted>
+Date: Tue, 15 Aug 2023 00:39:32 +0000 (+1000)
+Subject: fx2lafw: Update __interrupt syntax for sdcc>=4.2.3
+X-Git-Url: http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=commitdiff_plain;h=3e08500d22f87f69941b65cf8b8c1b85f9b41173
+
+fx2lafw: Update __interrupt syntax for sdcc>=4.2.3
+
+The SDCC user manual https://sdcc.sourceforge.net/doc/sdccman.pdf
+section 1.5 "Compatibility with previous versions" on page 11 states:
+
+> In 4.2.3, support for non-parenthesized arguments to __using and
+> __interrupt was dropped.
+
+Adjust the sigrok fx2lafw application source to unbreak compilation with
+more recent SDCC versions.
+---
+
+diff --git a/fx2lafw.c b/fx2lafw.c
+index 1035713d..42129219 100644
+--- a/fx2lafw.c
++++ b/fx2lafw.c
+@@ -191,14 +191,14 @@ BOOL handle_set_configuration(BYTE cfg)
+ return (cfg == 1) ? TRUE : FALSE;
+ }
+
+-void sudav_isr(void) __interrupt SUDAV_ISR
++void sudav_isr(void) __interrupt(SUDAV_ISR)
+ {
+ got_sud = TRUE;
+ CLEAR_SUDAV();
+ }
+
+ /* IN BULK NAK - the host started requesting data. */
+-void ibn_isr(void) __interrupt IBN_ISR
++void ibn_isr(void) __interrupt(IBN_ISR)
+ {
+ /*
+ * If the IBN interrupt is not disabled, clearing
+@@ -229,19 +229,19 @@ void ibn_isr(void) __interrupt IBN_ISR
+ SYNCDELAY();
+ }
+
+-void usbreset_isr(void) __interrupt USBRESET_ISR
++void usbreset_isr(void) __interrupt(USBRESET_ISR)
+ {
+ handle_hispeed(FALSE);
+ CLEAR_USBRESET();
+ }
+
+-void hispeed_isr(void) __interrupt HISPEED_ISR
++void hispeed_isr(void) __interrupt(HISPEED_ISR)
+ {
+ handle_hispeed(TRUE);
+ CLEAR_HISPEED();
+ }
+
+-void timer2_isr(void) __interrupt TF2_ISR
++void timer2_isr(void) __interrupt(TF2_ISR)
+ {
+ /* Blink LED during acquisition, keep it on otherwise. */
+ if (gpif_acquiring == RUNNING) {
+diff --git a/include/scope.inc b/include/scope.inc
+index 96422f1b..c6990853 100644
+--- a/include/scope.inc
++++ b/include/scope.inc
+@@ -43,36 +43,36 @@ static volatile __bit dosuspend = FALSE;
+ extern __code BYTE highspd_dscr;
+ extern __code BYTE fullspd_dscr;
+
+-void resume_isr(void) __interrupt RESUME_ISR
++void resume_isr(void) __interrupt(RESUME_ISR)
+ {
+ CLEAR_RESUME();
+ }
+
+-void sudav_isr(void) __interrupt SUDAV_ISR
++void sudav_isr(void) __interrupt(SUDAV_ISR)
+ {
+ dosud = TRUE;
+ CLEAR_SUDAV();
+ }
+
+-void usbreset_isr(void) __interrupt USBRESET_ISR
++void usbreset_isr(void) __interrupt(USBRESET_ISR)
+ {
+ handle_hispeed(FALSE);
+ CLEAR_USBRESET();
+ }
+
+-void hispeed_isr(void) __interrupt HISPEED_ISR
++void hispeed_isr(void) __interrupt(HISPEED_ISR)
+ {
+ handle_hispeed(TRUE);
+ CLEAR_HISPEED();
+ }
+
+-void suspend_isr(void) __interrupt SUSPEND_ISR
++void suspend_isr(void) __interrupt(SUSPEND_ISR)
+ {
+ dosuspend = TRUE;
+ CLEAR_SUSPEND();
+ }
+
+-void timer2_isr(void) __interrupt TF2_ISR
++void timer2_isr(void) __interrupt(TF2_ISR)
+ {
+ /* Toggle the probe calibration pin, only accurate up to ca. 8MHz. */
+ TOGGLE_CALIBRATION_PIN();
diff --git a/misc/sigrok-firmware-fx2lafw/patches/03-fx2lafw__Update___at_syntax_for_sdcc_4.2.3.patch b/misc/sigrok-firmware-fx2lafw/patches/03-fx2lafw__Update___at_syntax_for_sdcc_4.2.3.patch
new file mode 100644
index 0000000000..a591d310b9
--- /dev/null
+++ b/misc/sigrok-firmware-fx2lafw/patches/03-fx2lafw__Update___at_syntax_for_sdcc_4.2.3.patch
@@ -0,0 +1,300 @@
+From: Matthew Cengia <redacted>
+Date: Tue, 15 Aug 2023 00:35:45 +0000 (+1000)
+Subject: fx2lafw: Update __at syntax for sdcc>=4.2.3
+X-Git-Url: http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=commitdiff_plain;h=96b0b476522c3f93a47ff8f479ec08105ba6a2a5
+
+fx2lafw: Update __at syntax for sdcc>=4.2.3
+
+The SDCC user manual https://sdcc.sourceforge.net/doc/sdccman.pdf
+section 1.5 "Compatibility with previous versions" on page 12 states:
+
+> In 4.2.3, support for non-parenthesized arguments to __at that are
+> not constants was dropped.
+
+Adjust the sigrok fx2lafw application source to unbreak compilation with
+more recent SDCC versions.
+---
+
+diff --git a/fx2lib/include/fx2regs.h b/fx2lib/include/fx2regs.h
+index 0645fe36..6ae3339d 100644
+--- a/fx2lib/include/fx2regs.h
++++ b/fx2lib/include/fx2regs.h
+@@ -266,14 +266,14 @@ __xdata __at 0xE50D volatile BYTE GPCR2; ///< Chip Features
+
+ __sfr __at 0x80 IOA;
+ /* IOA */
+- __sbit __at 0x80 + 0 PA0;
+- __sbit __at 0x80 + 1 PA1;
+- __sbit __at 0x80 + 2 PA2;
+- __sbit __at 0x80 + 3 PA3;
+- __sbit __at 0x80 + 4 PA4;
+- __sbit __at 0x80 + 5 PA5;
+- __sbit __at 0x80 + 6 PA6;
+- __sbit __at 0x80 + 7 PA7;
++ __sbit __at (0x80+0) PA0;
++ __sbit __at (0x80+1) PA1;
++ __sbit __at (0x80+2) PA2;
++ __sbit __at (0x80+3) PA3;
++ __sbit __at (0x80+4) PA4;
++ __sbit __at (0x80+5) PA5;
++ __sbit __at (0x80+6) PA6;
++ __sbit __at (0x80+7) PA7;
+ __sfr __at 0x81 SP;
+ __sfr __at 0x82 DPL;
+ __sfr __at 0x83 DPH;
+@@ -283,14 +283,14 @@ __sfr __at 0x86 DPS;
+ __sfr __at 0x87 PCON;
+ __sfr __at 0x88 TCON;
+ /* TCON */
+- __sbit __at 0x88+0 IT0;
+- __sbit __at 0x88+1 IE0;
+- __sbit __at 0x88+2 IT1;
+- __sbit __at 0x88+3 IE1;
+- __sbit __at 0x88+4 TR0;
+- __sbit __at 0x88+5 TF0;
+- __sbit __at 0x88+6 TR1;
+- __sbit __at 0x88+7 TF1;
++ __sbit __at (0x88+0) IT0;
++ __sbit __at (0x88+1) IE0;
++ __sbit __at (0x88+2) IT1;
++ __sbit __at (0x88+3) IE1;
++ __sbit __at (0x88+4) TR0;
++ __sbit __at (0x88+5) TF0;
++ __sbit __at (0x88+6) TR1;
++ __sbit __at (0x88+7) TF1;
+ __sfr __at 0x89 TMOD;
+ __sfr __at 0x8A TL0;
+ __sfr __at 0x8B TL1;
+@@ -299,28 +299,28 @@ __sfr __at 0x8D TH1;
+ __sfr __at 0x8E CKCON;
+ __sfr __at 0x90 IOB;
+ /* IOB */
+- __sbit __at 0x90 + 0 PB0;
+- __sbit __at 0x90 + 1 PB1;
+- __sbit __at 0x90 + 2 PB2;
+- __sbit __at 0x90 + 3 PB3;
+- __sbit __at 0x90 + 4 PB4;
+- __sbit __at 0x90 + 5 PB5;
+- __sbit __at 0x90 + 6 PB6;
+- __sbit __at 0x90 + 7 PB7;
++ __sbit __at (0x90+0) PB0;
++ __sbit __at (0x90+1) PB1;
++ __sbit __at (0x90+2) PB2;
++ __sbit __at (0x90+3) PB3;
++ __sbit __at (0x90+4) PB4;
++ __sbit __at (0x90+5) PB5;
++ __sbit __at (0x90+6) PB6;
++ __sbit __at (0x90+7) PB7;
+ __sfr __at 0x91 EXIF;
+
+ //__sfr __at 0x92 MPAGE;
+ __sfr __at 0x92 _XPAGE; // same as MPAGE for pdata __sfr access w/ sdcc
+ __sfr __at 0x98 SCON0;
+ /* SCON0 */
+- __sbit __at 0x98+0 RI;
+- __sbit __at 0x98+1 TI;
+- __sbit __at 0x98+2 RB8;
+- __sbit __at 0x98+3 TB8;
+- __sbit __at 0x98+4 REN;
+- __sbit __at 0x98+5 SM2;
+- __sbit __at 0x98+6 SM1;
+- __sbit __at 0x98+7 SM0;
++ __sbit __at (0x98+0) RI;
++ __sbit __at (0x98+1) TI;
++ __sbit __at (0x98+2) RB8;
++ __sbit __at (0x98+3) TB8;
++ __sbit __at (0x98+4) REN;
++ __sbit __at (0x98+5) SM2;
++ __sbit __at (0x98+6) SM1;
++ __sbit __at (0x98+7) SM0;
+ __sfr __at 0x99 SBUF0;
+
+ __sfr __at 0x9A AUTOPTRH1;
+@@ -330,27 +330,27 @@ __sfr __at 0x9E AUTOPTRL2;
+
+ __sfr __at 0xA0 IOC;
+ /* IOC */
+- __sbit __at 0xA0 + 0 PC0;
+- __sbit __at 0xA0 + 1 PC1;
+- __sbit __at 0xA0 + 2 PC2;
+- __sbit __at 0xA0 + 3 PC3;
+- __sbit __at 0xA0 + 4 PC4;
+- __sbit __at 0xA0 + 5 PC5;
+- __sbit __at 0xA0 + 6 PC6;
+- __sbit __at 0xA0 + 7 PC7;
++ __sbit __at (0xA0+0) PC0;
++ __sbit __at (0xA0+1) PC1;
++ __sbit __at (0xA0+2) PC2;
++ __sbit __at (0xA0+3) PC3;
++ __sbit __at (0xA0+4) PC4;
++ __sbit __at (0xA0+5) PC5;
++ __sbit __at (0xA0+6) PC6;
++ __sbit __at (0xA0+7) PC7;
+ __sfr __at 0xA1 INT2CLR;
+ __sfr __at 0xA2 INT4CLR;
+
+ __sfr __at 0xA8 IE;
+ /* IE */
+- __sbit __at 0xA8+0 EX0;
+- __sbit __at 0xA8+1 ET0;
+- __sbit __at 0xA8+2 EX1;
+- __sbit __at 0xA8+3 ET1;
+- __sbit __at 0xA8+4 ES0;
+- __sbit __at 0xA8+5 ET2;
+- __sbit __at 0xA8+6 ES1;
+- __sbit __at 0xA8+7 EA;
++ __sbit __at (0xA8+0) EX0;
++ __sbit __at (0xA8+1) ET0;
++ __sbit __at (0xA8+2) EX1;
++ __sbit __at (0xA8+3) ET1;
++ __sbit __at (0xA8+4) ES0;
++ __sbit __at (0xA8+5) ET2;
++ __sbit __at (0xA8+6) ES1;
++ __sbit __at (0xA8+7) EA;
+
+ __sfr __at 0xAA EP2468STAT;
+ __sfr __at 0xAB EP24FIFOFLGS;
+@@ -358,14 +358,14 @@ __sfr __at 0xAC EP68FIFOFLGS;
+ __sfr __at 0xAF AUTOPTRSETUP;
+ __sfr __at 0xB0 IOD;
+ /* IOD */
+- __sbit __at 0xB0 + 0 PD0;
+- __sbit __at 0xB0 + 1 PD1;
+- __sbit __at 0xB0 + 2 PD2;
+- __sbit __at 0xB0 + 3 PD3;
+- __sbit __at 0xB0 + 4 PD4;
+- __sbit __at 0xB0 + 5 PD5;
+- __sbit __at 0xB0 + 6 PD6;
+- __sbit __at 0xB0 + 7 PD7;
++ __sbit __at (0xB0+0) PD0;
++ __sbit __at (0xB0+1) PD1;
++ __sbit __at (0xB0+2) PD2;
++ __sbit __at (0xB0+3) PD3;
++ __sbit __at (0xB0+4) PD4;
++ __sbit __at (0xB0+5) PD5;
++ __sbit __at (0xB0+6) PD6;
++ __sbit __at (0xB0+7) PD7;
+ __sfr __at 0xB1 IOE;
+ __sfr __at 0xB2 OEA;
+ __sfr __at 0xB3 OEB;
+@@ -375,13 +375,13 @@ __sfr __at 0xB6 OEE;
+
+ __sfr __at 0xB8 IP;
+ /* IP */
+- __sbit __at 0xB8+0 PX0;
+- __sbit __at 0xB8+1 PT0;
+- __sbit __at 0xB8+2 PX1;
+- __sbit __at 0xB8+3 PT1;
+- __sbit __at 0xB8+4 PS0;
+- __sbit __at 0xB8+5 PT2;
+- __sbit __at 0xB8+6 PS1;
++ __sbit __at (0xB8+0) PX0;
++ __sbit __at (0xB8+1) PT0;
++ __sbit __at (0xB8+2) PX1;
++ __sbit __at (0xB8+3) PT1;
++ __sbit __at (0xB8+4) PS0;
++ __sbit __at (0xB8+5) PT2;
++ __sbit __at (0xB8+6) PS1;
+
+ __sfr __at 0xBA EP01STAT;
+ __sfr __at 0xBB GPIFTRIG;
+@@ -392,61 +392,61 @@ __sfr __at 0xBF GPIFSGLDATLNOX;
+
+ __sfr __at 0xC0 SCON1;
+ /* SCON1 */
+- __sbit __at 0xC0+0 RI1;
+- __sbit __at 0xC0+1 TI1;
+- __sbit __at 0xC0+2 RB81;
+- __sbit __at 0xC0+3 TB81;
+- __sbit __at 0xC0+4 REN1;
+- __sbit __at 0xC0+5 SM21;
+- __sbit __at 0xC0+6 SM11;
+- __sbit __at 0xC0+7 SM01;
++ __sbit __at (0xC0+0) RI1;
++ __sbit __at (0xC0+1) TI1;
++ __sbit __at (0xC0+2) RB81;
++ __sbit __at (0xC0+3) TB81;
++ __sbit __at (0xC0+4) REN1;
++ __sbit __at (0xC0+5) SM21;
++ __sbit __at (0xC0+6) SM11;
++ __sbit __at (0xC0+7) SM01;
+ __sfr __at 0xC1 SBUF1;
+ __sfr __at 0xC8 T2CON;
+ /* T2CON */
+- __sbit __at 0xC8+0 CP_RL2;
+- __sbit __at 0xC8+1 C_T2;
+- __sbit __at 0xC8+2 TR2;
+- __sbit __at 0xC8+3 EXEN2;
+- __sbit __at 0xC8+4 TCLK;
+- __sbit __at 0xC8+5 RCLK;
+- __sbit __at 0xC8+6 EXF2;
+- __sbit __at 0xC8+7 TF2;
++ __sbit __at (0xC8+0) CP_RL2;
++ __sbit __at (0xC8+1) C_T2;
++ __sbit __at (0xC8+2) TR2;
++ __sbit __at (0xC8+3) EXEN2;
++ __sbit __at (0xC8+4) TCLK;
++ __sbit __at (0xC8+5) RCLK;
++ __sbit __at (0xC8+6) EXF2;
++ __sbit __at (0xC8+7) TF2;
+ __sfr __at 0xCA RCAP2L;
+ __sfr __at 0xCB RCAP2H;
+ __sfr __at 0xCC TL2;
+ __sfr __at 0xCD TH2;
+ __sfr __at 0xD0 PSW;
+ /* PSW */
+- __sbit __at 0xD0+0 P;
+- __sbit __at 0xD0+1 FL;
+- __sbit __at 0xD0+2 OV;
+- __sbit __at 0xD0+3 RS0;
+- __sbit __at 0xD0+4 RS1;
+- __sbit __at 0xD0+5 F0;
+- __sbit __at 0xD0+6 AC;
+- __sbit __at 0xD0+7 CY;
++ __sbit __at (0xD0+0) P;
++ __sbit __at (0xD0+1) FL;
++ __sbit __at (0xD0+2) OV;
++ __sbit __at (0xD0+3) RS0;
++ __sbit __at (0xD0+4) RS1;
++ __sbit __at (0xD0+5) F0;
++ __sbit __at (0xD0+6) AC;
++ __sbit __at (0xD0+7) CY;
+ __sfr __at 0xD8 EICON; // Was WDCON in DS80C320; Bit Values differ from Reg320
+ /* EICON */
+- __sbit __at 0xD8+3 INT6;
+- __sbit __at 0xD8+4 RESI;
+- __sbit __at 0xD8+5 ERESI;
+- __sbit __at 0xD8+7 SMOD1;
++ __sbit __at (0xD8+3) INT6;
++ __sbit __at (0xD8+4) RESI;
++ __sbit __at (0xD8+5) ERESI;
++ __sbit __at (0xD8+7) SMOD1;
+ __sfr __at 0xE0 ACC;
+ __sfr __at 0xE8 EIE; // EIE Bit Values differ from Reg320
+ /* EIE */
+- __sbit __at 0xE8+0 EUSB;
+- __sbit __at 0xE8+1 EI2C;
+- __sbit __at 0xE8+2 EIEX4;
+- __sbit __at 0xE8+3 EIEX5;
+- __sbit __at 0xE8+4 EIEX6;
++ __sbit __at (0xE8+0) EUSB;
++ __sbit __at (0xE8+1) EI2C;
++ __sbit __at (0xE8+2) EIEX4;
++ __sbit __at (0xE8+3) EIEX5;
++ __sbit __at (0xE8+4) EIEX6;
+ __sfr __at 0xF0 B;
+ __sfr __at 0xF8 EIP; // EIP Bit Values differ from Reg320
+ /* EIP */
+- __sbit __at 0xF8+0 PUSB;
+- __sbit __at 0xF8+1 PI2C;
+- __sbit __at 0xF8+2 EIPX4;
+- __sbit __at 0xF8+3 EIPX5;
+- __sbit __at 0xF8+4 EIPX6;
++ __sbit __at (0xF8+0) PUSB;
++ __sbit __at (0xF8+1) PI2C;
++ __sbit __at (0xF8+2) EIPX4;
++ __sbit __at (0xF8+3) EIPX5;
++ __sbit __at (0xF8+4) EIPX6;
+
+
+ /* CPU Control & Status Register (CPUCS) */
diff --git a/misc/sigrok-firmware-fx2lafw/patches/04-fx2lib_fix_SDCC_warning_283.patch b/misc/sigrok-firmware-fx2lafw/patches/04-fx2lib_fix_SDCC_warning_283.patch
new file mode 100644
index 0000000000..7b6968a095
--- /dev/null
+++ b/misc/sigrok-firmware-fx2lafw/patches/04-fx2lib_fix_SDCC_warning_283.patch
@@ -0,0 +1,686 @@
+From: Steve Markgraf <redacted>
+Date: Wed, 17 Jan 2024 19:18:34 +0000 (+0100)
+Subject: fx2lib: fix SDCC warning 283
+X-Git-Url: http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=commitdiff_plain;h=bb3c6dfdb3f95bf529ed95dcc5fb3610e4473673
+
+fx2lib: fix SDCC warning 283
+
+This fixes the following warnings that appear with
+SDCC >= 4.3.0:
+
+"warning 283: function declarator with no prototype"
+---
+
+diff --git a/fx2lib/include/autovector.h b/fx2lib/include/autovector.h
+index 38f80fcd..ecbeb411 100644
+--- a/fx2lib/include/autovector.h
++++ b/fx2lib/include/autovector.h
+@@ -172,49 +172,49 @@ typedef enum {
+ // you must include the predef of these in the file with your main
+ // so lets just define them here
+
+-void sudav_isr() __interrupt(SUDAV_ISR);
+-void sof_isr() __interrupt(SOF_ISR);
+-void sutok_isr() __interrupt(SUTOK_ISR);
+-void suspend_isr() __interrupt(SUSPEND_ISR);
+-void usbreset_isr() __interrupt(USBRESET_ISR);
+-void hispeed_isr() __interrupt(HISPEED_ISR);
+-void ep0ack_isr() __interrupt(EP0ACK_ISR);
+-void ep0in_isr() __interrupt(EP0IN_ISR);
+-void ep0out_isr() __interrupt(EP0OUT_ISR);
+-void ep1in_isr() __interrupt(EP1IN_ISR);
+-void ep1out_isr() __interrupt(EP1OUT_ISR);
+-void ep2_isr() __interrupt(EP2_ISR);
+-void ep4_isr() __interrupt(EP4_ISR);
+-void ep6_isr() __interrupt(EP6_ISR);
+-void ep8_isr() __interrupt(EP8_ISR);
+-void ibn_isr() __interrupt(IBN_ISR);
+-void ep0ping_isr() __interrupt(EP0PING_ISR);
+-void ep1ping_isr() __interrupt(EP1PING_ISR);
+-void ep2ping_isr() __interrupt(EP2PING_ISR);
+-void ep4ping_isr() __interrupt(EP4PING_ISR);
+-void ep6ping_isr() __interrupt(EP6PING_ISR);
+-void ep8ping_isr() __interrupt(EP8PING_ISR);
+-void errlimit_isr() __interrupt(ERRLIMIT_ISR);
+-void ep2isoerr_isr() __interrupt(EP2ISOERR_ISR);
+-void ep4isoerr_isr() __interrupt(EP4ISOERR_ISR);
+-void ep6isoerr_isr() __interrupt(EP6ISOERR_ISR);
+-void ep8isoerr_isr() __interrupt(EP8ISOERR_ISR);
+-void spare_isr() __interrupt(RESERVED_ISR); // not used
++void sudav_isr(void) __interrupt(SUDAV_ISR);
++void sof_isr(void) __interrupt(SOF_ISR);
++void sutok_isr(void) __interrupt(SUTOK_ISR);
++void suspend_isr(void) __interrupt(SUSPEND_ISR);
++void usbreset_isr(void) __interrupt(USBRESET_ISR);
++void hispeed_isr(void) __interrupt(HISPEED_ISR);
++void ep0ack_isr(void) __interrupt(EP0ACK_ISR);
++void ep0in_isr(void) __interrupt(EP0IN_ISR);
++void ep0out_isr(void) __interrupt(EP0OUT_ISR);
++void ep1in_isr(void) __interrupt(EP1IN_ISR);
++void ep1out_isr(void) __interrupt(EP1OUT_ISR);
++void ep2_isr(void) __interrupt(EP2_ISR);
++void ep4_isr(void) __interrupt(EP4_ISR);
++void ep6_isr(void) __interrupt(EP6_ISR);
++void ep8_isr(void) __interrupt(EP8_ISR);
++void ibn_isr(void) __interrupt(IBN_ISR);
++void ep0ping_isr(void) __interrupt(EP0PING_ISR);
++void ep1ping_isr(void) __interrupt(EP1PING_ISR);
++void ep2ping_isr(void) __interrupt(EP2PING_ISR);
++void ep4ping_isr(void) __interrupt(EP4PING_ISR);
++void ep6ping_isr(void) __interrupt(EP6PING_ISR);
++void ep8ping_isr(void) __interrupt(EP8PING_ISR);
++void errlimit_isr(void) __interrupt(ERRLIMIT_ISR);
++void ep2isoerr_isr(void) __interrupt(EP2ISOERR_ISR);
++void ep4isoerr_isr(void) __interrupt(EP4ISOERR_ISR);
++void ep6isoerr_isr(void) __interrupt(EP6ISOERR_ISR);
++void ep8isoerr_isr(void) __interrupt(EP8ISOERR_ISR);
++void spare_isr(void) __interrupt(RESERVED_ISR); // not used
+ // gpif ints
+-void ep2pf_isr() __interrupt(EP2PF_ISR);
+-void ep4pf_isr() __interrupt(EP4PF_ISR);
+-void ep6pf_isr() __interrupt(EP6PF_ISR);
+-void ep8pf_isr() __interrupt(EP8PF_ISR);
+-void ep2ef_isr() __interrupt(EP2EF_ISR);
+-void ep4ef_isr() __interrupt(EP4EF_ISR);
+-void ep6ef_isr() __interrupt(EP6EF_ISR);
+-void ep8ef_isr() __interrupt(EP8EF_ISR);
+-void ep2ff_isr() __interrupt(EP2FF_ISR);
+-void ep4ff_isr() __interrupt(EP4FF_ISR);
+-void ep6ff_isr() __interrupt(EP6FF_ISR);
+-void ep8ff_isr() __interrupt(EP8FF_ISR);
+-void gpifdone_isr() __interrupt(GPIFDONE_ISR);
+-void gpifwf_isr() __interrupt(GPIFWF_ISR);
++void ep2pf_isr(void) __interrupt(EP2PF_ISR);
++void ep4pf_isr(void) __interrupt(EP4PF_ISR);
++void ep6pf_isr(void) __interrupt(EP6PF_ISR);
++void ep8pf_isr(void) __interrupt(EP8PF_ISR);
++void ep2ef_isr(void) __interrupt(EP2EF_ISR);
++void ep4ef_isr(void) __interrupt(EP4EF_ISR);
++void ep6ef_isr(void) __interrupt(EP6EF_ISR);
++void ep8ef_isr(void) __interrupt(EP8EF_ISR);
++void ep2ff_isr(void) __interrupt(EP2FF_ISR);
++void ep4ff_isr(void) __interrupt(EP4FF_ISR);
++void ep6ff_isr(void) __interrupt(EP6FF_ISR);
++void ep8ff_isr(void) __interrupt(EP8FF_ISR);
++void gpifdone_isr(void) __interrupt(GPIFDONE_ISR);
++void gpifwf_isr(void) __interrupt(GPIFWF_ISR);
+
+ #endif
+
+diff --git a/fx2lib/include/serial.h b/fx2lib/include/serial.h
+index 7c5935eb..c83959c4 100644
+--- a/fx2lib/include/serial.h
++++ b/fx2lib/include/serial.h
+@@ -51,4 +51,4 @@ void sio0_init( WORD baud_rate ) __critical ; // baud_rate max should be 57600 s
+ Just use one or the other. (This makes terminal echo easy)
+ **/
+ void putchar(char c);
+-char getchar();
++char getchar(void);
+diff --git a/fx2lib/include/setupdat.h b/fx2lib/include/setupdat.h
+index 5dba882a..fc9e40c6 100644
+--- a/fx2lib/include/setupdat.h
++++ b/fx2lib/include/setupdat.h
+@@ -148,7 +148,7 @@ __xdata BYTE* ep_addr(BYTE ep);
+ You can also use the usbjt and enable the sudav isr
+ and call the function from withing the sudav isr routine
+ */
+-void handle_setupdata();
++void handle_setupdata(void);
+
+
+ /**
+diff --git a/fx2lib/lib/interrupts/ep0ack_isr.c b/fx2lib/lib/interrupts/ep0ack_isr.c
+index d216717d..547e0bfc 100644
+--- a/fx2lib/lib/interrupts/ep0ack_isr.c
++++ b/fx2lib/lib/interrupts/ep0ack_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0ack_isr() __interrupt(EP0ACK_ISR) {}
++void ep0ack_isr(void) __interrupt(EP0ACK_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0in_isr.c b/fx2lib/lib/interrupts/ep0in_isr.c
+index f3d8990e..c55d0fbc 100644
+--- a/fx2lib/lib/interrupts/ep0in_isr.c
++++ b/fx2lib/lib/interrupts/ep0in_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0in_isr() __interrupt(EP0IN_ISR) {}
++void ep0in_isr(void) __interrupt(EP0IN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0out_isr.c b/fx2lib/lib/interrupts/ep0out_isr.c
+index a5acedb7..a93cd77c 100644
+--- a/fx2lib/lib/interrupts/ep0out_isr.c
++++ b/fx2lib/lib/interrupts/ep0out_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0out_isr() __interrupt(EP0OUT_ISR) {}
++void ep0out_isr(void) __interrupt(EP0OUT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep0ping_isr.c b/fx2lib/lib/interrupts/ep0ping_isr.c
+index 7b1ee929..218b7528 100644
+--- a/fx2lib/lib/interrupts/ep0ping_isr.c
++++ b/fx2lib/lib/interrupts/ep0ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep0ping_isr() __interrupt(EP0PING_ISR) {}
++void ep0ping_isr(void) __interrupt(EP0PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1in_isr.c b/fx2lib/lib/interrupts/ep1in_isr.c
+index b666fcb3..4197bd54 100644
+--- a/fx2lib/lib/interrupts/ep1in_isr.c
++++ b/fx2lib/lib/interrupts/ep1in_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1in_isr() __interrupt(EP1IN_ISR) {}
++void ep1in_isr(void) __interrupt(EP1IN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1out_isr.c b/fx2lib/lib/interrupts/ep1out_isr.c
+index 6c87dc20..8e19ca01 100644
+--- a/fx2lib/lib/interrupts/ep1out_isr.c
++++ b/fx2lib/lib/interrupts/ep1out_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1out_isr() __interrupt(EP1OUT_ISR) {}
++void ep1out_isr(void) __interrupt(EP1OUT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep1ping_isr.c b/fx2lib/lib/interrupts/ep1ping_isr.c
+index c32d437c..62849214 100644
+--- a/fx2lib/lib/interrupts/ep1ping_isr.c
++++ b/fx2lib/lib/interrupts/ep1ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep1ping_isr() __interrupt(EP1PING_ISR) {}
++void ep1ping_isr(void) __interrupt(EP1PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2_isr.c b/fx2lib/lib/interrupts/ep2_isr.c
+index 4de637a3..4596b3ce 100644
+--- a/fx2lib/lib/interrupts/ep2_isr.c
++++ b/fx2lib/lib/interrupts/ep2_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2_isr() __interrupt(EP2_ISR) {}
++void ep2_isr(void) __interrupt(EP2_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2ef_isr.c b/fx2lib/lib/interrupts/ep2ef_isr.c
+index 46f3f87a..a88f1571 100644
+--- a/fx2lib/lib/interrupts/ep2ef_isr.c
++++ b/fx2lib/lib/interrupts/ep2ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ef_isr() __interrupt(EP2EF_ISR){}
++void ep2ef_isr(void) __interrupt(EP2EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2ff_isr.c b/fx2lib/lib/interrupts/ep2ff_isr.c
+index 400e4803..1c073fbd 100644
+--- a/fx2lib/lib/interrupts/ep2ff_isr.c
++++ b/fx2lib/lib/interrupts/ep2ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ff_isr() __interrupt(EP2FF_ISR){}
++void ep2ff_isr(void) __interrupt(EP2FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2isoerr_isr.c b/fx2lib/lib/interrupts/ep2isoerr_isr.c
+index d0ca4a89..7b121a51 100644
+--- a/fx2lib/lib/interrupts/ep2isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep2isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2isoerr_isr() __interrupt(EP2ISOERR_ISR) {}
++void ep2isoerr_isr(void) __interrupt(EP2ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep2pf_isr.c b/fx2lib/lib/interrupts/ep2pf_isr.c
+index 9bd8e9aa..4aa71d33 100644
+--- a/fx2lib/lib/interrupts/ep2pf_isr.c
++++ b/fx2lib/lib/interrupts/ep2pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2pf_isr() __interrupt(EP2PF_ISR){}
++void ep2pf_isr(void) __interrupt(EP2PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep2ping_isr.c b/fx2lib/lib/interrupts/ep2ping_isr.c
+index dad1e953..336616cd 100644
+--- a/fx2lib/lib/interrupts/ep2ping_isr.c
++++ b/fx2lib/lib/interrupts/ep2ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep2ping_isr() __interrupt(EP2PING_ISR) {}
++void ep2ping_isr(void) __interrupt(EP2PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4_isr.c b/fx2lib/lib/interrupts/ep4_isr.c
+index 5affac9a..19beb727 100644
+--- a/fx2lib/lib/interrupts/ep4_isr.c
++++ b/fx2lib/lib/interrupts/ep4_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4_isr() __interrupt(EP4_ISR) {}
++void ep4_isr(void) __interrupt(EP4_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4ef_isr.c b/fx2lib/lib/interrupts/ep4ef_isr.c
+index 4a0cff1a..77c5576b 100644
+--- a/fx2lib/lib/interrupts/ep4ef_isr.c
++++ b/fx2lib/lib/interrupts/ep4ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ef_isr() __interrupt(EP4EF_ISR){}
++void ep4ef_isr(void) __interrupt(EP4EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4ff_isr.c b/fx2lib/lib/interrupts/ep4ff_isr.c
+index 3278da2d..cbe0b686 100644
+--- a/fx2lib/lib/interrupts/ep4ff_isr.c
++++ b/fx2lib/lib/interrupts/ep4ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ff_isr() __interrupt(EP4FF_ISR){}
++void ep4ff_isr(void) __interrupt(EP4FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4isoerr_isr.c b/fx2lib/lib/interrupts/ep4isoerr_isr.c
+index dcd7ff90..d198f3b8 100644
+--- a/fx2lib/lib/interrupts/ep4isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep4isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4isoerr_isr() __interrupt(EP4ISOERR_ISR) {}
++void ep4isoerr_isr(void) __interrupt(EP4ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep4pf_isr.c b/fx2lib/lib/interrupts/ep4pf_isr.c
+index 7bbe9f02..14ec7e5b 100644
+--- a/fx2lib/lib/interrupts/ep4pf_isr.c
++++ b/fx2lib/lib/interrupts/ep4pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4pf_isr() __interrupt(EP4PF_ISR){}
++void ep4pf_isr(void) __interrupt(EP4PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep4ping_isr.c b/fx2lib/lib/interrupts/ep4ping_isr.c
+index 8d226856..47de3721 100644
+--- a/fx2lib/lib/interrupts/ep4ping_isr.c
++++ b/fx2lib/lib/interrupts/ep4ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep4ping_isr() __interrupt(EP4PING_ISR) {}
++void ep4ping_isr(void) __interrupt(EP4PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6_isr.c b/fx2lib/lib/interrupts/ep6_isr.c
+index 630f9b26..61801f2f 100644
+--- a/fx2lib/lib/interrupts/ep6_isr.c
++++ b/fx2lib/lib/interrupts/ep6_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6_isr() __interrupt(EP6_ISR) {}
++void ep6_isr(void) __interrupt(EP6_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6ef_isr.c b/fx2lib/lib/interrupts/ep6ef_isr.c
+index e9ba6d54..28b2db39 100644
+--- a/fx2lib/lib/interrupts/ep6ef_isr.c
++++ b/fx2lib/lib/interrupts/ep6ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ef_isr() __interrupt(EP6EF_ISR){}
++void ep6ef_isr(void) __interrupt(EP6EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6ff_isr.c b/fx2lib/lib/interrupts/ep6ff_isr.c
+index 011fe871..051b6e29 100644
+--- a/fx2lib/lib/interrupts/ep6ff_isr.c
++++ b/fx2lib/lib/interrupts/ep6ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ff_isr() __interrupt(EP6FF_ISR){}
++void ep6ff_isr(void) __interrupt(EP6FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6isoerr_isr.c b/fx2lib/lib/interrupts/ep6isoerr_isr.c
+index 8c005777..efae2cfd 100644
+--- a/fx2lib/lib/interrupts/ep6isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep6isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6isoerr_isr() __interrupt(EP6ISOERR_ISR) {}
++void ep6isoerr_isr(void) __interrupt(EP6ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep6pf_isr.c b/fx2lib/lib/interrupts/ep6pf_isr.c
+index 52f6d738..dee40231 100644
+--- a/fx2lib/lib/interrupts/ep6pf_isr.c
++++ b/fx2lib/lib/interrupts/ep6pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6pf_isr() __interrupt(EP6PF_ISR){}
++void ep6pf_isr(void) __interrupt(EP6PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep6ping_isr.c b/fx2lib/lib/interrupts/ep6ping_isr.c
+index 5430f209..9ed855f7 100644
+--- a/fx2lib/lib/interrupts/ep6ping_isr.c
++++ b/fx2lib/lib/interrupts/ep6ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep6ping_isr() __interrupt(EP6PING_ISR) {}
++void ep6ping_isr(void) __interrupt(EP6PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8_isr.c b/fx2lib/lib/interrupts/ep8_isr.c
+index d415a3ec..8ebce9b8 100644
+--- a/fx2lib/lib/interrupts/ep8_isr.c
++++ b/fx2lib/lib/interrupts/ep8_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8_isr() __interrupt(EP8_ISR) {}
++void ep8_isr(void) __interrupt(EP8_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8ef_isr.c b/fx2lib/lib/interrupts/ep8ef_isr.c
+index d04d2376..508f49b9 100644
+--- a/fx2lib/lib/interrupts/ep8ef_isr.c
++++ b/fx2lib/lib/interrupts/ep8ef_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ef_isr() __interrupt(EP8EF_ISR){}
++void ep8ef_isr(void) __interrupt(EP8EF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8ff_isr.c b/fx2lib/lib/interrupts/ep8ff_isr.c
+index d1e5fcd7..88811d7d 100644
+--- a/fx2lib/lib/interrupts/ep8ff_isr.c
++++ b/fx2lib/lib/interrupts/ep8ff_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ff_isr() __interrupt(EP8FF_ISR){}
++void ep8ff_isr(void) __interrupt(EP8FF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8isoerr_isr.c b/fx2lib/lib/interrupts/ep8isoerr_isr.c
+index a7e8e0f9..fa5f54c5 100644
+--- a/fx2lib/lib/interrupts/ep8isoerr_isr.c
++++ b/fx2lib/lib/interrupts/ep8isoerr_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8isoerr_isr() __interrupt(EP8ISOERR_ISR) {}
++void ep8isoerr_isr(void) __interrupt(EP8ISOERR_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ep8pf_isr.c b/fx2lib/lib/interrupts/ep8pf_isr.c
+index 53dcdf27..245fd343 100644
+--- a/fx2lib/lib/interrupts/ep8pf_isr.c
++++ b/fx2lib/lib/interrupts/ep8pf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8pf_isr() __interrupt(EP8PF_ISR){}
++void ep8pf_isr(void) __interrupt(EP8PF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/ep8ping_isr.c b/fx2lib/lib/interrupts/ep8ping_isr.c
+index 5cf05dc7..56965e6a 100644
+--- a/fx2lib/lib/interrupts/ep8ping_isr.c
++++ b/fx2lib/lib/interrupts/ep8ping_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ep8ping_isr() __interrupt(EP8PING_ISR) {}
++void ep8ping_isr(void) __interrupt(EP8PING_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/errlimit_isr.c b/fx2lib/lib/interrupts/errlimit_isr.c
+index cf4e1f61..921b1def 100644
+--- a/fx2lib/lib/interrupts/errlimit_isr.c
++++ b/fx2lib/lib/interrupts/errlimit_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void errlimit_isr() __interrupt(ERRLIMIT_ISR) {}
++void errlimit_isr(void) __interrupt(ERRLIMIT_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/gpifdone_isr.c b/fx2lib/lib/interrupts/gpifdone_isr.c
+index ee5ce1f6..03f0bb5f 100644
+--- a/fx2lib/lib/interrupts/gpifdone_isr.c
++++ b/fx2lib/lib/interrupts/gpifdone_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void gpifdone_isr() __interrupt(GPIFDONE_ISR){}
++void gpifdone_isr(void) __interrupt(GPIFDONE_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/gpifwf_isr.c b/fx2lib/lib/interrupts/gpifwf_isr.c
+index e9941541..b220a9fe 100644
+--- a/fx2lib/lib/interrupts/gpifwf_isr.c
++++ b/fx2lib/lib/interrupts/gpifwf_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void gpifwf_isr() __interrupt(GPIFWF_ISR){}
++void gpifwf_isr(void) __interrupt(GPIFWF_ISR){}
+
+diff --git a/fx2lib/lib/interrupts/hispeed_isr.c b/fx2lib/lib/interrupts/hispeed_isr.c
+index 9daabc12..dcbd0e4b 100644
+--- a/fx2lib/lib/interrupts/hispeed_isr.c
++++ b/fx2lib/lib/interrupts/hispeed_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void hispeed_isr() __interrupt(HISPEED_ISR) {}
++void hispeed_isr(void) __interrupt(HISPEED_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/ibn_isr.c b/fx2lib/lib/interrupts/ibn_isr.c
+index aa0a7523..97fb05e8 100644
+--- a/fx2lib/lib/interrupts/ibn_isr.c
++++ b/fx2lib/lib/interrupts/ibn_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void ibn_isr() __interrupt(IBN_ISR) {}
++void ibn_isr(void) __interrupt(IBN_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sof_isr.c b/fx2lib/lib/interrupts/sof_isr.c
+index 64a409c4..8b0b8654 100644
+--- a/fx2lib/lib/interrupts/sof_isr.c
++++ b/fx2lib/lib/interrupts/sof_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sof_isr() __interrupt(SOF_ISR) {}
++void sof_isr(void) __interrupt(SOF_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/spare_isr.c b/fx2lib/lib/interrupts/spare_isr.c
+index 3b81fd20..effb7d02 100644
+--- a/fx2lib/lib/interrupts/spare_isr.c
++++ b/fx2lib/lib/interrupts/spare_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void spare_isr() __interrupt(RESERVED_ISR) {}
++void spare_isr(void) __interrupt(RESERVED_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sudav_isr.c b/fx2lib/lib/interrupts/sudav_isr.c
+index 4d36b59a..d5ed73bf 100644
+--- a/fx2lib/lib/interrupts/sudav_isr.c
++++ b/fx2lib/lib/interrupts/sudav_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sudav_isr() __interrupt(SUDAV_ISR) {}
++void sudav_isr(void) __interrupt(SUDAV_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/suspend_isr.c b/fx2lib/lib/interrupts/suspend_isr.c
+index cf08b28a..1f471179 100644
+--- a/fx2lib/lib/interrupts/suspend_isr.c
++++ b/fx2lib/lib/interrupts/suspend_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void suspend_isr() __interrupt(SUSPEND_ISR) {}
++void suspend_isr(void) __interrupt(SUSPEND_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/sutok_isr.c b/fx2lib/lib/interrupts/sutok_isr.c
+index 8c7368d2..9c424c67 100644
+--- a/fx2lib/lib/interrupts/sutok_isr.c
++++ b/fx2lib/lib/interrupts/sutok_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void sutok_isr() __interrupt(SUTOK_ISR) {}
++void sutok_isr(void) __interrupt(SUTOK_ISR) {}
+
+diff --git a/fx2lib/lib/interrupts/usbreset_isr.c b/fx2lib/lib/interrupts/usbreset_isr.c
+index 8888eede..5a91e080 100644
+--- a/fx2lib/lib/interrupts/usbreset_isr.c
++++ b/fx2lib/lib/interrupts/usbreset_isr.c
+@@ -17,5 +17,5 @@
+
+ #include <autovector.h>
+
+-void usbreset_isr() __interrupt(USBRESET_ISR) {}
++void usbreset_isr(void) __interrupt(USBRESET_ISR) {}
+
+diff --git a/fx2lib/lib/serial.c b/fx2lib/lib/serial.c
+index 3114d580..60eb0187 100644
+--- a/fx2lib/lib/serial.c
++++ b/fx2lib/lib/serial.c
+@@ -68,7 +68,7 @@ void sio0_init( WORD baud_rate ) __critical { // baud_rate max should be 57600 s
+
+ }
+
+-char getchar() {
++char getchar(void) {
+ char c;
+ while (!RI)
+ ;
+diff --git a/fx2lib/lib/setupdat.c b/fx2lib/lib/setupdat.c
+index 878f7b94..a1eb41d1 100644
+--- a/fx2lib/lib/setupdat.c
++++ b/fx2lib/lib/setupdat.c
+@@ -34,7 +34,7 @@ extern BOOL handle_vendorcommand(BYTE cmd);
+ extern BOOL handle_set_configuration(BYTE cfg);
+ extern BOOL handle_get_interface(BYTE ifc, BYTE* alt_ifc);
+ extern BOOL handle_set_interface(BYTE ifc,BYTE alt_ifc);
+-extern BYTE handle_get_configuration();
++extern BYTE handle_get_configuration(void);
+ extern BOOL handle_set_configuration(BYTE cfg);
+ extern void handle_reset_ep(BYTE ep);
+
+@@ -44,16 +44,16 @@ extern void handle_reset_ep(BYTE ep);
+
+
+ // GET_STATUS,
+-BOOL handle_get_status();
++BOOL handle_get_status(void);
+ // CLEAR_FEATURE,
+-BOOL handle_clear_feature();
++BOOL handle_clear_feature(void);
+ // 0x02 is reserved
+ // SET_FEATURE=0x03,
+-BOOL handle_set_feature();
++BOOL handle_set_feature(void);
+ // 0x04 is reserved
+ // SET_ADDRESS=0x05, // this is handled by EZ-USB core unless RENUM=0
+ // GET_DESCRIPTOR,
+-void handle_get_descriptor();
++void handle_get_descriptor(void);
+ // SET_DESCRIPTOR,
+ // GET_CONFIGURATION, // handled by callback
+ // SET_CONFIGURATION, // handled by callback
+@@ -68,7 +68,7 @@ void handle_get_descriptor();
+ handshake
+ */
+
+-void handle_setupdata() {
++void handle_setupdata(void) {
+ //printf ( "Handle setupdat: %02x\n", SETUPDAT[1] );
+
+ switch ( SETUPDAT[1] ) {
+@@ -156,7 +156,7 @@ __xdata BYTE* ep_addr(BYTE ep) { // bit 8 of ep_num is the direction
+ volatile BOOL self_powered=FALSE;
+ volatile BOOL remote_wakeup_allowed=FALSE;
+
+-BOOL handle_get_status() {
++BOOL handle_get_status(void) {
+
+ switch ( SETUPDAT[0] ) {
+
+@@ -201,7 +201,7 @@ BOOL handle_get_status() {
+ #define GF_DEVICE 0
+ #define GF_ENDPOINT 2
+
+-BOOL handle_clear_feature() {
++BOOL handle_clear_feature(void) {
+ //printf ( "Clear Feature\n" );
+ switch ( SETUPDAT[0] ) {
+ case GF_DEVICE:
+@@ -227,7 +227,7 @@ BOOL handle_clear_feature() {
+ return TRUE;
+ }
+
+-BOOL handle_set_feature() {
++BOOL handle_set_feature(void) {
+ printf ( "Set Feature %02x\n", SETUPDAT[0] );
+ switch ( SETUPDAT[0] ) {
+ case GF_DEVICE:
+@@ -299,7 +299,7 @@ void handle_hispeed(BOOL highspeed) {
+ * String
+ * Other-Speed
+ **/
+-void handle_get_descriptor() {
++void handle_get_descriptor(void) {
+ //printf ( "Get Descriptor\n" );
+
+ switch ( SETUPDAT[3] ) {
diff --git a/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.SlackBuild b/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.SlackBuild
index 72169f9aa7..04547b8cec 100644
--- a/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.SlackBuild
+++ b/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for sigrok fx2lafw firmware
-# Copyright 2019 Andrzej Telszewski, Szczecin
+# Copyright 2024 Andrzej Telszewski, Koszalin
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -32,9 +32,6 @@ PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -44,27 +41,31 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-set -e
+set -eu
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
+
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
+
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+chmod -R a-st,u+rwX,go-w+rX .
+
+patch -p1 < $CWD/patches/00-fx2lafw__silence_integer_overflow_compile_warnings.patch
+patch -p1 < $CWD/patches/01-fx2lib__Update___interrupt_syntax_for_sdcc_4.2.3.patch
+patch -p1 < $CWD/patches/02-fx2lafw__Update___interrupt_syntax_for_sdcc_4.2.3.patch
+patch -p1 < $CWD/patches/03-fx2lafw__Update___at_syntax_for_sdcc_4.2.3.patch
+patch -p1 < $CWD/patches/04-fx2lib_fix_SDCC_warning_283.patch
./configure --prefix=/usr
make
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS ChangeLog COPYING{,.LESSER} INSTALL NEWS README $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS ChangeLog COPYING{,.LESSER} NEWS README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.info b/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.info
index 45cf878407..ee2f6c3ab2 100644
--- a/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.info
+++ b/misc/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw.info
@@ -7,4 +7,4 @@ DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="sdcc"
MAINTAINER="Andrzej Telszewski"
-EMAIL="atelszewski@gmail.com"
+EMAIL="andrzej@telszewski.com"
diff --git a/misc/yubioath-desktop/yubioath-desktop.SlackBuild b/misc/yubioath-desktop/yubioath-desktop.SlackBuild
index 2b0fd0e736..0bb70150f8 100644
--- a/misc/yubioath-desktop/yubioath-desktop.SlackBuild
+++ b/misc/yubioath-desktop/yubioath-desktop.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=yubioath-desktop
-VERSION=${VERSION:-5.0.4}
+VERSION=${VERSION:-5.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +38,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/misc/yubioath-desktop/yubioath-desktop.info b/misc/yubioath-desktop/yubioath-desktop.info
index 6426460d0d..c435869b24 100644
--- a/misc/yubioath-desktop/yubioath-desktop.info
+++ b/misc/yubioath-desktop/yubioath-desktop.info
@@ -1,10 +1,10 @@
PRGNAM="yubioath-desktop"
-VERSION="5.0.4"
+VERSION="5.1.0"
HOMEPAGE="https://www.yubico.com/products/services-software/download/yubico-authenticator/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-5.0.4-linux.AppImage"
-MD5SUM_x86_64="4490045c8910b8f34678a1a3b4541eaa"
+DOWNLOAD_x86_64="https://developers.yubico.com/yubioath-flutter/Releases/yubioath-desktop-5.1.0-linux.AppImage"
+MD5SUM_x86_64="ba9a3d61e6f400f94530baf0f255fee4"
REQUIRES=""
MAINTAINER="Spycrowsoft"
EMAIL="spycrowsoft [ at ] gmail [ dot ] com"
diff --git a/multimedia/droidcam/droidcam.SlackBuild b/multimedia/droidcam/droidcam.SlackBuild
index d2d8ffdfc5..1297ce75f7 100644
--- a/multimedia/droidcam/droidcam.SlackBuild
+++ b/multimedia/droidcam/droidcam.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=droidcam
-VERSION=${VERSION:-1.8.2}
+VERSION=${VERSION:-2.1.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -39,9 +39,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -106,7 +103,7 @@ sed -i "5,6s/local\///" $PKG/usr/share/applications/Droidcam.desktop
sed -i "7s/.*/Icon=\/usr\/share\/icons\/droidcam.png/" $PKG/usr/share/applications/Droidcam.desktop
#Documentation
-cp -a $CWD/README* $PKG/usr/doc/$PRGNAM-$VERSION/
+cp $CWD/README* $PKG/usr/doc/$PRGNAM-$VERSION/
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/multimedia/droidcam/droidcam.info b/multimedia/droidcam/droidcam.info
index 3849af8446..c249de346e 100644
--- a/multimedia/droidcam/droidcam.info
+++ b/multimedia/droidcam/droidcam.info
@@ -1,8 +1,8 @@
PRGNAM="droidcam"
-VERSION="1.8.2"
+VERSION="2.1.3"
HOMEPAGE="https://www.dev47apps.com/"
-DOWNLOAD="https://files.dev47apps.net/linux/droidcam_1.8.2.zip"
-MD5SUM="af019ca66198c501e2ffa813d1c81471"
+DOWNLOAD="https://files.dev47apps.net/linux/droidcam_2.1.3.zip"
+MD5SUM="9e4034e81ba9be6c9a37d6f38c4d4f62"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="android-tools dkms"
diff --git a/multimedia/intel-media-driver/intel-media-driver.info b/multimedia/intel-media-driver/intel-media-driver.info
index 1967da2f92..9516ea42a4 100644
--- a/multimedia/intel-media-driver/intel-media-driver.info
+++ b/multimedia/intel-media-driver/intel-media-driver.info
@@ -1,10 +1,10 @@
PRGNAM="intel-media-driver"
VERSION="21.3.5"
HOMEPAGE="https://github.com/intel/media-driver/"
-DOWNLOAD="https://github.com/intel/media-driver/archive/intel-media-21.3.5/media-driver-intel-media-21.3.5.tar.gz"
-MD5SUM="3ace8aec373b3990acb1e3270e4a9e0b"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/intel/media-driver/archive/intel-media-21.3.5/media-driver-intel-media-21.3.5.tar.gz"
+MD5SUM_x86_64="3ace8aec373b3990acb1e3270e4a9e0b"
REQUIRES="intel-gmmlib"
MAINTAINER="Mario Preksavec"
EMAIL="mario at slackware dot hr"
diff --git a/multimedia/kodi/kodi.info b/multimedia/kodi/kodi.info
index 8ea284404e..5a7f801ab3 100644
--- a/multimedia/kodi/kodi.info
+++ b/multimedia/kodi/kodi.info
@@ -27,6 +27,6 @@ MD5SUM="74501a89f0ea23d2908a9b983ab3d6f8 \
ab9c27629c2a43689c63ff55fd7cbf67"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="zulu-openjdk11 libass flatbuffers tinyxml gtest fmt fstrcmp spdlog tinyxml2 libdisplay-info"
+REQUIRES="zulu-openjdk11 libass flatbuffers tinyxml gtest fstrcmp spdlog tinyxml2 libdisplay-info"
MAINTAINER="Jeremy Hansen"
EMAIL="jebrhansen+SBo@gmail.com"
diff --git a/multimedia/kvazaar/changelog b/multimedia/kvazaar/changelog
index 0ef8f242e1..0816e3f5a5 100644
--- a/multimedia/kvazaar/changelog
+++ b/multimedia/kvazaar/changelog
@@ -12,3 +12,7 @@ updated to version 2.2.0
08/02/2024:
updated to version 2.3.0
+
+23/04/2024:
+
+updated to version 2.3.1
diff --git a/multimedia/kvazaar/kvazaar.SlackBuild b/multimedia/kvazaar/kvazaar.SlackBuild
index 88edf72ac6..c6e432de90 100644
--- a/multimedia/kvazaar/kvazaar.SlackBuild
+++ b/multimedia/kvazaar/kvazaar.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=kvazaar
-VERSION=${VERSION:-2.3.0}
+VERSION=${VERSION:-2.3.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -89,6 +89,8 @@ autoreconf -fiv
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--enable-shared=yes \
+ --disable-static \
+ --with-gnu-ld \
--build=$ARCH-slackware-linux
make
diff --git a/multimedia/kvazaar/kvazaar.info b/multimedia/kvazaar/kvazaar.info
index 8a48c1c2e0..1f2a908be9 100644
--- a/multimedia/kvazaar/kvazaar.info
+++ b/multimedia/kvazaar/kvazaar.info
@@ -1,8 +1,8 @@
PRGNAM="kvazaar"
-VERSION="2.3.0"
+VERSION="2.3.1"
HOMEPAGE="https://github.com/ultravideo/kvazaar"
-DOWNLOAD="https://github.com/ultravideo/kvazaar/archive/v2.3.0/kvazaar-2.3.0.tar.gz"
-MD5SUM="1fd2c07adb3da4d7f71b73b3d206f71f"
+DOWNLOAD="https://github.com/ultravideo/kvazaar/archive/v2.3.1/kvazaar-2.3.1.tar.gz"
+MD5SUM="4ee30f43efea54bee14757f108c1da55"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/sfnt2woff/sfnt2woff.SlackBuild b/multimedia/sfnt2woff/sfnt2woff.SlackBuild
index a20ab3a34d..b357def98c 100644
--- a/multimedia/sfnt2woff/sfnt2woff.SlackBuild
+++ b/multimedia/sfnt2woff/sfnt2woff.SlackBuild
@@ -26,6 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sfnt2woff
+SRCNAM=woff-tools
VERSION=${VERSION:-2009.10.03}
SRCVER=20091003
BUILD=${BUILD:-1}
@@ -40,9 +41,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -67,9 +65,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$SRCVER
-tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz
-cd $PRGNAM-$SRCVER
+rm -rf $SRCNAM-$SRCVER
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz
+cd $SRCNAM-$SRCVER
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -80,13 +78,13 @@ find -L . \
# Ain't really much to the build process
CC="cc $SLCKFLAGS" make
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
# There's no "make install", but we can do that ourselves.
mkdir -p $PKG/usr/bin
cp -a sfnt2woff woff2sfnt $PKG/usr/bin
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/multimedia/sfnt2woff/sfnt2woff.info b/multimedia/sfnt2woff/sfnt2woff.info
index f687f5ca67..1c9e706aeb 100644
--- a/multimedia/sfnt2woff/sfnt2woff.info
+++ b/multimedia/sfnt2woff/sfnt2woff.info
@@ -1,8 +1,8 @@
PRGNAM="sfnt2woff"
VERSION="2009.10.03"
-HOMEPAGE="https://github.com/wget/sfnt2woff"
-DOWNLOAD="https://github.com/wget/sfnt2woff/archive/20091003/sfnt2woff-20091003.tar.gz"
-MD5SUM="38f57b8a1925314ca918280c7536701e"
+HOMEPAGE="https://github.com/wget/woff-tools"
+DOWNLOAD="https://github.com/wget/woff-tools/archive/20091003/woff-tools-20091003.tar.gz"
+MD5SUM="eca28571c45eb412099bb57a0b83ce5e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/shine/fix-bugs.patch b/multimedia/shine/fix-bugs.patch
deleted file mode 100644
index 8e97a12bce..0000000000
--- a/multimedia/shine/fix-bugs.patch
+++ /dev/null
@@ -1,12394 +0,0 @@
-diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
-new file mode 100644
-index 0000000..500a5f6
---- /dev/null
-+++ b/.github/workflows/ci.yml
-@@ -0,0 +1,73 @@
-+name: Build and install
-+
-+on:
-+ push:
-+ branches: [ "main" ]
-+ pull_request:
-+
-+concurrency:
-+ group: ${{ github.workflow }}-${{ github.ref }}
-+ cancel-in-progress: true
-+
-+jobs:
-+ build:
-+ runs-on: ${{ matrix.os }}
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ os: [macos-latest, ubuntu-latest]
-+ steps:
-+ - uses: actions/checkout@v3
-+ - name: Install required packages on macos
-+ if: matrix.os == 'macos-latest'
-+ run: brew install autoconf automake pkg-config
-+ - name: Install required packages on ubuntu
-+ if: matrix.os == 'ubuntu-latest'
-+ run: sudo apt-get -y install automake autoconf pkg-config
-+ - name: bootstrap
-+ run: ./bootstrap
-+ - name: configure
-+ run: ./configure
-+ - name: make
-+ run: make
-+ - name: make install on macos
-+ if: matrix.os == 'macos-latest'
-+ run: make install
-+ - name: make install on ubuntu
-+ if: matrix.os == 'ubuntu-latest'
-+ run: sudo make install
-+ - name: Test pkg-config setup
-+ run: pkg-config --libs shine
-+
-+ android_build:
-+ runs-on: ubuntu-latest
-+ steps:
-+ - uses: actions/checkout@v3
-+ - uses: nttld/setup-ndk@v1
-+ with:
-+ ndk-version: r25b
-+ local-cache: true
-+ - name: Install autoconf/automake
-+ run: sudo apt-get -y install automake autoconf
-+ - name: bootstrap
-+ run: ./bootstrap
-+ - name: configure
-+ run: ./configure
-+ - name: make android
-+ run: make android
-+
-+ js_build:
-+ runs-on: ubuntu-latest
-+ steps:
-+ - uses: actions/checkout@v3
-+ - uses: mymindstorm/setup-emsdk@v11
-+ - name: JS build
-+ run: |
-+ cd js
-+ make
-+ - uses: actions/setup-node@v3
-+ - name: Run node test
-+ run: |
-+ cd js/test/node
-+ npm install
-+ npm run test
-diff --git a/.gitignore b/.gitignore
-index aa76abe..ffdd74d 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -2,9 +2,9 @@
- obj
- libs
- compile
--android/lib
--android/include
--android/bin
-+android/
-+js/src/post-node.js
-+!android/*.mk
- shine
- shine.pc
- m4
-@@ -82,6 +82,6 @@ src/lib/reservoir.o
- src/lib/tables.lo
- src/lib/tables.o
- shine-*.tar.gz
--*.bc
-+*.o
- *.mp3
- node_modules
-diff --git a/ChangeLog b/ChangeLog
-index 122dae5..0713282 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,8 @@
-+x.y.z ()
-+=====
-+* Be more specific when enabling MIPS assembly routines.
-+* Fix wave header reading on big endian machines (#34)
-+
- 3.1.1 (2017-07-28)
- =====
- * Remove invalid MPEG 2.5 bitrates.
-diff --git a/Makefile.am b/Makefile.am
-index bebf32d..538256c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -26,14 +26,14 @@ pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = shine.pc
-
- android:
-- [ -d android/bin ] || mkdir android/bin
- [ -d android/include ] || mkdir android/include
-- [ -d android/lib ] || mkdir android/lib
-- NDK_PROJECT_PATH=$(shell pwd) ndk-build APP_BUILD_SCRIPT=$(shell pwd)/android/Library.mk
-- cp libs/armeabi/libshine.so android/lib
-+ [ -d android/lib ] || mkdir android/lib
-+ [ -d android/bin ] || mkdir android/bin
- cp src/lib/layer3.h android/include
-+ NDK_PROJECT_PATH=$(shell pwd) ndk-build APP_BUILD_SCRIPT=$(shell pwd)/android/Library.mk
-+ mv libs/* android/lib
- NDK_PROJECT_PATH=$(shell pwd) ndk-build APP_BUILD_SCRIPT=$(shell pwd)/android/Binary.mk
-- cp libs/armeabi/shineenc android/bin
-+ mv libs/* android/bin
-
- clean-local:
- -rm -rf obj libs android/lib android/bin android/include
-diff --git a/README.md b/README.md
-index 1d30cbd..e9b781a 100644
---- a/README.md
-+++ b/README.md
-@@ -2,15 +2,15 @@ Shine: fast fixed-point mp3 encoding
- ====================================
-
- [shine](https://github.com/savonet/shine) is a blazing fast mp3 encoding library implemented in
--fixed-point arithmetic. The library can thus be used to performe super fast mp3 encoding on architectures
--without a FPU, such as `armel`, etc.. It is also, however, also super fast on architectures with a FPU!
-+fixed-point arithmetic. The library can thus be used to perform super fast mp3 encoding on architectures
-+without a FPU, such as `armel`, etc.. It is also super fast on architectures with a FPU!
-
- How to use?
- -----------
-
- The encoding API should be quite straight forward:
-
--```
-+```c
- #include <shine/layer3.h>
-
- (...)
-@@ -42,46 +42,47 @@ shine_close(s);
- How fast is it?
- ---------------
-
--On a [Raspberry Pi](http://www.raspberrypi.org/) (`ARM`, `FPU`):
-+On a macbook pro (`arm64`/M1 pro, `FPU`, December 30, 2022):
-
--Lame, `3m06s`, `1.8x` realtime:
--```
--pi@raspberrypi ~ $ lame bla.wav bla.mp3
--LAME 3.99.5 32bits (http://lame.sf.net)
-+Lame, `88.7x` realtime:
-+```bash
-+LAME 3.100 64bits (http://lame.sf.net)
- Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
--Encoding bla.wav to bla.mp3
-+Encoding /tmp/decoded.wav to /tmp/lame.mp3
- Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3
- Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
-- 12987/12987 (100%)| 3:06/ 3:06| 3:06/ 3:06| 1.8216x| 0:00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-+ 12203/12203 (100%)| 0:03/ 0:03| 0:04/ 0:04| 88.773x| 0:00
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- kbps LR MS % long switch short %
-- 128.0 0.1 99.9 89.1 6.1 4.9
-+ 128.0 32.6 67.4 96.4 1.9 1.7
- Writing LAME Tag...done
--ReplayGain: -10.5dB
-+ReplayGain: -9.3dB
-+lame -b 128 /tmp/decoded.wav /tmp/lame.mp3 3.55s user 0.05s system 99% cpu 3.609 total
- ```
-
--Shine, `1m35s`, `3.6x` realtime:
-+Shine, `318.0x` realtime:
- ```
--pi@raspberrypi ~ $ shineenc bla.wav bla.mp3
- shineenc (Liquidsoap version)
--WAVE PCM Data, stereo 44100Hz 16bit, duration: 00:05:39
-+WAVE PCM Data, stereo 44100Hz 16bit, duration: 00:05:18
- MPEG-I layer III, stereo Psychoacoustic Model: Shine
- Bitrate: 128 kbps De-emphasis: none Original
--Encoding "bla.wav" to "bla.mp3"
--Finished in 00:01:35 (3.6x realtime)
-+Encoding "/tmp/bla.wav" to "/tmp/shine.mp3"
-+Finished in 00:00:01 (318.0x realtime)
- ```
-
--Now, on a mac airbook (`x86_64`, `FPU`):
-+### ⚠ The following are outdated tests ⚠
-
--Lame, `15s`, `22x` realtime:
--```
--toots@zulu tmp % lame bla.wav bla.mp3
--LAME 3.99.5 64bits (http://lame.sf.net)
-+On a [Raspberry Pi](http://www.raspberrypi.org/) (`ARM`, `FPU`):
-+
-+Lame, `1.8x` realtime:
-+```bash
-+pi@raspberrypi ~ $ lame bla.wav bla.mp3
-+LAME 3.99.5 32bits (http://lame.sf.net)
- Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
- Encoding bla.wav to bla.mp3
- Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3
- Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
-- 12987/12987 (100%)| 0:15/ 0:15| 0:17/ 0:17| 22.087x| 0:00
-+ 12987/12987 (100%)| 3:06/ 3:06| 3:06/ 3:06| 1.8216x| 0:00
- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- kbps LR MS % long switch short %
- 128.0 0.1 99.9 89.1 6.1 4.9
-@@ -89,20 +90,21 @@ Writing LAME Tag...done
- ReplayGain: -10.5dB
- ```
-
--Shine, `9s`, `37.7x` realtime:
--```
-+Shine, `3.6x` realtime:
-+```bash
-+pi@raspberrypi ~ $ shineenc bla.wav bla.mp3
- shineenc (Liquidsoap version)
- WAVE PCM Data, stereo 44100Hz 16bit, duration: 00:05:39
- MPEG-I layer III, stereo Psychoacoustic Model: Shine
- Bitrate: 128 kbps De-emphasis: none Original
--Encoding "/tmp/bla.wav" to "/tmp/bla.mp3"
--Finished in 00:00:09 (37.7x realtime)
-+Encoding "bla.wav" to "bla.mp3"
-+Finished in 00:01:35 (3.6x realtime)
- ```
-
- On a Google Nexus 5 (`ARM`, `FPU`):
-
- Shine, `14s`, `24.2x` realtime:
--```
-+```bash
- u0_a65@hammerhead:/mnt/sdcard $ shineenc bla.wav bla.mp3
- shineenc (Liquidsoap version)
- WAVE PCM Data, stereo 44100Hz 16bit, duration: 00:05:39
-@@ -128,7 +130,7 @@ A bit of history
- This code was dug out from the dusty crates of those times before internet
- and github. It apparently was created by Gabriel Bouvigne sometime around
- the end of the 20th century. The encoder was converted circa 2001 by Pete
--Everett to fixed-point arithmetic for the RISC OS. Latest we know, Patrick
-+Everett to fixed-point arithmetic for the RISC OS. Last we know, Patrick
- Roberts had worked on the code to make it multi-platform and more library
- oriented. That was around 2006.
-
-diff --git a/configure.ac b/configure.ac
-index 87a5f68..6d6cb23 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,6 +1,7 @@
--AC_INIT([shine],[3.1.0],[savonet-users@lists.sourceforge.net])
-+AC_INIT([shine],[3.1.1],[toots@rastageeks.org])
- AM_INIT_AUTOMAKE([subdir-objects])
- LT_INIT
- AC_CONFIG_MACRO_DIR([m4])
- AC_C_BIGENDIAN([CFLAGS="$CFLAGS -DSHINE_BIG_ENDIAN"])
-+AC_CHECK_HEADER([byteswap.h],[CFLAGS="$CFLAGS -DSHINE_HAVE_BSWAP_H"])
- AC_OUTPUT([Makefile shine.pc])
-diff --git a/js/.npmignore b/js/.npmignore
-new file mode 100644
-index 0000000..f1b84a5
---- /dev/null
-+++ b/js/.npmignore
-@@ -0,0 +1,4 @@
-+test/
-+src/
-+Makefile
-+.*
-diff --git a/js/.prettierignore b/js/.prettierignore
-new file mode 100644
-index 0000000..1b64941
---- /dev/null
-+++ b/js/.prettierignore
-@@ -0,0 +1,5 @@
-+.next/
-+dist/
-+stubs/
-+public/audio
-+__ENV.js
-diff --git a/js/.prettierrc b/js/.prettierrc
-new file mode 100644
-index 0000000..a995c49
---- /dev/null
-+++ b/js/.prettierrc
-@@ -0,0 +1,12 @@
-+{
-+ "singleQuote": false,
-+ "quoteProps": "as-needed",
-+ "arrowParens": "avoid",
-+ "tabWidth": 2,
-+ "trailingComma": "es5",
-+ "semi": true,
-+ "jsxSingleQuote": true,
-+ "bracketSameLine": false,
-+ "printWidth": 120,
-+ "parser": "typescript"
-+}
-diff --git a/js/Makefile b/js/Makefile
-index 465ffde..3781b6e 100644
---- a/js/Makefile
-+++ b/js/Makefile
-@@ -1,24 +1,37 @@
- # Emscriptem compilation
-
- EMCC:=emcc
--EXPORTED_FUNCTIONS:='["_shine_check_config", "_shine_js_init",\
-+EXPORTED_FUNCTIONS:='["_malloc", "_free", "_shine_check_config", "_shine_js_init",\
-+ "_shine_js_int16_len", "_shine_js_ptr_len", \
- "_shine_samples_per_pass", "_shine_encode_buffer",\
-- "_shine_flush", "_shine_close"]'
-+ "_shine_flush", "_shine_close"]'
- CFLAGS:=-O3
--LINKFLAGS:=-s EXPORTED_FUNCTIONS=$(EXPORTED_FUNCTIONS) --memory-init-file 0 $(CFLAGS)
-+LINKFLAGS:=-s EXPORTED_FUNCTIONS=$(EXPORTED_FUNCTIONS) -s SINGLE_FILE=1 -s EXPORTED_RUNTIME_METHODS=setValue,getValue --memory-init-file 0 $(CFLAGS)
-+WEB_LINKFLAGS:=$(LINKFLAGS) -s ENVIRONMENT='web' -s EXPORT_NAME='createModule' -s USE_ES6_IMPORT_META=0
-
- C_FILES:=$(wildcard ../src/lib/*.c) src/wrapper.c
- HEADER_FILES:=$(wildcard ../src/lib/*.h)
- SOURCES:=$(C_FILES) $(HEADER_FILES)
--OBJECTS:=$(C_FILES:%.c=%.bc)
-+OBJECTS:=$(C_FILES:%.c=%.o)
-
--all: dist/libshine.js
-+all: dist/libshine_node.js dist/libshine_browser.js
-
--dist/libshine.js: $(SOURCES) $(OBJECTS) src/pre.js src/post.js
-- $(EMCC) $(LINKFLAGS) --pre-js src/pre.js --post-js src/post.js $(OBJECTS) -o $@
-+src/post-node.js: src/libshine_class.js src/libshine_node_wrapper.js
-+ rm -f src/post-node.js
-+ cat src/libshine_class.js src/libshine_node_wrapper.js > src/post-node.js
-
--%.bc: %.c
-+dist/libshine_node.js: $(SOURCES) $(OBJECTS) src/post-node.js
-+ $(EMCC) $(LINKFLAGS) --post-js src/post-node.js $(OBJECTS) -o dist/libshine_node.js
-+
-+dist/libshine_browser_stubs.js: $(SOURCES) $(OBJECTS)
-+ $(EMCC) $(WEB_LINKFLAGS) $(OBJECTS) -o dist/libshine_browser_stubs.mjs
-+ mv dist/libshine_browser_stubs.mjs dist/libshine_browser_stubs.js
-+
-+dist/libshine_browser.js: src/libshine_class.js src/libshine_browser_wrapper.js dist/libshine_browser_stubs.js
-+ cat src/libshine_class.js src/libshine_browser_wrapper.js > dist/libshine_browser.js
-+
-+%.o: %.c
- $(EMCC) $(CFLAGS) -I../src/lib -c $< -o $@
-
- clean:
-- rm -f *.bc ../src/lib/*.bc
-+ rm -rf *.o ../src/lib/*.o dist/libshine*js
-diff --git a/js/README.md b/js/README.md
-index 49ca3f6..d521d4b 100644
---- a/js/README.md
-+++ b/js/README.md
-@@ -1,112 +1,156 @@
- Shine encoder library for Javascript
- ====================================
-
--This directory contains a build of shine for Javascript using
--[kripken/emscripten](https://github.com/kripken/emscripten) and
--located in `dist/libshine.js`
-+This package contains a build of the [shine](https://github.com/toots/shine) fixed-point
-+mp3 encoder compiled for Javascript and wasm using [emscripten-core/emscripten](https://github.com/emscripten-core/emscripten).
-+
-+Install
-+-------
-+
-+Using `npm`:
-+
-+```shell
-+npm install @toots/shine.js
-+```
-+
-+Using `yarn`:
-+
-+```shell
-+yarn add @toots/shine.js
-+```
-+
-+Using `pnpm`:
-+
-+```shell
-+pnpm install @toots/shine.js
-+```
-+
-+In a HTML page:
-+
-+When using `webpack`, the package should point to the correct
-+`libshine_browser.js` file automatically.
-+
-+When using directly as a script, you can load the `libshine_node.js`
-+file as:
-+
-+```html
-+<script src="libshine_node.js"></script>
-+```
-+
-+See: [test/browser](https://github.com/toots/shine/tree/main/js/test/browser) for an example.
-
- How to use?
- -----------
-
- The encoding API should be quite straight forward:
-
--```
--shine = new Shine({
-- samplerate: 44100,
-- bitrate: 128,
-- channels: 2,
-- mode: Shine.STEREO
--});
-+```js
-+import { Shine, StereoModel } from "@toots/shine.js";
-+
-+const exec = async () => {
-+ await Shine.initialized;
-+
-+ shine = new Shine({
-+ samplerate: 44100,
-+ bitrate: 128,
-+ channels: 2,
-+ stereoModel: StereoModel.STEREO
-+ });
-
--// All the magic happens here
--while (..) {
-- // data here is an array of channels.
-- // Channels must have the same number of samples
-- // and both be either Int16Array or Float32Array.
-- encoded = shine.encode(data);
-+ // All the magic happens here
-+ while (..) {
-+ // data here is an array of channels.
-+ // Channels must have the same number of samples
-+ // and both be either Int16Array or Float32Array.
-+ encoded = shine.encode(data);
-+ ...
-+ }
-+
-+ // Close and get remaining data.
-+ flushed = shine.close();
-+
- ...
- }
-
--// Close and get remaining data.
--flushed = shine.close();
--...
-+exec();
- ```
-
- How fast is it?
- ---------------
-
--You can run the test suite located in `test/`. As of now (26/07/2014), only firefox
--and seems to show performances decent enough for real-time encoding while Google Chrome
--can encode between 1X and 2X.
-+You can run the test suite located in `test/`. Encoding rate above `1X` means that
-+the browser should be suitable for real-time encoding.
-+
-+Results, as of December 30, 2022:
-
--Chrome:
-+Chrome (`108.0.5359.124`):
- ```
- Executing encoding test
- Got WAV file.
- Encoding..
- Done encoding.
- File duration: 5.57 seconds
--Encoding time: 5.18 seconds
--Encoding rate: 1.08X
-+Encoding time: 0.08 seconds
-+Encoding rate: 67.96X
-
- Executing rounds test
- Encoding 50 buffers of 4096 samples
- Done encoding
- Total duration: 4.64
--Encoding time: 2.73
--Encoding rate: 1.70X
-+Encoding time: 0.03
-+Encoding rate: 160.00X
- ```
-
--Firefox:
-+Firefox (`108.0.1`):
- ```
- Executing encoding test
- Got WAV file.
- Encoding..
- Done encoding.
- File duration: 5.57 seconds
--Encoding time: 1.48 seconds
--Encoding rate: 3.76X
-+Encoding time: 0.06 seconds
-+Encoding rate: 99.52X
-
- Executing rounds test
- Encoding 50 buffers of 4096 samples
- Done encoding
- Total duration: 4.64
--Encoding time: 0.98
--Encoding rate: 4.72X
-+Encoding time: 0.03
-+Encoding rate: 178.46X
- ```
-
--Safari:
-+Safari (`16.2`):
- ```
- Executing encoding test
- Got WAV file.
- Encoding..
- Done encoding.
- File duration: 5.57 seconds
--Encoding time: 11.77 seconds
--Encoding rate: 0.47X
-+Encoding time: 0.12 seconds
-+Encoding rate: 46.44X
-
- Executing rounds test
- Encoding 50 buffers of 4096 samples
- Done encoding
- Total duration: 4.64
--Encoding time: 6.93
--Encoding rate: 0.67X
-+Encoding time: 0.02
-+Encoding rate: 210.91X
- ```
-
--NodeJS, v0.10.24:
-+NodeJS (`v19.3.0`):
- ```
- Executing encoding test
- Got WAV file.
- Encoding..
- Done encoding.
- File duration: 5.57 seconds
--Encoding time: 22.57 seconds
--Encoding rate: 0.25X
-+Encoding time: 0.06 seconds
-+Encoding rate: 94.45X
-
- Executing rounds test
- Encoding 50 buffers of 4096 samples
- Done encoding
- Total duration: 4.64
--Encoding time: 11.46
--Encoding rate: 0.40X
-+Encoding time: 0.03
-+Encoding rate: 178.46X
- ```
-diff --git a/js/dist/libshine.js b/js/dist/libshine.js
-deleted file mode 100644
-index c44f119..0000000
---- a/js/dist/libshine.js
-+++ /dev/null
-@@ -1,16 +0,0 @@
--var Shine=(function(){var context={};return(function(){var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+10560;__ATINIT__.push();allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,104,18,0,0,108,29,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,112,18,0,0,112,29,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,130,18,0,0,121,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,148,18,0,0,130,29,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,180,18,0,0,146,29,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,212,18,0,0,162,29,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,28,19,0,0,198,29,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,100,19,0,0,234,29,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,172,19,0,0,14,30,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,44,20,0,0,78,30,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,172,20,0,0,142,30,0,0,16,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,44,21,0,0,206,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,44,23,0,0,206,31,0,0,16,0,0,0,16,0,0,0,1,0,0,0,1,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,2,0,0,0,3,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,3,0,0,0,7,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,4,0,0,0,15,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,6,0,0,0,63,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,8,0,0,0,255,0,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,10,0,0,0,255,3,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,13,0,0,0,255,31,0,0,44,25,0,0,206,32,0,0,16,0,0,0,16,0,0,0,4,0,0,0,15,0,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,5,0,0,0,31,0,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,6,0,0,0,63,0,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,7,0,0,0,127,0,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,8,0,0,0,255,0,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,9,0,0,0,255,1,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,11,0,0,0,255,7,0,0,44,27,0,0,206,33,0,0,16,0,0,0,16,0,0,0,13,0,0,0,255,31,0,0,44,27,0,0,206,33,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,44,29,0,0,206,34,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,76,29,0,0,222,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,6,0,0,0,11,0,0,0,16,0,0,0,21,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,68,172,0,0,128,187,0,0,0,125,0,0,34,86,0,0,192,93,0,0,128,62,0,0,17,43,0,0,224,46,0,0,64,31,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,0,0,0,255,255,255,255,8,0,0,0,32,0,0,0,16,0,0,0,255,255,255,255,16,0,0,0,40,0,0,0,24,0,0,0,255,255,255,255,24,0,0,0,48,0,0,0,32,0,0,0,255,255,255,255,32,0,0,0,56,0,0,0,40,0,0,0,255,255,255,255,40,0,0,0,64,0,0,0,48,0,0,0,255,255,255,255,48,0,0,0,80,0,0,0,56,0,0,0,255,255,255,255,56,0,0,0,96,0,0,0,64,0,0,0,255,255,255,255,64,0,0,0,112,0,0,0,255,255,255,255,255,255,255,255,80,0,0,0,128,0,0,0,255,255,255,255,255,255,255,255,96,0,0,0,160,0,0,0,255,255,255,255,255,255,255,255,112,0,0,0,192,0,0,0,255,255,255,255,255,255,255,255,128,0,0,0,224,0,0,0,255,255,255,255,255,255,255,255,144,0,0,0,0,1,0,0,255,255,255,255,255,255,255,255,160,0,0,0,64,1,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,52,0,0,0,62,0,0,0,74,0,0,0,90,0,0,0,110,0,0,0,134,0,0,0,162,0,0,0,196,0,0,0,238,0,0,0,32,1,0,0,86,1,0,0,162,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,42,0,0,0,50,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,106,0,0,0,128,0,0,0,156,0,0,0,190,0,0,0,230,0,0,0,20,1,0,0,74,1,0,0,128,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,82,0,0,0,102,0,0,0,126,0,0,0,156,0,0,0,194,0,0,0,240,0,0,0,40,1,0,0,108,1,0,0,192,1,0,0,38,2,0,0,64,2,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,114,0,0,0,136,0,0,0,162,0,0,0,194,0,0,0,232,0,0,0,22,1,0,0,74,1,0,0,138,1,0,0,208,1,0,0,28,2,0,0,64,2,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,45,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,248,0,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,12,0,0,0,24,0,0,0,36,0,0,0,48,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,108,0,0,0,132,0,0,0,160,0,0,0,192,0,0,0,232,0,0,0,24,1,0,0,80,1,0,0,144,1,0,0,220,1,0,0,54,2,0,0,56,2,0,0,58,2,0,0,60,2,0,0,62,2,0,0,64,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,247,255,255,157,247,255,255,157,247,255,255,157,247,255,255,157,247,255,255,157,247,255,255,58,239,255,255,58,239,255,255,58,239,255,255,58,239,255,255,214,230,255,255,214,230,255,255,214,230,255,255,115,222,255,255,115,222,255,255,15,214,255,255,15,214,255,255,172,205,255,255,72,197,255,255,229,188,255,255,229,188,255,255,129,180,255,255,30,172,255,255,186,163,255,255,87,155,255,255,144,138,255,255,44,130,255,255,101,113,255,255,2,105,255,255,59,88,255,255,215,79,255,255,16,63,255,255,73,46,255,255,31,21,255,255,88,4,255,255,145,243,254,255,103,218,254,255,60,193,254,255,18,168,254,255,75,151,254,255,32,126,254,255,146,92,254,255,104,67,254,255,61,42,254,255,175,8,254,255,133,239,253,255,91,214,253,255,205,180,253,255,162,155,253,255,20,122,253,255,134,88,253,255,92,63,253,255,49,38,253,255,163,4,253,255,221,243,252,255,178,218,252,255,136,193,252,255,163,87,3,0,106,104,3,0,49,121,3,0,148,129,3,0,248,137,3,0,91,146,3,0,91,146,3,0,248,137,3,0,148,129,3,0,205,112,3,0,6,96,3,0,120,62,3,0,234,28,3,0,249,242,2,0,164,192,2,0,79,142,2,0,51,75,2,0,180,255,1,0,209,171,1,0,139,79,1,0,126,226,0,0,112,117,0,0,157,247,255,255,101,113,255,255,202,226,254,255,104,67,254,255,162,155,253,255,121,235,252,255,236,50,252,255,153,105,251,255,226,151,250,255,199,189,249,255,230,210,248,255,4,232,247,255,92,236,246,255,80,232,245,255,68,228,244,255,212,215,243,255,1,195,242,255,203,165,241,255,49,128,240,255,250,98,239,255,96,61,238,255,198,23,237,255,45,242,235,255,147,204,234,255,92,175,233,255,137,154,232,255,182,133,231,255,71,121,230,255,59,117,229,255,246,129,228,255,120,159,227,255,93,197,226,255,109,4,226,255,68,84,225,255,69,189,224,255,113,63,224,255,199,218,223,255,171,151,223,255,186,109,223,255,86,101,223,255,129,126,223,255,157,193,223,255,86,209,31,0,187,66,31,0,203,129,30,0,233,150,29,0,179,121,28,0,39,42,27,0,171,176,25,0,118,252,23,0,235,21,22,0,13,253,19,0,117,169,17,0,236,43,15,0,72,107,12,0,235,111,9,0,156,74,6,0,50,226,2,0,215,79,255,255,195,130,251,255,247,122,247,255,57,73,243,255,38,229,238,255,190,78,234,255,101,142,229,255,27,164,224,255,66,152,219,255,120,98,214,255,132,19,209,255,2,163,203,255,85,25,198,255,69,135,192,255,10,220,186,255,207,48,181,255,49,125,175,255,147,201,169,255,188,38,164,255,72,140,158,255,255,10,153,255,224,162,147,255,179,100,142,255,19,72,137,255,44,102,132,255,254,190,127,255,135,82,123,255,144,49,119,255,124,100,115,255,174,243,111,255,39,223,108,255,16,64,106,255,163,5,104,255,11,73,102,255,170,18,101,255,129,98,100,255,86,73,100,255,42,199,100,255,97,228,101,255,93,169,103,255,130,30,106,255,52,76,109,255,115,50,113,255,5,226,117,255,135,82,123,255,93,140,129,255,78,160,136,255,245,133,144,255,73,186,102,0,9,24,93,0,17,164,82,0,56,69,71,0,226,3,59,0,13,224,45,0,86,209,31,0,133,232,16,0,210,20,1,0,6,103,240,255,187,214,222,255,85,108,204,255,213,39,185,255,1,26,165,255,118,58,144,255,151,145,122,255,200,39,100,255,109,5,77,255,232,50,53,255,58,176,28,255,142,150,3,255,227,229,233,254,156,166,207,254,130,233,180,254,90,191,153,254,37,40,126,254,169,52,98,254,18,254,69,254,251,123,41,254,243,207,12,254,92,2,240,253,255,35,211,253,63,61,182,253,226,94,153,253,19,162,124,253,209,6,96,253,172,174,67,253,163,153,39,253,67,233,11,253,141,157,240,252,171,207,213,252,1,136,187,252,86,215,161,252,212,214,136,252,223,142,112,252,218,7,89,252,239,90,66,252,130,144,44,252,247,176,23,252,120,213,3,252,105,6,241,251,44,76,223,251,38,175,206,251,29,64,191,251,117,7,177,251,145,13,164,251,214,90,152,251,165,247,141,251,0,228,132,251,174,48,125,251,173,221,118,251,255,234,113,251,7,97,110,251,197,63,108,251,200,120,148,4,59,192,147,4,249,158,145,4,1,21,142,4,83,34,137,4,82,207,130,4,0,28,123,4,91,8,114,4,42,165,103,4,111,242,91,4,139,248,78,4,227,191,64,4,218,80,49,4,212,179,32,4,151,249,14,4,136,42,252,3,9,79,232,3,126,111,211,3,17,165,189,3,38,248,166,3,33,113,143,3,44,41,119,3,170,40,94,3,255,119,68,3,85,48,42,3,115,98,15,3,189,22,244,2,93,102,216,2,84,81,188,2,47,249,159,2,237,93,131,2,30,161,102,2,193,194,73,2,1,220,44,2,164,253,15,2,13,48,243,1,5,132,214,1,238,1,186,1,87,203,157,1,219,215,129,1,166,64,102,1,126,22,75,1,100,89,48,1,29,26,22,1,114,105,252,0,198,79,227,0,24,205,202,0,147,250,178,0,56,216,155,0,105,110,133,0,138,197,111,0,255,229,90,0,43,216,70,0,171,147,51,0,69,41,33,0,250,152,15,0,46,235,254,255,123,23,239,255,170,46,224,255,243,31,210,255,30,252,196,255,200,186,184,255,239,91,173,255,247,231,162,255,73,186,102,0,11,122,111,0,178,95,119,0,163,115,126,0,121,173,132,0,251,29,138,0,141,205,142,0,204,179,146,0,126,225,149,0,163,86,152,0,159,27,154,0,214,56,155,0,170,182,155,0,127,157,155,0,86,237,154,0,245,182,153,0,93,250,151,0,240,191,149,0,217,32,147,0,82,12,144,0,132,155,140,0,112,206,136,0,121,173,132,0,2,65,128,0,212,153,123,0,237,183,118,0,77,155,113,0,32,93,108,0,1,245,102,0,184,115,97,0,68,217,91,0,109,54,86,0,207,130,80,0,49,207,74,0,246,35,69,0,187,120,63,0,171,230,57,0,254,92,52,0,124,236,46,0,136,157,41,0,190,103,36,0,229,91,31,0,155,113,26,0,66,177,21,0,218,26,17,0,199,182,12,0,9,133,8,0,61,125,4,0,41,176,0,0,206,29,253,255,100,181,249,255,21,144,246,255,184,148,243,255,20,212,240,255,139,86,238,255,243,2,236,255,21,234,233,255,138,3,232,255,85,79,230,255,217,213,228,255,77,134,227,255,23,105,226,255,53,126,225,255,69,189,224,255,86,209,31,0,99,62,32,0,127,129,32,0,170,154,32,0,70,146,32,0,85,104,32,0,57,37,32,0,143,192,31,0,187,66,31,0,188,171,30,0,147,251,29,0,163,58,29,0,136,96,28,0,10,126,27,0,197,138,26,0,185,134,25,0,74,122,24,0,119,101,23,0,164,80,22,0,109,51,21,0,211,13,20,0,58,232,18,0,160,194,17,0,6,157,16,0,207,127,15,0,53,90,14,0,255,60,13,0,44,40,12,0,188,27,11,0,176,23,10,0,164,19,9,0,252,23,8,0,26,45,7,0,57,66,6,0,30,104,5,0,103,150,4,0,20,205,3,0,135,20,3,0,94,100,2,0,152,188,1,0,54,29,1,0,155,142,0,0,99,8,0,0,144,138,255,255,130,29,255,255,117,176,254,255,47,84,254,255,76,0,254,255,205,180,253,255,177,113,253,255,92,63,253,255,7,13,253,255,22,227,252,255,136,193,252,255,250,159,252,255,51,143,252,255,108,126,252,255,8,118,252,255,165,109,252,255,165,109,252,255,8,118,252,255,108,126,252,255,207,134,252,255,150,151,252,255,163,87,3,0,120,62,3,0,78,37,3,0,35,12,3,0,93,251,2,0,207,217,2,0,164,192,2,0,122,167,2,0,236,133,2,0,94,100,2,0,51,75,2,0,165,41,2,0,123,16,2,0,81,247,1,0,195,213,1,0,152,188,1,0,110,163,1,0,224,129,1,0,181,104,1,0,238,87,1,0,196,62,1,0,153,37,1,0,111,12,1,0,168,251,0,0,225,234,0,0,183,209,0,0,240,192,0,0,41,176,0,0,197,167,0,0,254,150,0,0,155,142,0,0,212,125,0,0,112,117,0,0,169,100,0,0,70,92,0,0,226,83,0,0,127,75,0,0,27,67,0,0,27,67,0,0,184,58,0,0,84,50,0,0,241,41,0,0,241,41,0,0,141,33,0,0,141,33,0,0,42,25,0,0,42,25,0,0,42,25,0,0,198,16,0,0,198,16,0,0,198,16,0,0,198,16,0,0,99,8,0,0,99,8,0,0,99,8,0,0,99,8,0,0,99,8,0,0,99,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,52,37,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,17,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,3,0,1,0,1,0,3,0,2,0,0,0,3,0,2,0,1,0,1,0,1,0,1,0,3,0,2,0,0,0,1,0,2,0,6,0,5,0,3,0,1,0,4,0,4,0,7,0,5,0,7,0,1,0,6,0,1,0,1,0,0,0,7,0,3,0,5,0,1,0,6,0,2,0,3,0,2,0,5,0,4,0,4,0,1,0,3,0,3,0,2,0,0,0,1,0,2,0,10,0,19,0,16,0,10,0,3,0,3,0,7,0,10,0,5,0,3,0,11,0,4,0,13,0,17,0,8,0,4,0,12,0,11,0,18,0,15,0,11,0,2,0,7,0,6,0,9,0,14,0,3,0,1,0,6,0,4,0,5,0,3,0,2,0,0,0,3,0,4,0,6,0,18,0,12,0,5,0,5,0,1,0,2,0,16,0,9,0,3,0,7,0,3,0,5,0,14,0,7,0,3,0,19,0,17,0,15,0,13,0,10,0,4,0,13,0,5,0,8,0,11,0,5,0,1,0,12,0,4,0,4,0,1,0,1,0,0,0,7,0,5,0,9,0,14,0,15,0,7,0,6,0,4,0,5,0,5,0,6,0,7,0,7,0,6,0,8,0,8,0,8,0,5,0,15,0,6,0,9,0,10,0,5,0,1,0,11,0,7,0,9,0,6,0,4,0,1,0,14,0,4,0,6,0,2,0,6,0,0,0,1,0,2,0,10,0,23,0,35,0,30,0,12,0,17,0,3,0,3,0,8,0,12,0,18,0,21,0,12,0,7,0,11,0,9,0,15,0,21,0,32,0,40,0,19,0,6,0,14,0,13,0,22,0,34,0,46,0,23,0,18,0,7,0,20,0,19,0,33,0,47,0,27,0,22,0,9,0,3,0,31,0,22,0,41,0,26,0,21,0,20,0,5,0,3,0,14,0,13,0,10,0,11,0,16,0,6,0,5,0,1,0,9,0,8,0,7,0,8,0,4,0,4,0,2,0,0,0,3,0,4,0,10,0,24,0,34,0,33,0,21,0,15,0,5,0,3,0,4,0,10,0,32,0,17,0,11,0,10,0,11,0,7,0,13,0,18,0,30,0,31,0,20,0,5,0,25,0,11,0,19,0,59,0,27,0,18,0,12,0,5,0,35,0,33,0,31,0,58,0,30,0,16,0,7,0,5,0,28,0,26,0,32,0,19,0,17,0,15,0,8,0,14,0,14,0,12,0,9,0,13,0,14,0,9,0,4,0,1,0,11,0,4,0,6,0,6,0,6,0,3,0,2,0,0,0,9,0,6,0,16,0,33,0,41,0,39,0,38,0,26,0,7,0,5,0,6,0,9,0,23,0,16,0,26,0,11,0,17,0,7,0,11,0,14,0,21,0,30,0,10,0,7,0,17,0,10,0,15,0,12,0,18,0,28,0,14,0,5,0,32,0,13,0,22,0,19,0,18,0,16,0,9,0,5,0,40,0,17,0,31,0,29,0,17,0,13,0,4,0,2,0,27,0,12,0,11,0,15,0,10,0,7,0,4,0,1,0,27,0,12,0,8,0,12,0,6,0,3,0,1,0,0,0,1,0,5,0,14,0,21,0,34,0,51,0,46,0,71,0,42,0,52,0,68,0,52,0,67,0,44,0,43,0,19,0,3,0,4,0,12,0,19,0,31,0,26,0,44,0,33,0,31,0,24,0,32,0,24,0,31,0,35,0,22,0,14,0,15,0,13,0,23,0,36,0,59,0,49,0,77,0,65,0,29,0,40,0,30,0,40,0,27,0,33,0,42,0,16,0,22,0,20,0,37,0,61,0,56,0,79,0,73,0,64,0,43,0,76,0,56,0,37,0,26,0,31,0,25,0,14,0,35,0,16,0,60,0,57,0,97,0,75,0,114,0,91,0,54,0,73,0,55,0,41,0,48,0,53,0,23,0,24,0,58,0,27,0,50,0,96,0,76,0,70,0,93,0,84,0,77,0,58,0,79,0,29,0,74,0,49,0,41,0,17,0,47,0,45,0,78,0,74,0,115,0,94,0,90,0,79,0,69,0,83,0,71,0,50,0,59,0,38,0,36,0,15,0,72,0,34,0,56,0,95,0,92,0,85,0,91,0,90,0,86,0,73,0,77,0,65,0,51,0,44,0,43,0,42,0,43,0,20,0,30,0,44,0,55,0,78,0,72,0,87,0,78,0,61,0,46,0,54,0,37,0,30,0,20,0,16,0,53,0,25,0,41,0,37,0,44,0,59,0,54,0,81,0,66,0,76,0,57,0,54,0,37,0,18,0,39,0,11,0,35,0,33,0,31,0,57,0,42,0,82,0,72,0,80,0,47,0,58,0,55,0,21,0,22,0,26,0,38,0,22,0,53,0,25,0,23,0,38,0,70,0,60,0,51,0,36,0,55,0,26,0,34,0,23,0,27,0,14,0,9,0,7,0,34,0,32,0,28,0,39,0,49,0,75,0,30,0,52,0,48,0,40,0,52,0,28,0,18,0,17,0,9,0,5,0,45,0,21,0,34,0,64,0,56,0,50,0,49,0,45,0,31,0,19,0,12,0,15,0,10,0,7,0,6,0,3,0,48,0,23,0,20,0,39,0,36,0,35,0,53,0,21,0,16,0,23,0,13,0,10,0,6,0,1,0,4,0,2,0,16,0,15,0,17,0,27,0,25,0,20,0,29,0,11,0,17,0,12,0,16,0,8,0,1,0,1,0,0,0,1,0,7,0,12,0,18,0,53,0,47,0,76,0,124,0,108,0,89,0,123,0,108,0,119,0,107,0,81,0,122,0,63,0,13,0,5,0,16,0,27,0,46,0,36,0,61,0,51,0,42,0,70,0,52,0,83,0,65,0,41,0,59,0,36,0,19,0,17,0,15,0,24,0,41,0,34,0,59,0,48,0,40,0,64,0,50,0,78,0,62,0,80,0,56,0,33,0,29,0,28,0,25,0,43,0,39,0,63,0,55,0,93,0,76,0,59,0,93,0,72,0,54,0,75,0,50,0,29,0,52,0,22,0,42,0,40,0,67,0,57,0,95,0,79,0,72,0,57,0,89,0,69,0,49,0,66,0,46,0,27,0,77,0,37,0,35,0,66,0,58,0,52,0,91,0,74,0,62,0,48,0,79,0,63,0,90,0,62,0,40,0,38,0,125,0,32,0,60,0,56,0,50,0,92,0,78,0,65,0,55,0,87,0,71,0,51,0,73,0,51,0,70,0,30,0,109,0,53,0,49,0,94,0,88,0,75,0,66,0,122,0,91,0,73,0,56,0,42,0,64,0,44,0,21,0,25,0,90,0,43,0,41,0,77,0,73,0,63,0,56,0,92,0,77,0,66,0,47,0,67,0,48,0,53,0,36,0,20,0,71,0,34,0,67,0,60,0,58,0,49,0,88,0,76,0,67,0,106,0,71,0,54,0,38,0,39,0,23,0,15,0,109,0,53,0,51,0,47,0,90,0,82,0,58,0,57,0,48,0,72,0,57,0,41,0,23,0,27,0,62,0,9,0,86,0,42,0,40,0,37,0,70,0,64,0,52,0,43,0,70,0,55,0,42,0,25,0,29,0,18,0,11,0,11,0,118,0,68,0,30,0,55,0,50,0,46,0,74,0,65,0,49,0,39,0,24,0,16,0,22,0,13,0,14,0,7,0,91,0,44,0,39,0,38,0,34,0,63,0,52,0,45,0,31,0,52,0,28,0,19,0,14,0,8,0,9,0,3,0,123,0,60,0,58,0,53,0,47,0,43,0,32,0,22,0,37,0,24,0,17,0,12,0,15,0,10,0,2,0,1,0,71,0,37,0,34,0,30,0,28,0,20,0,17,0,26,0,21,0,16,0,10,0,6,0,8,0,6,0,2,0,0,0,1,0,5,0,14,0,44,0,74,0,63,0,110,0,93,0,172,0,149,0,138,0,242,0,225,0,195,0,120,1,17,0,3,0,4,0,12,0,20,0,35,0,62,0,53,0,47,0,83,0,75,0,68,0,119,0,201,0,107,0,207,0,9,0,15,0,13,0,23,0,38,0,67,0,58,0,103,0,90,0,161,0,72,0,127,0,117,0,110,0,209,0,206,0,16,0,45,0,21,0,39,0,69,0,64,0,114,0,99,0,87,0,158,0,140,0,252,0,212,0,199,0,131,1,109,1,26,0,75,0,36,0,68,0,65,0,115,0,101,0,179,0,164,0,155,0,8,1,246,0,226,0,139,1,126,1,106,1,9,0,66,0,30,0,59,0,56,0,102,0,185,0,173,0,9,1,142,0,253,0,232,0,144,1,132,1,122,1,189,1,16,0,111,0,54,0,52,0,100,0,184,0,178,0,160,0,133,0,1,1,244,0,228,0,217,0,129,1,110,1,203,2,10,0,98,0,48,0,91,0,88,0,165,0,157,0,148,0,5,1,248,0,151,1,141,1,116,1,124,1,121,3,116,3,8,0,85,0,84,0,81,0,159,0,156,0,143,0,4,1,249,0,171,1,145,1,136,1,127,1,215,2,201,2,196,2,7,0,154,0,76,0,73,0,141,0,131,0,0,1,245,0,170,1,150,1,138,1,128,1,223,2,103,1,198,2,96,1,11,0,139,0,129,0,67,0,125,0,247,0,233,0,229,0,219,0,137,1,231,2,225,2,208,2,117,3,114,3,183,1,4,0,243,0,120,0,118,0,115,0,227,0,223,0,140,1,234,2,230,2,224,2,209,2,200,2,194,2,223,0,180,1,6,0,202,0,224,0,222,0,218,0,216,0,133,1,130,1,125,1,108,1,120,3,187,1,195,2,184,1,181,1,192,6,4,0,235,2,211,0,210,0,208,0,114,1,123,1,222,2,211,2,202,2,199,6,115,3,109,3,108,3,131,13,97,3,2,0,121,1,113,1,102,0,187,0,214,2,210,2,102,1,199,2,197,2,98,3,198,6,103,3,130,13,102,3,178,1,0,0,12,0,10,0,7,0,11,0,10,0,17,0,11,0,9,0,13,0,12,0,10,0,7,0,5,0,3,0,1,0,3,0,15,0,13,0,46,0,80,0,146,0,6,1,248,0,178,1,170,1,157,2,141,2,137,2,109,2,5,2,8,4,88,0,14,0,12,0,21,0,38,0,71,0,130,0,122,0,216,0,209,0,198,0,71,1,89,1,63,1,41,1,23,1,42,0,47,0,22,0,41,0,74,0,68,0,128,0,120,0,221,0,207,0,194,0,182,0,84,1,59,1,39,1,29,2,18,0,81,0,39,0,75,0,70,0,134,0,125,0,116,0,220,0,204,0,190,0,178,0,69,1,55,1,37,1,15,1,16,0,147,0,72,0,69,0,135,0,127,0,118,0,112,0,210,0,200,0,188,0,96,1,67,1,50,1,29,1,28,2,14,0,7,1,66,0,129,0,126,0,119,0,114,0,214,0,202,0,192,0,180,0,85,1,61,1,45,1,25,1,6,1,12,0,249,0,123,0,121,0,117,0,113,0,215,0,206,0,195,0,185,0,91,1,74,1,52,1,35,1,16,1,8,2,10,0,179,1,115,0,111,0,109,0,211,0,203,0,196,0,187,0,97,1,76,1,57,1,42,1,27,1,19,2,125,1,17,0,171,1,212,0,208,0,205,0,201,0,193,0,186,0,177,0,169,0,64,1,47,1,30,1,12,1,2,2,121,1,16,0,79,1,199,0,197,0,191,0,189,0,181,0,174,0,77,1,65,1,49,1,33,1,19,1,9,2,123,1,115,1,11,0,156,2,184,0,183,0,179,0,175,0,88,1,75,1,58,1,48,1,34,1,21,1,18,2,127,1,117,1,110,1,10,0,140,2,90,1,171,0,168,0,164,0,62,1,53,1,43,1,31,1,20,1,7,1,1,2,119,1,112,1,106,1,6,0,136,2,66,1,60,1,56,1,51,1,46,1,36,1,28,1,13,1,5,1,0,2,120,1,114,1,108,1,103,1,4,0,108,2,44,1,40,1,38,1,32,1,26,1,17,1,10,1,3,2,124,1,118,1,113,1,109,1,105,1,101,1,2,0,9,4,24,1,22,1,18,1,11,1,8,1,3,1,126,1,122,1,116,1,111,1,107,1,104,1,102,1,100,1,0,0,43,0,20,0,19,0,17,0,15,0,13,0,11,0,9,0,7,0,6,0,4,0,7,0,5,0,3,0,1,0,3,0,1,0,5,0,4,0,5,0,6,0,5,0,4,0,4,0,7,0,3,0,6,0,0,0,7,0,2,0,3,0,1,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,1,3,2,3,1,3,6,3,3,5,5,5,6,2,2,6,3,2,5,5,5,6,1,3,6,7,3,3,6,7,6,6,7,8,7,6,7,8,3,3,5,7,3,2,4,5,4,4,5,6,6,5,6,7,1,3,6,8,8,9,3,4,6,7,7,8,6,5,7,8,8,9,7,7,8,9,9,9,7,7,8,9,9,10,8,8,9,10,10,10,2,3,6,8,8,9,3,2,4,8,8,8,6,4,6,8,8,9,8,8,8,9,9,10,8,7,8,9,10,10,9,8,9,9,11,11,3,3,5,6,8,9,3,3,4,5,6,8,4,4,5,6,7,8,6,5,6,7,7,8,7,6,7,7,8,9,8,7,8,8,9,9,1,3,6,8,9,9,9,10,3,4,6,7,8,9,8,8,6,6,7,8,9,10,9,9,7,7,8,9,10,10,9,10,8,8,9,10,10,10,10,10,9,9,10,10,11,11,10,11,8,8,9,10,10,10,11,11,9,8,9,10,10,11,11,11,2,3,5,7,8,9,8,9,3,3,4,6,8,8,7,8,5,5,6,7,8,9,8,8,7,6,7,9,8,10,8,9,8,8,8,9,9,10,9,10,8,8,9,10,10,11,10,11,8,7,7,8,9,10,10,10,8,7,8,9,10,10,10,10,4,3,5,7,8,9,9,9,3,3,4,5,7,7,8,8,5,4,5,6,7,8,7,8,6,5,6,6,7,8,8,8,7,6,7,7,8,8,8,9,8,7,8,8,8,9,8,9,8,7,7,8,8,9,9,10,9,8,8,9,9,9,9,10,1,4,6,7,8,9,9,10,9,10,11,11,12,12,13,13,3,4,6,7,8,8,9,9,9,9,10,10,11,12,12,12,6,6,7,8,9,9,10,10,9,10,10,11,11,12,13,13,7,7,8,9,9,10,10,10,10,11,11,11,11,12,13,13,8,7,9,9,10,10,11,11,10,11,11,12,12,13,13,14,9,8,9,10,10,10,11,11,11,11,12,11,13,13,14,14,9,9,10,10,11,11,11,11,11,12,12,12,13,13,14,14,10,9,10,11,11,11,12,12,12,12,13,13,13,14,16,16,9,8,9,10,10,11,11,12,12,12,12,13,13,14,15,15,10,9,10,10,11,11,11,13,12,13,13,14,14,14,16,15,10,10,10,11,11,12,12,13,12,13,14,13,14,15,16,17,11,10,10,11,12,12,12,12,13,13,13,14,15,15,15,16,11,11,11,12,12,13,12,13,14,14,15,15,15,16,16,16,12,11,12,13,13,13,14,14,14,14,14,15,16,15,16,16,13,12,12,13,13,13,15,14,14,17,15,15,15,17,16,16,12,12,13,14,14,14,15,14,15,15,16,16,19,18,19,16,3,4,5,7,7,8,9,9,9,10,10,11,11,11,12,13,4,3,5,6,7,7,8,8,8,9,9,10,10,10,11,11,5,5,5,6,7,7,8,8,8,9,9,10,10,11,11,11,6,6,6,7,7,8,8,9,9,9,10,10,10,11,11,11,7,6,7,7,8,8,9,9,9,9,10,10,10,11,11,11,8,7,7,8,8,8,9,9,9,9,10,10,11,11,11,12,9,7,8,8,8,9,9,9,9,10,10,10,11,11,12,12,9,8,8,9,9,9,9,10,10,10,10,10,11,11,11,12,9,8,8,9,9,9,9,10,10,10,10,11,11,12,12,12,9,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,10,9,9,9,10,10,10,10,10,11,11,11,11,12,13,12,10,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,11,10,9,10,10,10,11,11,11,11,11,11,12,12,13,13,11,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,12,11,11,11,11,11,11,11,12,12,12,12,13,13,12,13,12,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,1,4,6,8,9,9,10,10,11,11,11,12,12,12,13,9,3,4,6,7,8,9,9,9,10,10,10,11,12,11,12,8,6,6,7,8,9,9,10,10,11,10,11,11,11,12,12,9,8,7,8,9,9,10,10,10,11,11,12,12,12,13,13,10,9,8,9,9,10,10,11,11,11,12,12,12,13,13,13,9,9,8,9,9,10,11,11,12,11,12,12,13,13,13,14,10,10,9,9,10,11,11,11,11,12,12,12,12,13,13,14,10,10,9,10,10,11,11,11,12,12,13,13,13,13,15,15,10,10,10,10,11,11,11,12,12,13,13,13,13,14,14,14,10,11,10,10,11,11,12,12,13,13,13,13,14,13,14,13,11,11,11,10,11,12,12,12,12,13,14,14,14,15,15,14,10,12,11,11,11,12,12,13,14,14,14,14,14,14,13,14,11,12,12,12,12,12,13,13,13,13,15,14,14,14,14,16,11,14,12,12,12,13,13,14,14,14,16,15,15,15,17,15,11,13,13,11,12,14,14,13,14,14,15,16,15,17,15,14,11,9,8,8,9,9,10,10,10,11,11,11,11,11,11,11,8,4,4,6,7,8,9,9,10,10,11,11,11,11,11,12,9,4,4,5,6,7,8,8,9,9,9,10,10,10,10,10,8,6,5,6,7,7,8,8,9,9,9,9,10,10,10,11,7,7,6,7,7,8,8,8,9,9,9,9,10,10,10,10,7,8,7,7,8,8,8,8,9,9,9,10,10,10,10,11,7,9,7,8,8,8,8,9,9,9,9,10,10,10,10,10,7,9,8,8,8,8,9,9,9,9,10,10,10,10,10,11,7,10,8,8,8,9,9,9,9,10,10,10,10,10,11,11,8,10,9,9,9,9,9,9,9,9,10,10,10,10,11,11,8,10,9,9,9,9,9,9,10,10,10,10,10,11,11,11,8,11,9,9,9,9,10,10,10,10,10,10,11,11,11,11,8,11,10,9,9,9,10,10,10,10,10,10,11,11,11,11,8,11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,8,11,10,10,10,10,10,10,10,11,11,11,11,11,11,11,8,12,10,10,10,10,10,10,11,11,11,11,11,11,11,11,8,8,7,7,7,7,7,7,7,7,7,7,8,8,8,8,4,1,4,4,5,4,6,5,6,4,5,5,6,5,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Add"]=_i64Add;function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}Module["_memset"]=_memset;Module["_bitshift64Lshr"]=_bitshift64Lshr;function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){___syscall146.printChar(stream,HEAPU8[ptr+j])}ret+=len}return ret}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}__ATEXIT__.push((function(){var fflush=Module["_fflush"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}));DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iiii":invoke_iiii,"_llvm_exp2_f64":_llvm_exp2_f64,"___lock":___lock,"_llvm_exp2_f32":_llvm_exp2_f32,"_abort":_abort,"___setErrNo":___setErrNo,"___syscall6":___syscall6,"___syscall140":___syscall140,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___unlock":___unlock,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM
--var asm=(function(global,env,buffer) {
--"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0;var y=0;var z=global.Math.floor;var A=global.Math.abs;var B=global.Math.sqrt;var C=global.Math.pow;var D=global.Math.cos;var E=global.Math.sin;var F=global.Math.tan;var G=global.Math.acos;var H=global.Math.asin;var I=global.Math.atan;var J=global.Math.atan2;var K=global.Math.exp;var L=global.Math.log;var M=global.Math.ceil;var N=global.Math.imul;var O=global.Math.min;var P=global.Math.max;var Q=global.Math.clz32;var R=env.abort;var S=env.assert;var T=env.enlargeMemory;var U=env.getTotalMemory;var V=env.abortOnCannotGrowMemory;var W=env.invoke_ii;var X=env.invoke_iiii;var Y=env._llvm_exp2_f64;var Z=env.___lock;var _=env._llvm_exp2_f32;var $=env._abort;var aa=env.___setErrNo;var ba=env.___syscall6;var ca=env.___syscall140;var da=env._emscripten_memcpy_big;var ea=env.___syscall54;var fa=env.___unlock;var ga=env.___syscall146;var ha=0.0;
--// EMSCRIPTEN_START_FUNCS
--function ka(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function la(){return l|0}function ma(a){a=a|0;l=a}function na(a,b){a=a|0;b=b|0;l=a;m=b}function oa(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function pa(a){a=a|0;y=a}function qa(){return y|0}function ra(a,b){a=a|0;b=b|0;c[a>>2]=gb(b)|0;c[a+4>>2]=b;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=32;return}function sa(a){a=a|0;a=c[a>>2]|0;if(!a)return;hb(a);return}function ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+16|0;i=c[k>>2]|0;if(i>>>0>d>>>0){d=i-d|0;c[k>>2]=d;k=a+12|0;c[k>>2]=c[k>>2]|b<<d;return}j=a+8|0;e=c[j>>2]|0;g=a+4|0;h=c[g>>2]|0;f=c[a>>2]|0;if((e+4|0)>>>0<h>>>0)g=i;else{f=jb(f,((h|0)/2|0)+h|0)|0;c[a>>2]=f;e=c[g>>2]|0;c[g>>2]=((e|0)/2|0)+e;g=c[k>>2]|0;e=c[j>>2]|0}i=d-g|0;d=a+12|0;c[f+e>>2]=ub(b>>>i|c[d>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+4;j=32-i|0;c[k>>2]=j;c[d>>2]=(i|0)==0?0:b<<j;return}function ua(a){a=a|0;return (c[a+8>>2]<<3)+32-(c[a+16>>2]|0)|0}function va(a){a=a|0;var b=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;C=l;l=l+416|0;B=C;if((c[a>>2]|0)>0){j=a+16|0;g=0;b=c[j>>2]|0;do{if((b|0)>0){f=0;do{b=0;do{if((c[a+25264+(g*4608|0)+(f*2304|0)+(b<<2)>>2]|0)<0?(h=a+2224+(g*4608|0)+(f*2304|0)+(b<<2)|0,i=c[h>>2]|0,(i|0)>0):0)c[h>>2]=0-i;b=b+1|0}while((b|0)!=576);f=f+1|0;b=c[j>>2]|0}while((f|0)<(b|0))}g=g+1|0}while((g|0)<(c[a>>2]|0))}j=a+116|0;tb(B|0,j|0,408)|0;z=a+96|0;ta(z,2047,11);i=a+8|0;ta(z,c[i>>2]|0,2);ta(z,c[a+12>>2]|0,2);ta(z,(c[a+76>>2]|0)==0&1,1);ta(z,c[a+68>>2]|0,4);A=a+72|0;ta(z,(c[A>>2]|0)%3|0,2);ta(z,c[a+32>>2]|0,1);ta(z,c[a+80>>2]|0,1);ta(z,c[a+20>>2]|0,2);ta(z,c[a+84>>2]|0,2);ta(z,c[a+88>>2]|0,1);ta(z,c[a+92>>2]|0,1);ta(z,c[a+28>>2]|0,2);do if((c[i>>2]|0)==3){ta(z,0,9);b=c[B>>2]|0;if((c[a>>2]|0)==2){ta(z,b,3);break}else{ta(z,b,5);break}}else{ta(z,0,8);b=c[B>>2]|0;if((c[a>>2]|0)==2){ta(z,b,2);break}else{ta(z,b,1);break}}while(0);if((c[i>>2]|0)==3?(c[a>>2]|0)>0:0){b=0;do{ta(z,c[B+8+(b<<4)>>2]|0,1);ta(z,c[B+8+(b<<4)+4>>2]|0,1);ta(z,c[B+8+(b<<4)+8>>2]|0,1);ta(z,c[B+8+(b<<4)+12>>2]|0,1);b=b+1|0}while((b|0)<(c[a>>2]|0))}y=a+16|0;b=c[y>>2]|0;if((b|0)>0){h=0;g=c[a>>2]|0;do{if((g|0)>0){f=0;do{ta(z,c[B+40+(h*184|0)+(f*92|0)>>2]|0,12);ta(z,c[B+40+(h*184|0)+(f*92|0)+4>>2]|0,9);ta(z,c[B+40+(h*184|0)+(f*92|0)+12>>2]|0,8);b=c[B+40+(h*184|0)+(f*92|0)+16>>2]|0;if((c[i>>2]|0)==3)ta(z,b,4);else ta(z,b,9);ta(z,0,1);ta(z,c[B+40+(h*184|0)+(f*92|0)+20>>2]|0,5);ta(z,c[B+40+(h*184|0)+(f*92|0)+24>>2]|0,5);ta(z,c[B+40+(h*184|0)+(f*92|0)+28>>2]|0,5);ta(z,c[B+40+(h*184|0)+(f*92|0)+32>>2]|0,4);ta(z,c[B+40+(h*184|0)+(f*92|0)+36>>2]|0,3);if((c[i>>2]|0)==3)ta(z,c[B+40+(h*184|0)+(f*92|0)+40>>2]|0,1);ta(z,c[B+40+(h*184|0)+(f*92|0)+44>>2]|0,1);ta(z,c[B+40+(h*184|0)+(f*92|0)+48>>2]|0,1);f=f+1|0;g=c[a>>2]|0}while((f|0)<(g|0));b=c[y>>2]|0}h=h+1|0}while((h|0)<(b|0))}tb(B|0,j|0,408)|0;if((b|0)<=0){l=C;return}x=0;f=c[a>>2]|0;do{if((f|0)>0){w=(x|0)==0;v=0;do{f=c[B+40+(x*184|0)+(v*92|0)+16>>2]|0;b=c[1044+(f<<2)>>2]|0;f=c[1108+(f<<2)>>2]|0;if(!w?(c[B+8+(v<<4)>>2]|0)!=0:0)t=39;else{ta(z,c[a+1208+(x*176|0)+(v*88|0)>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+4>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+8>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+12>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+16>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+20>>2]|0,b);if(w)t=40;else t=39}if((t|0)==39)if(!(c[B+8+(v<<4)+4>>2]|0))t=40;else t=41;if((t|0)==40){ta(z,c[a+1208+(x*176|0)+(v*88|0)+24>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+28>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+32>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+36>>2]|0,b);ta(z,c[a+1208+(x*176|0)+(v*88|0)+40>>2]|0,b);if(w)t=42;else t=41}if((t|0)==41)if(!(c[B+8+(v<<4)+8>>2]|0))t=42;else t=43;if((t|0)==42){ta(z,c[a+1208+(x*176|0)+(v*88|0)+44>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+48>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+52>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+56>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+60>>2]|0,f);if(w)t=44;else t=43}if((t|0)==43?(t=0,(c[B+8+(v<<4)+12>>2]|0)==0):0)t=44;if((t|0)==44){t=0;ta(z,c[a+1208+(x*176|0)+(v*88|0)+64>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+68>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+72>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+76>>2]|0,f);ta(z,c[a+1208+(x*176|0)+(v*88|0)+80>>2]|0,f)}q=c[A>>2]|0;u=ua(z)|0;b=c[B+40+(x*184|0)+(v*92|0)+4>>2]<<1;s=c[B+40+(x*184|0)+(v*92|0)+32>>2]|0;r=c[1464+(q*92|0)+(s+1<<2)>>2]|0;s=c[1464+(q*92|0)+(s+2+(c[B+40+(x*184|0)+(v*92|0)+36>>2]|0)<<2)>>2]|0;if((b|0)>0){q=0;do{g=c[B+40+(x*184|0)+(v*92|0)+20+(((q|0)>=(r|0)&1)+((q|0)>=(s|0)&1)<<2)>>2]|0;do if(g|0){h=c[a+2224+(v*4608|0)+(x*2304|0)+(q<<2)>>2]|0;k=c[a+2224+(v*4608|0)+(x*2304|0)+((q|1)<<2)>>2]|0;i=(h|0)>0;h=i?h:0-h|0;i=(i^1)&1;o=(k|0)>0;k=o?k:0-k|0;o=(o^1)&1;f=c[8+(g*24|0)+4>>2]|0;if((g|0)<=15){p=(N(f,h)|0)+k|0;j=e[(c[8+(g*24|0)+16>>2]|0)+(p<<1)>>1]|0;n=(h|0)==0;j=n?j:j<<1|i;m=(k|0)==0;ta(z,m?j:j<<1|o,((m^1)&1)+((n^1)&1)+(d[(c[8+(g*24|0)+20>>2]|0)+p>>0]|0)|0);break}m=c[8+(g*24|0)+8>>2]|0;E=(h|0)>14;F=E?15:h;D=(k|0)>14;j=D?15:k;n=(N(F,f)|0)+j|0;p=e[(c[8+(g*24|0)+16>>2]|0)+(n<<1)>>1]|0;n=d[(c[8+(g*24|0)+20>>2]|0)+n>>0]|0;f=E?h+-15|0:0;g=(F|0)==0;f=g?f:f<<1|i;g=(E?m:0)+((g^1)&1)|0;if(!D){if(j)t=51}else{g=g+m|0;f=f<<m|k+2147483633;t=51}if((t|0)==51){t=0;g=g+1|0;f=f<<1|o}ta(z,p,n);ta(z,f,g)}while(0);q=q+2|0}while((q|0)<(b|0))}f=(c[B+40+(x*184|0)+(v*92|0)+48>>2]|0)+32|0;h=(c[B+40+(x*184|0)+(v*92|0)+8>>2]<<2)+b|0;if((b|0)<(h|0)){g=c[8+(f*24|0)+16>>2]|0;f=c[8+(f*24|0)+20>>2]|0;do{E=c[a+2224+(v*4608|0)+(x*2304|0)+(b<<2)>>2]|0;D=c[a+2224+(v*4608|0)+(x*2304|0)+((b|1)<<2)>>2]|0;t=c[a+2224+(v*4608|0)+(x*2304|0)+(b+2<<2)>>2]|0;F=c[a+2224+(v*4608|0)+(x*2304|0)+(b+3<<2)>>2]|0;p=(E|0)>0;E=p?E:0-E|0;q=(D|0)>0;D=q?D:0-D|0;r=(t|0)>0;t=r?t:0-t|0;s=(F|0)>0;F=s?F:0-F|0;o=(D<<1)+E+(t<<2)+(F<<3)|0;ta(z,e[g+(o<<1)>>1]|0,d[f+o>>0]|0);E=(E|0)==0;p=((p|E)^1)&1;D=(D|0)==0;q=D?p:p<<1|(q^1)&1;t=(t|0)==0;r=t?q:q<<1|(r^1)&1;F=(F|0)==0;ta(z,F?r:r<<1|(s^1)&1,((t^1)&1)+(D?(E^1)&1:E?1:2)+((F^1)&1)|0);b=b+4|0}while((b|0)<(h|0))}b=ua(z)|0;b=(c[B+40+(x*184|0)+(v*92|0)>>2]|0)-(c[B+40+(x*184|0)+(v*92|0)+52>>2]|0)+(u-b)|0;if(b|0){f=(b|0)%32|0;if((b+31|0)>>>0>=63){b=(b|0)/32|0;do{b=b+-1|0;ta(z,-1,32)}while((b|0)!=0)}if(f|0)ta(z,(1<<f)+-1|0,f)}v=v+1|0;f=c[a>>2]|0}while((v|0)<(f|0));b=c[y>>2]|0}x=x+1|0}while((x|0)<(b|0));l=C;return}function wa(a,b,e,f,g,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0,O=0,P=0;J=e+72|0;if((b|0)<0)c[J>>2]=(c[J>>2]|0)+-1;v=i+39100|0;w=i+34488|0;x=e+8|0;z=e+4|0;A=e+48|0;C=e+32|0;D=e+36|0;E=e+20|0;F=e+24|0;G=e+28|0;H=e+60|0;I=e+64|0;r=e+68|0;s=i+72|0;t=c[199]|0;u=c[205]|0;do{while(1){f=c[J>>2]|0;c[J>>2]=f+1;f=f+128|0;l=c[i+40480+(f<<2)>>2]|0;q=c[v>>2]|0;m=((l|0)<0)<<31>>31;q=rb(q|0,((q|0)<0)<<31>>31|0,l|0,m|0)|0;nb(q|0,y|0,-2147483648,0)|0;if((y|0)>165140)continue;k=i+39456+(f<<3)|0;j=c[w>>2]|0;g=0;e=0;do{f=c[j+(e<<2)>>2]|0;f=(f|0)>-1?f:0-f|0;f=rb(f|0,((f|0)<0)<<31>>31|0,l|0,m|0)|0;nb(f|0,y|0,-2147483648,0)|0;f=y;if((f|0)<1e4)f=c[i+40992+(f<<2)>>2]|0;else{K=+h[k>>3]*+(c[i+36796+(e<<2)>>2]|0)*4.656612875e-10;f=~~+B(+(+B(+K)*K))}c[a+(e<<2)>>2]=f;g=(g|0)<(f|0)?f:g;e=e+1|0}while((e|0)!=576);if((g|0)<=8192){g=576;break}}while(1){if((g|0)<=1){n=13;break}if(c[a+(g+-1<<2)>>2]|0){n=16;break}f=g+-2|0;if(!(c[a+(f<<2)>>2]|0))g=f;else{n=16;break}}do if((n|0)==13){c[x>>2]=0;n=23}else if((n|0)==16){c[x>>2]=0;if((g|0)>3){j=0;while(1){if((c[a+(g+-1<<2)>>2]|0)>=2){n=24;break}if((c[a+(g+-2<<2)>>2]|0)>=2){n=24;break}if((c[a+(g+-3<<2)>>2]|0)>=2){n=24;break}f=g+-4|0;e=j+1|0;if((c[a+(f<<2)>>2]|0)>=2){n=24;break}c[x>>2]=e;if((f|0)>3){g=f;j=e}else{n=18;break}}if((n|0)==18){n=0;q=f>>1;c[z>>2]=q;g=f;f=q}else if((n|0)==24){n=0;f=g>>>1;c[z>>2]=f;if(!j){k=0;j=0;break}else e=j}j=0;l=g;m=0;k=0;while(1){o=c[a+(l<<2)>>2]|0;L=c[a+((l|1)<<2)>>2]|0;M=c[a+(l+2<<2)>>2]|0;p=c[a+(l+3<<2)>>2]|0;q=(L<<1)+o+(M<<2)+(p<<3)|0;o=(o|0)!=0;p=((M|0)!=0&1)+((L|0)==0?o&1:o?2:1)+((p|0)!=0&1)|0;j=(d[t+q>>0]|0)+j+p|0;k=p+k+(d[u+q>>0]|0)|0;m=m+1|0;if((m|0)==(e|0))break;else l=l+4|0}}else n=23}while(0);if((n|0)==23){f=g>>1;c[z>>2]=f;k=0;j=0}M=(j|0)<(k|0);q=M?j:k;c[A>>2]=(M^1)&1;if(!f){c[C>>2]=0;c[D>>2]=0;j=c[H>>2]|0}else{j=c[s>>2]|0;e=0;while(1)if((c[1464+(j*92|0)+(e<<2)>>2]|0)<(g|0))e=e+1|0;else break;f=c[824+(e<<3)>>2]|0;while(1){k=1464+(j*92|0)+(f+1<<2)|0;l=c[k>>2]|0;if((f|0)!=0&(l|0)>(g|0))f=f+-1|0;else break}c[C>>2]=f;c[H>>2]=l;f=c[824+(e<<3)+4>>2]|0;while(1){e=c[k+(f+1<<2)>>2]|0;if((f|0)!=0&(e|0)>(g|0))f=f+-1|0;else break}c[D>>2]=f;c[I>>2]=e;c[r>>2]=g;j=l}c[E>>2]=0;c[F>>2]=0;c[G>>2]=0;if(!j)k=0;else{k=xa(a,0,j)|0;c[E>>2]=k}e=c[I>>2]|0;n=e>>>0>j>>>0;if(n){o=xa(a,j,e)|0;c[F>>2]=o}else o=0;if(g>>>0>e>>>0){p=xa(a,e,g)|0;c[G>>2]=p}else p=0;do if(k){m=c[8+(k*24|0)+4>>2]|0;l=c[8+(k*24|0)+8>>2]|0;f=(j|0)!=0;if(k>>>0>15){if(!f){f=0;break}k=c[8+(k*24|0)+20>>2]|0;f=0;g=0;do{L=c[a+(g<<2)>>2]|0;M=c[a+((g|1)<<2)>>2]|0;P=(L|0)>14;L=P?15:L;O=(M|0)>14;M=O?15:M;f=(P?l:0)+f+(O?l:0)+(d[k+((N(L,m)|0)+M)>>0]|0)+((L|0)!=0&1)+((M|0)!=0&1)|0;g=g+2|0}while(g>>>0<j>>>0)}else{if(!f){f=0;break}k=c[8+(k*24|0)+20>>2]|0;g=0;f=0;do{O=c[a+(g<<2)>>2]|0;P=c[a+((g|1)<<2)>>2]|0;f=((O|0)!=0&1)+f+((P|0)!=0&1)+(d[k+((N(O,m)|0)+P)>>0]|0)|0;g=g+2|0}while(g>>>0<j>>>0)}}else f=0;while(0);if(o){m=c[8+(o*24|0)+4>>2]|0;l=c[8+(o*24|0)+8>>2]|0;if(o>>>0>15)if(n){k=c[8+(o*24|0)+20>>2]|0;g=0;do{O=c[a+(j<<2)>>2]|0;P=c[a+(j+1<<2)>>2]|0;L=(O|0)>14;O=L?15:O;M=(P|0)>14;P=M?15:P;g=(L?l:0)+g+(M?l:0)+(d[k+((N(O,m)|0)+P)>>0]|0)+((O|0)!=0&1)+((P|0)!=0&1)|0;j=j+2|0}while(j>>>0<e>>>0)}else g=0;else if(n){k=c[8+(o*24|0)+20>>2]|0;g=0;do{O=c[a+(j<<2)>>2]|0;P=c[a+(j+1<<2)>>2]|0;g=((O|0)!=0&1)+g+((P|0)!=0&1)+(d[k+((N(O,m)|0)+P)>>0]|0)|0;j=j+2|0}while(j>>>0<e>>>0)}else g=0;f=g+f|0}if(p){l=c[r>>2]|0;m=c[8+(p*24|0)+4>>2]|0;k=c[8+(p*24|0)+8>>2]|0;g=e>>>0<l>>>0;if(p>>>0>15)if(g){j=c[8+(p*24|0)+20>>2]|0;g=0;do{O=c[a+(e<<2)>>2]|0;P=c[a+(e+1<<2)>>2]|0;L=(O|0)>14;O=L?15:O;M=(P|0)>14;P=M?15:P;g=(L?k:0)+g+(M?k:0)+(d[j+((N(O,m)|0)+P)>>0]|0)+((O|0)!=0&1)+((P|0)!=0&1)|0;e=e+2|0}while(e>>>0<l>>>0)}else g=0;else if(g){j=c[8+(p*24|0)+20>>2]|0;g=0;do{O=c[a+(e<<2)>>2]|0;P=c[a+(e+1<<2)>>2]|0;g=((O|0)!=0&1)+g+((P|0)!=0&1)+(d[j+((N(O,m)|0)+P)>>0]|0)|0;e=e+2|0}while(e>>>0<l>>>0)}else g=0;f=g+f|0}f=f+q|0}while((f|0)>(b|0));return f|0}function xa(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(b>>>0<e>>>0){f=b;g=0}else{e=0;return e|0}do{m=c[a+(f<<2)>>2]|0;g=(g|0)<(m|0)?m:g;f=f+1|0}while((f|0)!=(e|0));if(!g){e=0;return e|0}if((g|0)>=15){f=g+-15|0;if((c[95]|0)>>>0<f>>>0)if((c[101]|0)>>>0<f>>>0)if((c[107]|0)>>>0<f>>>0)if((c[113]|0)>>>0<f>>>0)if((c[119]|0)>>>0<f>>>0)if((c[125]|0)>>>0<f>>>0)if((c[131]|0)>>>0<f>>>0)if((c[137]|0)>>>0<f>>>0)m=(c[143]|0)>>>0<f>>>0?0:23;else m=22;else m=21;else m=20;else m=19;else m=18;else m=17;else m=16;else m=15;if((c[149]|0)>>>0<f>>>0)if((c[155]|0)>>>0<f>>>0)if((c[161]|0)>>>0<f>>>0)if((c[167]|0)>>>0<f>>>0)if((c[173]|0)>>>0<f>>>0)if((c[179]|0)>>>0<f>>>0)if((c[185]|0)>>>0<f>>>0)l=(c[191]|0)>>>0<f>>>0?0:31;else l=30;else l=29;else l=28;else l=27;else l=26;else l=25;else l=24;if(m){i=c[8+(m*24|0)+4>>2]|0;h=c[8+(m*24|0)+8>>2]|0;j=c[8+(m*24|0)+20>>2]|0;if(m>>>0>15){f=0;g=b;do{n=c[a+(g<<2)>>2]|0;k=c[a+(g+1<<2)>>2]|0;p=(n|0)>14;n=p?15:n;o=(k|0)>14;k=o?15:k;f=(p?h:0)+f+(o?h:0)+(d[j+((N(n,i)|0)+k)>>0]|0)+((n|0)!=0&1)+((k|0)!=0&1)|0;g=g+2|0}while(g>>>0<e>>>0);k=f}else{g=b;f=0;do{o=c[a+(g<<2)>>2]|0;p=c[a+(g+1<<2)>>2]|0;f=((o|0)!=0&1)+f+((p|0)!=0&1)+(d[j+((N(o,i)|0)+p)>>0]|0)|0;g=g+2|0}while(g>>>0<e>>>0);k=f}}else k=0;if(!l){p=0;p=(p|0)<(k|0);p=p?l:m;return p|0}i=c[8+(l*24|0)+4>>2]|0;h=c[8+(l*24|0)+8>>2]|0;j=c[8+(l*24|0)+20>>2]|0;if(l>>>0>15){f=0;g=b;do{o=c[a+(g<<2)>>2]|0;p=c[a+(g+1<<2)>>2]|0;b=(o|0)>14;o=b?15:o;n=(p|0)>14;p=n?15:p;f=(b?h:0)+f+(n?h:0)+(d[j+((N(o,i)|0)+p)>>0]|0)+((o|0)!=0&1)+((p|0)!=0&1)|0;g=g+2|0}while(g>>>0<e>>>0);p=(f|0)<(k|0);p=p?l:m;return p|0}else{g=b;f=0;do{o=c[a+(g<<2)>>2]|0;p=c[a+(g+1<<2)>>2]|0;f=((o|0)!=0&1)+f+((p|0)!=0&1)+(d[j+((N(o,i)|0)+p)>>0]|0)|0;g=g+2|0}while(g>>>0<e>>>0);p=(f|0)<(k|0);p=p?l:m;return p|0}}else k=14;while(1){l=k+-1|0;if(!k){f=0;h=44;break}if((c[8+(l*24|0)>>2]|0)>>>0>g>>>0)break;else k=l}if((h|0)==44)return f|0;if(!l){p=0;return p|0}i=c[8+(l*24|0)+4>>2]|0;h=c[8+(l*24|0)+8>>2]|0;j=c[8+(l*24|0)+20>>2]|0;if(l>>>0>15){f=0;g=b;do{o=c[a+(g<<2)>>2]|0;p=c[a+(g+1<<2)>>2]|0;m=(o|0)>14;o=m?15:o;n=(p|0)>14;p=n?15:p;f=(m?h:0)+f+(n?h:0)+(d[j+((N(o,i)|0)+p)>>0]|0)+((o|0)!=0&1)+((p|0)!=0&1)|0;g=g+2|0}while(g>>>0<e>>>0);j=f}else{g=b;f=0;do{o=c[a+(g<<2)>>2]|0;p=c[a+(g+1<<2)>>2]|0;f=((o|0)!=0&1)+f+((p|0)!=0&1)+(d[j+((N(o,i)|0)+p)>>0]|0)|0;g=g+2|0}while(g>>>0<e>>>0);j=f}switch(k|0){case 3:{h=c[21]|0;i=c[25]|0;f=b;g=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;g=((o|0)!=0&1)+g+((p|0)!=0&1)+(d[i+((N(o,h)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);p=(g|0)>(j|0)?l:3;return p|0}case 6:{h=c[39]|0;i=c[43]|0;f=b;g=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;g=((o|0)!=0&1)+g+((p|0)!=0&1)+(d[i+((N(o,h)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);p=(g|0)>(j|0)?l:6;return p|0}case 8:{g=c[51]|0;h=c[55]|0;f=b;i=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;i=((o|0)!=0&1)+i+((p|0)!=0&1)+(d[h+((N(o,g)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);h=(i|0)>(j|0);k=h?l:8;h=h?j:i;i=c[57]|0;j=c[61]|0;f=b;g=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;g=((o|0)!=0&1)+g+((p|0)!=0&1)+(d[j+((N(o,i)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);return ((g|0)>(h|0)?k:9)|0}case 11:{g=c[69]|0;h=c[73]|0;f=b;i=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;i=((o|0)!=0&1)+i+((p|0)!=0&1)+(d[h+((N(o,g)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);h=(i|0)>(j|0);k=h?l:11;h=h?j:i;i=c[75]|0;j=c[79]|0;f=b;g=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;g=((o|0)!=0&1)+g+((p|0)!=0&1)+(d[j+((N(o,i)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);p=(g|0)>(h|0)?k:12;return p|0}case 14:{h=c[93]|0;i=c[97]|0;f=b;g=0;do{o=c[a+(f<<2)>>2]|0;p=c[a+(f+1<<2)>>2]|0;g=((o|0)!=0&1)+g+((p|0)!=0&1)+(d[i+((N(o,h)|0)+p)>>0]|0)|0;f=f+2|0}while(f>>>0<e>>>0);p=(g|0)>(j|0)?l:15;return p|0}default:{p=l;return p|0}}return 0}function ya(a,b,e,f,g,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0.0,R=0,S=0,T=0,U=0;K=i+39100|0;L=i+34488|0;M=i+156+(f*184|0)+(g*92|0)+8|0;O=i+156+(f*184|0)+(g*92|0)+4|0;u=i+156+(f*184|0)+(g*92|0)+48|0;v=i+156+(f*184|0)+(g*92|0)+32|0;w=i+156+(f*184|0)+(g*92|0)+36|0;x=i+156+(f*184|0)+(g*92|0)+20|0;z=i+156+(f*184|0)+(g*92|0)+24|0;A=i+156+(f*184|0)+(g*92|0)+28|0;C=i+156+(f*184|0)+(g*92|0)+60|0;D=i+156+(f*184|0)+(g*92|0)+64|0;E=i+156+(f*184|0)+(g*92|0)+68|0;F=i+72|0;G=c[199]|0;H=c[205]|0;t=120;P=-120;do{I=(t|0)/2|0;J=I+P|0;b=J+127|0;n=c[i+40480+(b<<2)>>2]|0;s=c[K>>2]|0;o=((n|0)<0)<<31>>31;s=rb(s|0,((s|0)<0)<<31>>31|0,n|0,o|0)|0;nb(s|0,y|0,-2147483648,0)|0;if((y|0)<=165140){m=i+39456+(b<<3)|0;l=c[L>>2]|0;j=0;k=0;do{b=c[l+(k<<2)>>2]|0;b=(b|0)>-1?b:0-b|0;b=rb(b|0,((b|0)<0)<<31>>31|0,n|0,o|0)|0;nb(b|0,y|0,-2147483648,0)|0;b=y;if((b|0)<1e4)b=c[i+40992+(b<<2)>>2]|0;else{Q=+h[m>>3]*+(c[i+36796+(k<<2)>>2]|0)*4.656612875e-10;b=~~+B(+(+B(+Q)*Q))}c[e+(k<<2)>>2]=b;j=(j|0)<(b|0)?b:j;k=k+1|0}while((k|0)!=576);if((j|0)<=8192){j=576;while(1){if((j|0)<=1){n=10;break}if(c[e+(j+-1<<2)>>2]|0){n=13;break}b=j+-2|0;if(!(c[e+(b<<2)>>2]|0))j=b;else{n=13;break}}do if((n|0)==10){c[M>>2]=0;n=20}else if((n|0)==13){c[M>>2]=0;if((j|0)>3){l=0;while(1){if((c[e+(j+-1<<2)>>2]|0)>=2){n=21;break}if((c[e+(j+-2<<2)>>2]|0)>=2){n=21;break}if((c[e+(j+-3<<2)>>2]|0)>=2){n=21;break}b=j+-4|0;k=l+1|0;if((c[e+(b<<2)>>2]|0)>=2){n=21;break}c[M>>2]=k;if((b|0)>3){j=b;l=k}else{n=15;break}}if((n|0)==15){s=b>>1;c[O>>2]=s;j=b;b=s}else if((n|0)==21){b=j>>>1;c[O>>2]=b;if(!l){c[u>>2]=1;b=0;n=27;break}else k=l}l=0;n=j;o=0;m=0;while(1){q=c[e+(n<<2)>>2]|0;p=c[e+((n|1)<<2)>>2]|0;R=c[e+(n+2<<2)>>2]|0;r=c[e+(n+3<<2)>>2]|0;s=(p<<1)+q+(R<<2)+(r<<3)|0;q=(q|0)!=0;r=((R|0)!=0&1)+((p|0)==0?q&1:q?2:1)+((r|0)!=0&1)|0;l=(d[G+s>>0]|0)+l+r|0;m=r+m+(d[H+s>>0]|0)|0;o=o+1|0;if((o|0)==(k|0)){k=b;n=25;break}else n=n+4|0}}else n=20}while(0);if((n|0)==20){k=j>>1;c[O>>2]=k;m=0;l=0;n=25}if((n|0)==25){n=0;R=(l|0)<(m|0);b=R?l:m;c[u>>2]=(R^1)&1;if(!k){c[v>>2]=0;c[w>>2]=0;s=b;l=c[C>>2]|0}else n=27}if((n|0)==27){m=c[F>>2]|0;l=0;while(1)if((c[1464+(m*92|0)+(l<<2)>>2]|0)<(j|0))l=l+1|0;else break;k=c[824+(l<<3)>>2]|0;while(1){n=1464+(m*92|0)+(k+1<<2)|0;o=c[n>>2]|0;if((k|0)!=0&(o|0)>(j|0))k=k+-1|0;else break}c[v>>2]=k;c[C>>2]=o;k=c[824+(l<<3)+4>>2]|0;while(1){l=c[n+(k+1<<2)>>2]|0;if((k|0)!=0&(l|0)>(j|0))k=k+-1|0;else break}c[w>>2]=k;c[D>>2]=l;c[E>>2]=j;s=b;l=o}c[x>>2]=0;c[z>>2]=0;c[A>>2]=0;if(!l)m=0;else{m=xa(e,0,l)|0;c[x>>2]=m}k=c[D>>2]|0;p=k>>>0>l>>>0;if(p){q=xa(e,l,k)|0;c[z>>2]=q}else q=0;if(j>>>0>k>>>0){r=xa(e,k,j)|0;c[A>>2]=r}else r=0;do if(m){o=c[8+(m*24|0)+4>>2]|0;n=c[8+(m*24|0)+8>>2]|0;b=(l|0)!=0;if(m>>>0>15){if(!b){b=0;break}m=c[8+(m*24|0)+20>>2]|0;b=0;j=0;do{S=c[e+(j<<2)>>2]|0;R=c[e+((j|1)<<2)>>2]|0;U=(S|0)>14;S=U?15:S;T=(R|0)>14;R=T?15:R;b=(U?n:0)+b+(T?n:0)+(d[m+((N(S,o)|0)+R)>>0]|0)+((S|0)!=0&1)+((R|0)!=0&1)|0;j=j+2|0}while(j>>>0<l>>>0)}else{if(!b){b=0;break}m=c[8+(m*24|0)+20>>2]|0;j=0;b=0;do{T=c[e+(j<<2)>>2]|0;U=c[e+((j|1)<<2)>>2]|0;b=((T|0)!=0&1)+b+((U|0)!=0&1)+(d[m+((N(T,o)|0)+U)>>0]|0)|0;j=j+2|0}while(j>>>0<l>>>0)}}else b=0;while(0);if(q){o=c[8+(q*24|0)+4>>2]|0;n=c[8+(q*24|0)+8>>2]|0;if(q>>>0>15)if(p){m=c[8+(q*24|0)+20>>2]|0;j=0;do{T=c[e+(l<<2)>>2]|0;U=c[e+(l+1<<2)>>2]|0;R=(T|0)>14;T=R?15:T;S=(U|0)>14;U=S?15:U;j=(R?n:0)+j+(S?n:0)+(d[m+((N(T,o)|0)+U)>>0]|0)+((T|0)!=0&1)+((U|0)!=0&1)|0;l=l+2|0}while(l>>>0<k>>>0)}else j=0;else if(p){m=c[8+(q*24|0)+20>>2]|0;j=0;do{T=c[e+(l<<2)>>2]|0;U=c[e+(l+1<<2)>>2]|0;j=((T|0)!=0&1)+j+((U|0)!=0&1)+(d[m+((N(T,o)|0)+U)>>0]|0)|0;l=l+2|0}while(l>>>0<k>>>0)}else j=0;b=j+b|0}if(r){n=c[E>>2]|0;o=c[8+(r*24|0)+4>>2]|0;m=c[8+(r*24|0)+8>>2]|0;j=k>>>0<n>>>0;if(r>>>0>15)if(j){l=c[8+(r*24|0)+20>>2]|0;j=0;do{T=c[e+(k<<2)>>2]|0;U=c[e+(k+1<<2)>>2]|0;R=(T|0)>14;T=R?15:T;S=(U|0)>14;U=S?15:U;j=(R?m:0)+j+(S?m:0)+(d[l+((N(T,o)|0)+U)>>0]|0)+((T|0)!=0&1)+((U|0)!=0&1)|0;k=k+2|0}while(k>>>0<n>>>0)}else j=0;else if(j){l=c[8+(r*24|0)+20>>2]|0;j=0;do{T=c[e+(k<<2)>>2]|0;U=c[e+(k+1<<2)>>2]|0;j=((T|0)!=0&1)+j+((U|0)!=0&1)+(d[l+((N(T,o)|0)+U)>>0]|0)|0;k=k+2|0}while(k>>>0<n>>>0)}else j=0;b=j+b|0}b=b+s|0}else b=1e5}else b=1e5;U=(b|0)<(a|0);P=U?P:J;t=U?I:t-I|0}while((t|0)>1);l=i+156+(f*184|0)+(g*92|0)|0;c[i+156+(f*184|0)+(g*92|0)+72>>2]=P;b=c[i+156+(f*184|0)+(g*92|0)+16>>2]|0;k=c[1044+(b<<2)>>2]|0;b=c[1108+(b<<2)>>2]|0;if(f){j=b*5|0;b=((c[i+124+(g<<4)+4>>2]|0)==0?k*5|0:0)+((c[i+124+(g<<4)>>2]|0)==0?k*6|0:0)+((c[i+124+(g<<4)+8>>2]|0)==0?j:0)|0;if(c[i+124+(g<<4)+12>>2]|0){U=b;T=i+156+(f*184|0)+(g*92|0)+52|0;c[T>>2]=U;U=a-U|0;U=wa(e,U,l,0,0,i)|0;T=c[T>>2]|0;U=T+U|0;c[l>>2]=U;return U|0}}else{j=b*5|0;b=j+(k*11|0)|0}U=b+j|0;T=i+156+(f*184|0)+(g*92|0)+52|0;c[T>>2]=U;U=a-U|0;U=wa(e,U,l,0,0,i)|0;T=c[T>>2]|0;U=T+U|0;c[l>>2]=U;return U|0}function za(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=l;l=l+672|0;t=F;b=c[a>>2]|0;if(!b){Pa(a);l=F;return}z=a+16|0;A=a+34488|0;B=a+39100|0;C=a+8|0;D=a+72|0;E=a+39452|0;u=a+39448|0;v=a+39104|0;w=a+39108|0;x=b*23|0;d=c[z>>2]|0;s=0;while(1){r=x+(N(s,-23)|0)|0;b=b+-1|0;if((d|0)>0){q=a+((b<<4)+124)|0;p=0;while(1){o=a+140+(r+(p*46|0)<<2)|0;c[A>>2]=a+25264+(b*4608|0)+(p*2304|0);d=576;e=0;a:while(1){c[B>>2]=e;while(1){f=d+-1|0;if(!d)break a;n=c[(c[A>>2]|0)+(f<<2)>>2]|0;e=((n|0)<0)<<31>>31;e=rb(n|0,e|0,n|0,e|0)|0;e=nb(e|0,y|0,1073741824,0)|0;e=pb(e|0,y|0,31)|0;c[a+34492+(f<<2)>>2]=e;e=c[(c[A>>2]|0)+(f<<2)>>2]|0;e=(e|0)>-1?e:0-e|0;c[a+36796+(f<<2)>>2]=e;if((e|0)>(c[B>>2]|0)){d=f;continue a}else d=f}}m=a+2224+(b*4608|0)+(p*2304|0)|0;n=a+156+(p*184|0)+(b*92|0)|0;c[a+156+(p*184|0)+(b*92|0)+56>>2]=21;ob(t+(p*336|0)+(b*168|0)|0,0,168)|0;b:do if((c[C>>2]|0)==3){k=c[D>>2]|0;c[a+39448+(p<<2)>>2]=c[B>>2];d=0;e=575;while(1){d=(c[a+34492+(e<<2)>>2]>>10)+d|0;if(!e)break;else e=e+-1|0}if(!d)d=0;else d=~~(+L(+(+(d|0)*4.768371584e-07))/.69314718);c[a+39104+(p<<2)>>2]=d;i=20;j=c[1464+(k*92|0)+84>>2]|0;while(1){f=j;j=c[1464+(k*92|0)+(i<<2)>>2]|0;if((j|0)<(f|0)){d=0;e=j;do{d=(c[a+34492+(e<<2)>>2]>>10)+d|0;e=e+1|0}while((e|0)!=(f|0));if(d)d=~~(+L(+(+(d|0)*4.768371584e-07))/.69314718);else d=0}else d=0;c[a+39112+(p*84|0)+(i<<2)>>2]=d;g=+h[t+(p*336|0)+(b*168|0)+(i<<3)>>3];if(g!=0.0)d=~~(+L(+g)/.69314718);else d=0;c[a+39280+(p*84|0)+(i<<2)>>2]=d;if(!i)break;else i=i+-1|0}if((p|0)==1){j=(c[u>>2]|0)!=0;e=c[E>>2]|0?3:2;i=(c[v>>2]|0)-(c[w>>2]|0)|0;i=(((i|0)>-1?i:0-i|0)|0)<10;d=0;f=20;while(1){k=(c[a+39112+(f<<2)>>2]|0)-(c[a+39196+(f<<2)>>2]|0)|0;d=((k|0)>-1?k:0-k|0)+d|0;if(!f)break;else f=f+-1|0}if(((j&1)+e+(i&1)+((d|0)<100&1)|0)==6){d=0;e=0}else{c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;break}do{while(1){k=a+124+(b<<4)+(d<<2)|0;c[k>>2]=0;d=d+1|0;j=e;e=c[1008+(d<<2)>>2]|0;if((j|0)<(e|0)){f=0;i=0;do{G=(c[a+39112+(j<<2)>>2]|0)-(c[a+39196+(j<<2)>>2]|0)|0;f=((G|0)>-1?G:0-G|0)+f|0;G=(c[a+39280+(j<<2)>>2]|0)-(c[a+39364+(j<<2)>>2]|0)|0;i=((G|0)>-1?G:0-G|0)+i|0;j=j+1|0}while((j|0)!=(e|0))}else{i=0;f=0}if((f|0)<10&(i|0)<10)break;c[k>>2]=0;if((d|0)>=4)break b}c[k>>2]=1}while((d|0)<4)}}while(0);d=Na(a+2192+(b<<4)+(p<<3)|0,a)|0;e=a+1208+(p*176|0)+(b*88|0)|0;f=e+88|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));ob(a+1560+(p*312|0)+(b*156|0)|0,0,156)|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[n>>2]=0;c[a+156+(p*184|0)+(b*92|0)+4>>2]=0;c[a+156+(p*184|0)+(b*92|0)+8>>2]=0;e=a+156+(p*184|0)+(b*92|0)+16|0;f=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));if(c[B>>2]|0)c[n>>2]=ya(d,0,m,p,b,a)|0;Oa(n,a);c[a+156+(p*184|0)+(b*92|0)+12>>2]=(c[a+156+(p*184|0)+(b*92|0)+72>>2]|0)+210;p=p+1|0;d=c[z>>2]|0;if((p|0)>=(d|0))break}}if(!b)break;else s=s+1|0}Pa(a);l=F;return}function Aa(a){a=a|0;var b=0,d=0,e=0.0;b=128;d=127;while(1){e=+Y(+(+(128-b|0)*.25));h[a+39456+(d<<3)>>3]=e;e=e*2.0;c[a+40480+(d<<2)>>2]=e>2147483647.0?2147483647:~~(e+.5);if(!d){b=9999;break}else{b=d;d=d+-1|0}}while(1){e=+(b|0);c[a+40992+(b<<2)>>2]=~~(+B(+(e*+B(+e)))+-.0946+.5);if(!b)break;else b=b+-1|0}return}function Ba(a){a=a|0;var b=0,d=0.0,e=0;b=17;while(1){d=+(b<<1|1|0);e=35;while(1){c[a+80992+(b*144|0)+(e<<2)>>2]=~~(+E(+((+(e|0)+.5)*.087266462599717))*+D(+(d*(+((e<<1)+19|0)*.043633231299858195)))*2147483647.0);if(!e)break;else e=e+-1|0}if(!b)break;else b=b+-1|0}return}function Ca(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;s=l;l=l+144|0;p=s;d=c[a>>2]|0;if(!d){l=s;return}q=a+16|0;r=p+140|0;do{d=d+-1|0;e=c[q>>2]|0;if((e|0)>0){o=a+2184+(d<<2)|0;n=0;do{m=a+25264+(d*4608|0)+(n*2304|0)|0;k=n;n=n+1|0;e=0;do{Ea(o,a+11440+(d*6912|0)+(n*2304|0)+(e<<7)|0,d,a,b);j=e|1;Ea(o,a+11440+(d*6912|0)+(n*2304|0)+(j<<7)|0,d,a,b);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+4|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+12|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+20|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+28|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+36|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+44|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+52|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+60|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+68|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+76|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+84|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+92|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+100|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+108|0;c[i>>2]=0-(c[i>>2]|0);i=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+116|0;c[i>>2]=0-(c[i>>2]|0);j=a+11440+(d*6912|0)+(n*2304|0)+(j<<7)+124|0;c[j>>2]=0-(c[j>>2]|0);e=e+2|0}while((e|0)<18);j=0;while(1){e=18;f=17;while(1){c[p+(f<<2)>>2]=c[a+11440+(d*6912|0)+(k*2304|0)+(f<<7)+(j<<2)>>2];c[p+(e+17<<2)>>2]=c[a+11440+(d*6912|0)+(n*2304|0)+(f<<7)+(j<<2)>>2];if(!f)break;else{e=f;f=f+-1|0}}g=c[r>>2]|0;h=((g|0)<0)<<31>>31;i=17;while(1){e=c[a+80992+(i*144|0)+140>>2]|0;rb(e|0,((e|0)<0)<<31>>31|0,g|0,h|0)|0;e=35;f=y;do{v=e+-1|0;t=c[p+(v<<2)>>2]|0;v=c[a+80992+(i*144|0)+(v<<2)>>2]|0;rb(v|0,((v|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;t=y+f|0;v=e+-2|0;u=c[p+(v<<2)>>2]|0;v=c[a+80992+(i*144|0)+(v<<2)>>2]|0;rb(v|0,((v|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;t=t+y|0;u=e+-3|0;v=c[p+(u<<2)>>2]|0;u=c[a+80992+(i*144|0)+(u<<2)>>2]|0;rb(u|0,((u|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;t=t+y|0;v=e+-4|0;u=c[p+(v<<2)>>2]|0;v=c[a+80992+(i*144|0)+(v<<2)>>2]|0;rb(v|0,((v|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;t=t+y|0;u=e+-5|0;v=c[p+(u<<2)>>2]|0;u=c[a+80992+(i*144|0)+(u<<2)>>2]|0;rb(u|0,((u|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;t=t+y|0;v=e+-6|0;u=c[p+(v<<2)>>2]|0;v=c[a+80992+(i*144|0)+(v<<2)>>2]|0;rb(v|0,((v|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;t=t+y|0;e=e+-7|0;u=c[p+(e<<2)>>2]|0;v=c[a+80992+(i*144|0)+(e<<2)>>2]|0;rb(v|0,((v|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;f=t+y|0}while((e|0)!=0);c[m+(j*72|0)+(i<<2)>>2]=f;if(!i)break;else i=i+-1|0}if(!j){j=1;continue}v=m+(j*72|0)|0;e=c[v>>2]|0;u=((e|0)<0)<<31>>31;w=rb(e|0,u|0,1841452035,0)|0;i=y;t=j+-1|0;h=m+(t*72|0)+68|0;g=c[h>>2]|0;f=((g|0)<0)<<31>>31;x=rb(g|0,f|0,1104871221,0)|0;i=nb(x|0,y|0,w|0,i|0)|0;i=pb(i|0,y|0,31)|0;u=rb(e|0,u|0,-1104871221,-1)|0;e=y;f=rb(g|0,f|0,1841452035,0)|0;e=nb(f|0,y|0,u|0,e|0)|0;e=pb(e|0,y|0,31)|0;c[h>>2]=e;c[v>>2]=i;v=m+(j*72|0)+4|0;i=c[v>>2]|0;h=((i|0)<0)<<31>>31;e=rb(i|0,h|0,1893526520,0)|0;u=y;f=m+(t*72|0)+64|0;g=c[f>>2]|0;w=((g|0)<0)<<31>>31;x=rb(g|0,w|0,1013036688,0)|0;u=nb(x|0,y|0,e|0,u|0)|0;u=pb(u|0,y|0,31)|0;h=rb(i|0,h|0,-1013036688,-1)|0;i=y;w=rb(g|0,w|0,1893526520,0)|0;i=nb(w|0,y|0,h|0,i|0)|0;i=pb(i|0,y|0,31)|0;c[f>>2]=i;c[v>>2]=u;v=m+(j*72|0)+8|0;u=c[v>>2]|0;f=((u|0)<0)<<31>>31;i=rb(u|0,f|0,2039311994,0)|0;h=y;w=m+(t*72|0)+60|0;g=c[w>>2]|0;e=((g|0)<0)<<31>>31;x=rb(g|0,e|0,672972958,0)|0;h=nb(x|0,y|0,i|0,h|0)|0;h=pb(h|0,y|0,31)|0;f=rb(u|0,f|0,-672972958,-1)|0;u=y;e=rb(g|0,e|0,2039311994,0)|0;u=nb(e|0,y|0,f|0,u|0)|0;u=pb(u|0,y|0,31)|0;c[w>>2]=u;c[v>>2]=h;v=m+(j*72|0)+12|0;h=c[v>>2]|0;w=((h|0)<0)<<31>>31;u=rb(h|0,w|0,2111652007,0)|0;f=y;e=m+(t*72|0)+56|0;g=c[e>>2]|0;i=((g|0)<0)<<31>>31;x=rb(g|0,i|0,390655621,0)|0;f=nb(x|0,y|0,u|0,f|0)|0;f=pb(f|0,y|0,31)|0;w=rb(h|0,w|0,-390655621,-1)|0;h=y;i=rb(g|0,i|0,2111652007,0)|0;h=nb(i|0,y|0,w|0,h|0)|0;h=pb(h|0,y|0,31)|0;c[e>>2]=h;c[v>>2]=f;v=m+(j*72|0)+16|0;f=c[v>>2]|0;e=((f|0)<0)<<31>>31;h=rb(f|0,e|0,2137858230,0)|0;w=y;i=m+(t*72|0)+52|0;g=c[i>>2]|0;u=((g|0)<0)<<31>>31;x=rb(g|0,u|0,203096531,0)|0;w=nb(x|0,y|0,h|0,w|0)|0;w=pb(w|0,y|0,31)|0;e=rb(f|0,e|0,-203096531,-1)|0;f=y;u=rb(g|0,u|0,2137858230,0)|0;f=nb(u|0,y|0,e|0,f|0)|0;f=pb(f|0,y|0,31)|0;c[i>>2]=f;c[v>>2]=w;v=m+(j*72|0)+20|0;w=c[v>>2]|0;i=((w|0)<0)<<31>>31;f=rb(w|0,i|0,2145680959,0)|0;e=y;u=m+(t*72|0)+48|0;g=c[u>>2]|0;h=((g|0)<0)<<31>>31;x=rb(g|0,h|0,87972919,0)|0;e=nb(x|0,y|0,f|0,e|0)|0;e=pb(e|0,y|0,31)|0;i=rb(w|0,i|0,-87972919,-1)|0;w=y;h=rb(g|0,h|0,2145680959,0)|0;w=nb(h|0,y|0,i|0,w|0)|0;w=pb(w|0,y|0,31)|0;c[u>>2]=w;c[v>>2]=e;v=m+(j*72|0)+24|0;e=c[v>>2]|0;u=((e|0)<0)<<31>>31;w=rb(e|0,u|0,2147267170,0)|0;i=y;h=m+(t*72|0)+44|0;g=c[h>>2]|0;f=((g|0)<0)<<31>>31;x=rb(g|0,f|0,30491193,0)|0;i=nb(x|0,y|0,w|0,i|0)|0;i=pb(i|0,y|0,31)|0;u=rb(e|0,u|0,-30491193,-1)|0;e=y;f=rb(g|0,f|0,2147267170,0)|0;e=nb(f|0,y|0,u|0,e|0)|0;e=pb(e|0,y|0,31)|0;c[h>>2]=e;c[v>>2]=i;v=m+(j*72|0)+28|0;i=c[v>>2]|0;h=((i|0)<0)<<31>>31;e=rb(i|0,h|0,2147468947,0)|0;u=y;t=m+(t*72|0)+40|0;f=c[t>>2]|0;g=((f|0)<0)<<31>>31;w=rb(f|0,g|0,7945635,0)|0;u=nb(w|0,y|0,e|0,u|0)|0;u=pb(u|0,y|0,31)|0;h=rb(i|0,h|0,-7945635,-1)|0;i=y;g=rb(f|0,g|0,2147468947,0)|0;i=nb(g|0,y|0,h|0,i|0)|0;i=pb(i|0,y|0,31)|0;c[t>>2]=i;c[v>>2]=u;j=j+1|0;if((j|0)==32)break}e=c[q>>2]|0}while((n|0)<(e|0))}tb(a+11440+(d*6912|0)|0,a+11440+(d*6912|0)+(e*2304|0)|0,2304)|0}while((d|0)!=0);l=s;return}function Da(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+16|0;e=j;c[a+83588>>2]=0;c[a+83584>>2]=0;ob(a+91784|0,0,4096)|0;g=31;while(1){i=g<<1|1;b=64;f=63;while(1){d=+D(+(+(N(17-b|0,i)|0)*.049087385212))*1.0e9;h[e>>3]=d;if(!(d>=0.0))+bb(d+-.5,e);else+bb(d+.5,e);c[a+83592+(g<<8)+(f<<2)>>2]=~~(+h[e>>3]*2.147483647);if(!f)break;else{b=f;f=f+-1|0}}if(!g)break;else g=g+-1|0}l=j;return}function Ea(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+256|0;o=p;j=c[a>>2]|0;n=f+83584+(d<<2)|0;k=g<<5;h=j;i=31;m=c[n>>2]|0;while(1){c[f+91784+(d<<11)+(i+m<<2)>>2]=(e[h>>1]|0)<<16;m=c[n>>2]|0;if(!i)break;else{h=h+(g<<1)|0;i=i+-1|0}}c[a>>2]=j+(k<<1);h=64;a=63;while(1){j=a+m|0;k=c[f+91784+(d<<11)+((j&511)<<2)>>2]|0;g=c[2292+(a<<2)>>2]|0;rb(g|0,((g|0)<0)<<31>>31|0,k|0,((k|0)<0)<<31>>31|0)|0;k=y;g=c[f+91784+(d<<11)+((j+64&511)<<2)>>2]|0;i=c[2292+(h+63<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=y+k|0;g=c[f+91784+(d<<11)+((j+128&511)<<2)>>2]|0;i=c[2292+(h+127<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=k+y|0;g=c[f+91784+(d<<11)+((j+192&511)<<2)>>2]|0;i=c[2292+(h+191<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=k+y|0;g=c[f+91784+(d<<11)+((j+256&511)<<2)>>2]|0;i=c[2292+(h+255<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=k+y|0;g=c[f+91784+(d<<11)+((j+320&511)<<2)>>2]|0;i=c[2292+(h+319<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=k+y|0;g=c[f+91784+(d<<11)+((j+384&511)<<2)>>2]|0;i=c[2292+(h+383<<2)>>2]|0;rb(i|0,((i|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;k=k+y|0;j=c[f+91784+(d<<11)+((j+448&511)<<2)>>2]|0;g=c[2292+(h+447<<2)>>2]|0;rb(g|0,((g|0)<0)<<31>>31|0,j|0,((j|0)<0)<<31>>31|0)|0;c[o+(a<<2)>>2]=k+y;if(!a)break;else{h=a;a=a+-1|0}}c[n>>2]=m+480&511;i=c[o+252>>2]|0;g=((i|0)<0)<<31>>31;j=31;while(1){h=c[f+83592+(j<<8)+252>>2]|0;rb(i|0,g|0,h|0,((h|0)<0)<<31>>31|0)|0;h=y;a=63;do{m=a+-1|0;n=c[f+83592+(j<<8)+(m<<2)>>2]|0;m=c[o+(m<<2)>>2]|0;rb(m|0,((m|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;n=y+h|0;m=a+-2|0;d=c[f+83592+(j<<8)+(m<<2)>>2]|0;m=c[o+(m<<2)>>2]|0;rb(m|0,((m|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;n=n+y|0;d=a+-3|0;m=c[f+83592+(j<<8)+(d<<2)>>2]|0;d=c[o+(d<<2)>>2]|0;rb(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;n=n+y|0;m=a+-4|0;d=c[f+83592+(j<<8)+(m<<2)>>2]|0;m=c[o+(m<<2)>>2]|0;rb(m|0,((m|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;n=n+y|0;d=a+-5|0;m=c[f+83592+(j<<8)+(d<<2)>>2]|0;d=c[o+(d<<2)>>2]|0;rb(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;n=n+y|0;m=a+-6|0;d=c[f+83592+(j<<8)+(m<<2)>>2]|0;m=c[o+(m<<2)>>2]|0;rb(m|0,((m|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;n=n+y|0;a=a+-7|0;d=c[f+83592+(j<<8)+(a<<2)>>2]|0;m=c[o+(a<<2)>>2]|0;rb(m|0,((m|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;h=n+y|0}while((a|0)!=0);c[b+(j<<2)>>2]=h;if(!j)break;else j=j+-1|0}l=p;return}function Fa(a){a=a|0;c[a+4>>2]=128;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=1;return}function Ga(a,b){a=a|0;b=b|0;if((c[1208+(b<<2)>>2]|0)==(a|0)){b=0;return b|0}if((c[1224+(b<<2)>>2]|0)==(a|0)){b=1;return b|0}if((c[1240+(b<<2)>>2]|0)==(a|0)){b=2;return b|0}if((c[1256+(b<<2)>>2]|0)==(a|0)){b=3;return b|0}if((c[1272+(b<<2)>>2]|0)==(a|0)){b=4;return b|0}if((c[1288+(b<<2)>>2]|0)==(a|0)){b=5;return b|0}if((c[1304+(b<<2)>>2]|0)==(a|0)){b=6;return b|0}if((c[1320+(b<<2)>>2]|0)==(a|0)){b=7;return b|0}if((c[1336+(b<<2)>>2]|0)==(a|0)){b=8;return b|0}if((c[1352+(b<<2)>>2]|0)==(a|0)){b=9;return b|0}if((c[1368+(b<<2)>>2]|0)==(a|0)){b=10;return b|0}if((c[1384+(b<<2)>>2]|0)==(a|0)){b=11;return b|0}if((c[1400+(b<<2)>>2]|0)==(a|0)){b=12;return b|0}if((c[1416+(b<<2)>>2]|0)==(a|0)){b=13;return b|0}if((c[1432+(b<<2)>>2]|0)==(a|0)){b=14;return b|0}else return ((c[1448+(b<<2)>>2]|0)==(a|0)?15:-1)|0;return 0}function Ha(a,b){a=a|0;b=b|0;if((c[293]|0)!=(a|0))if((c[294]|0)!=(a|0))if((c[295]|0)!=(a|0))if((c[296]|0)!=(a|0))if((c[297]|0)!=(a|0))if((c[298]|0)!=(a|0))if((c[299]|0)!=(a|0))if((c[300]|0)!=(a|0))if((c[301]|0)==(a|0))a=8;else{b=-1;return b|0}else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;a=a>>>0<3?3:a>>>0<6?2:0;b=(Ga(b,a)|0)<0;b=b?-1:a;return b|0}function Ia(a){a=a|0;return (c[a+16>>2]|0)*576|0}function Ja(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0.0;e=a+4|0;b=c[e>>2]|0;i=a+12|0;d=c[i>>2]|0;j=c[293]|0;if((j|0)!=(b|0))if((c[294]|0)!=(b|0))if((c[295]|0)!=(b|0))if((c[296]|0)!=(b|0))if((c[297]|0)!=(b|0))if((c[298]|0)!=(b|0))if((c[299]|0)!=(b|0))if((c[300]|0)!=(b|0))if((c[301]|0)==(b|0))b=8;else{j=0;return j|0}else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;if((Ga(d,b>>>0<3?3:b>>>0<6?2:0)|0)<0){j=0;return j|0}g=ib(1,95880)|0;if(!g){j=g;return j|0}Da(g);Ba(g);Aa(g);c[g>>2]=c[a>>2];f=c[e>>2]|0;c[g+4>>2]=f;d=g+8|0;c[g+20>>2]=c[a+8>>2];e=c[i>>2]|0;c[g+24>>2]=e;c[g+28>>2]=c[a+16>>2];c[g+88>>2]=c[a+20>>2];c[g+92>>2]=c[a+24>>2];c[g+34484>>2]=0;c[g+34480>>2]=0;c[g+12>>2]=1;c[g+76>>2]=0;c[g+80>>2]=0;c[g+84>>2]=0;c[g+40>>2]=8;if((j|0)!=(f|0))if((c[294]|0)!=(f|0))if((c[295]|0)!=(f|0))if((c[296]|0)!=(f|0))if((c[297]|0)!=(f|0))if((c[298]|0)!=(f|0))if((c[299]|0)!=(f|0))if((c[300]|0)==(f|0))b=7;else b=(c[301]|0)==(f|0)?8:-1;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;c[g+72>>2]=b;j=(b|0)<3?3:(b|0)<6?2:0;c[d>>2]=j;c[g+68>>2]=Ga(e,j)|0;j=c[1028+(j<<2)>>2]|0;b=g+16|0;c[b>>2]=j;k=+(j|0)*576.0/+(f|0)*(+(e|0)*1.0e3*.125);j=~~k;c[g+64>>2]=j;k=k-+(j|0);h[g+48>>3]=k;h[g+56>>3]=-k;if(k==0.0)c[g+32>>2]=0;ra(g+96|0,4096);ob(g+116|0,0,408)|0;j=(c[g>>2]|0)==1;c[g+524>>2]=(c[b>>2]|0)==2?(j?168:288):j?104:168;j=g;return j|0}function Ka(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0;c[a+2184>>2]=c[b>>2];if((c[a>>2]|0)==2)c[a+2188>>2]=c[b+4>>2];e=+h[a+48>>3];if(e!=0.0){f=a+56|0;i=+h[f>>3];g=i<=e+-1.0;b=g&1;c[a+32>>2]=b;h[f>>3]=i+(+(g&1)-e)}else b=c[a+32>>2]|0;g=(c[a+64>>2]|0)+b<<3;c[a+36>>2]=g;c[a+528>>2]=(g-(c[a+524>>2]|0)|0)/(c[a+16>>2]|0)|0;Ca(a,1);za(a);va(a);g=a+104|0;c[d>>2]=c[g>>2];c[g>>2]=0;return c[a+96>>2]|0}function La(a,b){a=a|0;b=b|0;var d=0;d=a+104|0;c[b>>2]=c[d>>2];c[d>>2]=0;return c[a+96>>2]|0}function Ma(a){a=a|0;sa(a+96|0);hb(a);return}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=(c[b+528>>2]|0)/(c[b>>2]|0)|0;e=(d|0)<4095?d:4095;f=c[b+34484>>2]|0;if(!f){f=e;return f|0}a=~~(+h[a>>3]*3.1-+(d|0));d=c[b+34480>>2]|0;if((a|0)>100){b=(d*6|0)/10|0;a=(b|0)<(a|0)?b:a}else a=0;f=d-((f<<3|0)/10|0)|0;f=((f|0)>(a|0)?f:a)+e|0;f=(f|0)<4095?f:4095;return f|0}function Oa(a,b){a=a|0;b=b|0;var d=0;d=b+34480|0;c[d>>2]=((c[b+528>>2]|0)/(c[b>>2]|0)|0)-(c[a>>2]|0)+(c[d>>2]|0);return}function Pa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=c[a>>2]|0;if((f|0)==2?c[a+528>>2]&1|0:0){h=a+34480|0;c[h>>2]=(c[h>>2]|0)+1}h=a+34480|0;e=c[h>>2]|0;b=e-(c[a+34484>>2]|0)|0;b=(b|0)>0?b:0;e=e-b|0;g=(e|0)%8|0;b=g+b|0;c[h>>2]=e-g;if(!b)return;d=a+156|0;e=(c[d>>2]|0)+b|0;if(e>>>0<4095){c[d>>2]=e;return}h=a+16|0;d=c[h>>2]|0;if((d|0)>0){g=0;e=f;do{if((e|0)>0){f=0;d=e;while(1){if(!b){b=0;e=d;break}e=a+156+(g*184|0)+(f*92|0)|0;i=c[e>>2]|0;d=4095-i|0;d=(d|0)<(b|0)?d:b;c[e>>2]=d+i;b=b-d|0;f=f+1|0;d=c[a>>2]|0;if((f|0)>=(d|0)){e=d;break}}d=c[h>>2]|0}g=g+1|0}while((g|0)<(d|0))}c[a+120>>2]=b;return}function Qa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[g>>2]=a;c[g+4>>2]=b;b=g+8|0;Fa(b);c[b>>2]=d;c[g+12>>2]=e;e=Ja(g)|0;l=f;return e|0}function Ra(){return 8944}function Sa(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Za(c[a+60>>2]|0)|0;a=Va(ba(6,d|0)|0)|0;l=b;return a|0}function Ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+48|0;k=n+16|0;g=n;f=n+32|0;i=a+28|0;e=c[i>>2]|0;c[f>>2]=e;j=a+20|0;e=(c[j>>2]|0)-e|0;c[f+4>>2]=e;c[f+8>>2]=b;c[f+12>>2]=d;e=e+d|0;h=a+60|0;c[g>>2]=c[h>>2];c[g+4>>2]=f;c[g+8>>2]=2;g=Va(ga(146,g|0)|0)|0;a:do if((e|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;e=e-g|0;p=c[f+4>>2]|0;o=g>>>0>p>>>0;f=o?f+8|0:f;b=(o<<31>>31)+b|0;p=g-(o?p:0)|0;c[f>>2]=(c[f>>2]|0)+p;o=f+4|0;c[o>>2]=(c[o>>2]|0)-p;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=Va(ga(146,k|0)|0)|0;if((e|0)==(g|0)){m=3;break a}}c[a+16>>2]=0;c[i>>2]=0;c[j>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}else m=3;while(0);if((m|0)==3){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[i>>2]=p;c[j>>2]=p}l=n;return d|0}function Ua(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Va(ca(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function Va(a){a=a|0;if(a>>>0>4294963200){c[(Wa()|0)>>2]=0-a;a=-1}return a|0}function Wa(){return (Xa()|0)+64|0}function Xa(){return Ya()|0}function Ya(){return 4340}function Za(a){a=a|0;return a|0}function _a(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;f=g;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21523,c[f+8>>2]=g+16,ea(54,f|0)|0):0)a[b+75>>0]=-1;f=Ta(b,d,e)|0;l=g;return f|0}function $a(a){a=a|0;return 0}function ab(a){a=a|0;return}function bb(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,i=0.0;h[j>>3]=a;f=c[j>>2]|0;g=c[j+4>>2]|0;d=pb(f|0,g|0,52)|0;d=d&2047;e=d+-1023|0;if((e|0)>51){h[b>>3]=a;c[j>>2]=0;c[j+4>>2]=g&-2147483648;return +((f|0)==0&(g&1048575|0)==0|(e|0)!=1024?+h[j>>3]:a)}do if(d>>>0>=1023){d=pb(-1,1048575,e|0)|0;e=y;if((d&f|0)==0&(e&g|0)==0){h[b>>3]=a;c[j>>2]=0;c[j+4>>2]=g&-2147483648;a=+h[j>>3];break}else{d=f&~d;f=g&~e;c[j>>2]=d;c[j+4>>2]=f;i=+h[j>>3];g=b;c[g>>2]=d;c[g+4>>2]=f;a=a-i;break}}else{f=b;c[f>>2]=0;c[f+4>>2]=g&-2147483648}while(0);return +a}function cb(){Z(9008);return 9016}function db(){fa(9008);return}function eb(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=fb(a)|0;break}d=($a(a)|0)==0;b=fb(a)|0;if(!d)ab(a)}else{if(!(c[1177]|0))b=0;else b=eb(c[1177]|0)|0;a=c[(cb()|0)>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=$a(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=fb(a)|0|b;if(d|0)ab(a);a=c[a+56>>2]|0}while((a|0)!=0);db()}while(0);return b|0}function fb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(ja[c[a+36>>2]&3](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0<g>>>0)ja[c[a+40>>2]&3](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function gb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+16|0;o=K;do if(a>>>0<245){p=a>>>0<11?16:a+11&-8;a=p>>>3;t=c[2255]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=9060+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[2259]|0)>>>0)$();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else $()}else c[2255]=t&~(1<<a);while(0);J=a<<3;c[f+4>>2]=J|3;J=f+J+4|0;c[J>>2]=c[J>>2]|1;J=g;l=K;return J|0}s=c[2257]|0;if(p>>>0>s>>>0){if(d|0){i=2<<a;a=d<<a&(i|0-i);a=(a&0-a)+-1|0;i=a>>>12&16;a=a>>>i;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|i|g|d|b)+(a>>>b)|0;a=9060+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;i=g+8|0;e=c[i>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[2259]|0)>>>0)$();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;j=t;break}else $()}else{j=t&~(1<<b);c[2255]=j}while(0);h=(b<<3)-p|0;c[g+4>>2]=p|3;e=g+p|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[2260]|0;b=s>>>3;d=9060+(b<<1<<2)|0;b=1<<b;if(j&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[2259]|0)>>>0)$();else{k=a;m=b}}else{c[2255]=j|b;k=d;m=d+8|0}c[m>>2]=f;c[k+12>>2]=f;c[f+8>>2]=k;c[f+12>>2]=d}c[2257]=h;c[2260]=e;J=i;l=K;return J|0}k=c[2256]|0;if(k){a=(k&0-k)+-1|0;I=a>>>12&16;a=a>>>I;H=a>>>5&8;a=a>>>H;J=a>>>2&4;a=a>>>J;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=c[9324+((H|I|J|d|b)+(a>>>b)<<2)>>2]|0;a=(c[b+4>>2]&-8)-p|0;d=c[b+16+(((c[b+16>>2]|0)==0&1)<<2)>>2]|0;if(!d){j=b;h=a}else{do{I=(c[d+4>>2]&-8)-p|0;J=I>>>0<a>>>0;a=J?I:a;b=J?d:b;d=c[d+16+(((c[d+16>>2]|0)==0&1)<<2)>>2]|0}while((d|0)!=0);j=b;h=a}f=c[2259]|0;if(j>>>0<f>>>0)$();i=j+p|0;if(j>>>0>=i>>>0)$();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)$();else{c[a>>2]=0;n=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)$();b=e+12|0;if((c[b>>2]|0)!=(j|0))$();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else $()}while(0);a:do if(g|0){b=c[j+28>>2]|0;a=9324+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[2256]=k&~(1<<b);break a}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=n;if(!n)break a;else break}else $();while(0);a=c[2259]|0;if(n>>>0<a>>>0)$();c[n+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)$();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[j+20>>2]|0;if(b|0)if(b>>>0<(c[2259]|0)>>>0)$();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(h>>>0<16){J=h+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}else{c[j+4>>2]=p|3;c[i+4>>2]=h|1;c[i+h>>2]=h;if(s|0){e=c[2260]|0;b=s>>>3;d=9060+(b<<1<<2)|0;b=1<<b;if(t&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[2259]|0)>>>0)$();else{q=a;r=b}}else{c[2255]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[2257]=h;c[2260]=i}J=j+8|0;l=K;return J|0}}}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;k=c[2256]|0;if(k){e=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)i=31;else{r=(a+1048320|0)>>>16&8;C=a<<r;q=(C+520192|0)>>>16&4;C=C<<q;i=(C+245760|0)>>>16&2;i=14-(q|r|i)+(C<<i>>>15)|0;i=p>>>(i+7|0)&1|i<<1}else i=0;d=c[9324+(i<<2)>>2]|0;b:do if(!d){d=0;a=0;C=81}else{a=0;h=p<<((i|0)==31?0:25-(i>>>1)|0);g=0;while(1){f=(c[d+4>>2]&-8)-p|0;if(f>>>0<e>>>0)if(!f){a=d;e=0;f=d;C=85;break b}else{a=d;e=f}f=c[d+20>>2]|0;d=c[d+16+(h>>>31<<2)>>2]|0;g=(f|0)==0|(f|0)==(d|0)?g:f;f=(d|0)==0;if(f){d=g;C=81;break}else h=h<<((f^1)&1)}}while(0);if((C|0)==81){if((d|0)==0&(a|0)==0){a=2<<i;a=k&(a|0-a);if(!a)break;r=(a&0-a)+-1|0;m=r>>>12&16;r=r>>>m;j=r>>>5&8;r=r>>>j;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;a=0;d=c[9324+((j|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){j=a;i=e}else{f=d;C=85}}if((C|0)==85)while(1){C=0;d=(c[f+4>>2]&-8)-p|0;r=d>>>0<e>>>0;d=r?d:e;a=r?f:a;f=c[f+16+(((c[f+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){j=a;i=d;break}else{e=d;C=85}}if((j|0)!=0?i>>>0<((c[2257]|0)-p|0)>>>0:0){f=c[2259]|0;if(j>>>0<f>>>0)$();h=j+p|0;if(j>>>0>=h>>>0)$();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)$();else{c[a>>2]=0;s=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)$();b=e+12|0;if((c[b>>2]|0)!=(j|0))$();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else $()}while(0);c:do if(g){b=c[j+28>>2]|0;a=9324+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=k&~(1<<b);c[2256]=t;break c}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=s;if(!s){t=k;break c}else break}else $();while(0);a=c[2259]|0;if(s>>>0<a>>>0)$();c[s+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)$();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[2259]|0)>>>0)$();else{c[s+20>>2]=b;c[b+24>>2]=s;t=k;break}else t=k}else t=k;while(0);do if(i>>>0>=16){c[j+4>>2]=p|3;c[h+4>>2]=i|1;c[h+i>>2]=i;b=i>>>3;if(i>>>0<256){d=9060+(b<<1<<2)|0;a=c[2255]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[2259]|0)>>>0)$();else{x=a;y=b}}else{c[2255]=a|b;x=d;y=d+8|0}c[y>>2]=h;c[x+12>>2]=h;c[h+8>>2]=x;c[h+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)b=31;else{I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;b=(J+245760|0)>>>16&2;b=14-(H|I|b)+(J<<b>>>15)|0;b=i>>>(b+7|0)&1|b<<1}else b=0;d=9324+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(t&a)){c[2256]=t|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=i<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){C=139;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=136;break}else{a=a<<1;e=b}}if((C|0)==136)if(d>>>0<(c[2259]|0)>>>0)$();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((C|0)==139){b=e+8|0;a=c[b>>2]|0;J=c[2259]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else $()}}else{J=i+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}while(0);J=j+8|0;l=K;return J|0}}}else p=-1;while(0);d=c[2257]|0;if(d>>>0>=p>>>0){b=d-p|0;a=c[2260]|0;if(b>>>0>15){J=a+p|0;c[2260]=J;c[2257]=b;c[J+4>>2]=b|1;c[J+b>>2]=b;c[a+4>>2]=p|3}else{c[2257]=0;c[2260]=0;c[a+4>>2]=d|3;J=a+d+4|0;c[J>>2]=c[J>>2]|1}J=a+8|0;l=K;return J|0}h=c[2258]|0;if(h>>>0>p>>>0){H=h-p|0;c[2258]=H;J=c[2261]|0;I=J+p|0;c[2261]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}if(!(c[2373]|0)){c[2375]=4096;c[2374]=4096;c[2376]=-1;c[2377]=-1;c[2378]=0;c[2366]=0;a=o&-16^1431655768;c[o>>2]=a;c[2373]=a;a=4096}else a=c[2375]|0;i=p+48|0;j=p+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=p>>>0){J=0;l=K;return J|0}a=c[2365]|0;if(a|0?(x=c[2363]|0,y=x+k|0,y>>>0<=x>>>0|y>>>0>a>>>0):0){J=0;l=K;return J|0}d:do if(!(c[2366]&4)){d=c[2261]|0;e:do if(d){e=9468;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(w=e+4|0,(a+(c[w>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){C=163;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=sb(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[w>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;C=180;break d}}else{e=a;C=171}}else b=0}else C=163;while(0);do if((C|0)==163){d=sb(0)|0;if((d|0)!=(-1|0)?(b=d,u=c[2374]|0,v=u+-1|0,b=((v&b|0)==0?0:(v+b&0-u)-b|0)+k|0,u=c[2363]|0,v=b+u|0,b>>>0>p>>>0&b>>>0<2147483647):0){y=c[2365]|0;if(y|0?v>>>0<=u>>>0|v>>>0>y>>>0:0){b=0;break}a=sb(b|0)|0;if((a|0)==(d|0)){h=b;g=d;C=180;break d}else{e=a;C=171}}else b=0}while(0);do if((C|0)==171){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;C=180;break d}a=c[2375]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;C=180;break d}if((sb(a|0)|0)==(-1|0)){sb(d|0)|0;b=0;break}else{h=a+b|0;g=e;C=180;break d}}while(0);c[2366]=c[2366]|4;C=178}else{b=0;C=178}while(0);if(((C|0)==178?k>>>0<2147483647:0)?(B=sb(k|0)|0,y=sb(0)|0,z=y-B|0,A=z>>>0>(p+40|0)>>>0,!((B|0)==(-1|0)|A^1|B>>>0<y>>>0&((B|0)!=(-1|0)&(y|0)!=(-1|0))^1)):0){h=A?z:b;g=B;C=180}if((C|0)==180){b=(c[2363]|0)+h|0;c[2363]=b;if(b>>>0>(c[2364]|0)>>>0)c[2364]=b;k=c[2261]|0;do if(k){b=9468;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){C=190;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((C|0)==190?(c[b+12>>2]&8|0)==0:0)?k>>>0<g>>>0&k>>>0>=a>>>0:0){c[d>>2]=e+h;J=k+8|0;J=(J&7|0)==0?0:0-J&7;I=k+J|0;J=(c[2258]|0)+(h-J)|0;c[2261]=I;c[2258]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[2262]=c[2377];break}b=c[2259]|0;if(g>>>0<b>>>0){c[2259]=g;i=g}else i=b;d=g+h|0;b=9468;while(1){if((c[b>>2]|0)==(d|0)){C=198;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((C|0)==198?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;m=n+p|0;j=b-n-p|0;c[n+4>>2]=p|3;do if((b|0)!=(k|0)){if((b|0)==(c[2260]|0)){J=(c[2257]|0)+j|0;c[2257]=J;c[2260]=m;c[m+4>>2]=J|1;c[m+J>>2]=J;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;f:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){H=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0<i>>>0)$();else{c[d>>2]=0;H=a;break}}else{f=c[b+8>>2]|0;if(f>>>0<i>>>0)$();a=f+12|0;if((c[a>>2]|0)!=(b|0))$();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;H=e;break}else $()}while(0);if(!g)break;a=c[b+28>>2]|0;d=9324+(a<<2)|0;do if((b|0)!=(c[d>>2]|0))if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=H;if(!H)break f;else break}else $();else{c[d>>2]=H;if(H|0)break;c[2256]=c[2256]&~(1<<a);break f}while(0);e=c[2259]|0;if(H>>>0<e>>>0)$();c[H+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<e>>>0)$();else{c[H+16>>2]=d;c[d+24>>2]=H;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[2259]|0)>>>0)$();else{c[H+20>>2]=a;c[a+24>>2]=H;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=9060+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0<i>>>0)$();if((c[d+12>>2]|0)==(b|0))break;$()}while(0);if((e|0)==(d|0)){c[2255]=c[2255]&~(1<<f);break}do if((e|0)==(a|0))E=e+8|0;else{if(e>>>0<i>>>0)$();a=e+8|0;if((c[a>>2]|0)==(b|0)){E=a;break}$()}while(0);c[d+12>>2]=e;c[E>>2]=d}while(0);b=b+h|0;f=h+j|0}else f=j;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=9060+(b<<1<<2)|0;a=c[2255]|0;b=1<<b;do if(!(a&b)){c[2255]=a|b;I=d;J=d+8|0}else{b=d+8|0;a=c[b>>2]|0;if(a>>>0>=(c[2259]|0)>>>0){I=a;J=b;break}$()}while(0);c[J>>2]=m;c[I+12>>2]=m;c[m+8>>2]=I;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;b=(J+245760|0)>>>16&2;b=14-(H|I|b)+(J<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=9324+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[2256]|0;d=1<<b;if(!(a&d)){c[2256]=a|d;c[e>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){C=265;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=262;break}else{a=a<<1;e=b}}if((C|0)==262)if(d>>>0<(c[2259]|0)>>>0)$();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((C|0)==265){b=e+8|0;a=c[b>>2]|0;J=c[2259]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else $()}}else{J=(c[2258]|0)+j|0;c[2258]=J;c[2261]=m;c[m+4>>2]=J|1}while(0);J=n+8|0;l=K;return J|0}b=9468;while(1){a=c[b>>2]|0;if(a>>>0<=k>>>0?(D=a+(c[b+4>>2]|0)|0,D>>>0>k>>>0):0)break;b=c[b+8>>2]|0}f=D+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=k+16|0;a=a>>>0<f>>>0?k:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;J=g+d|0;d=h+-40-d|0;c[2261]=J;c[2258]=d;c[J+4>>2]=d|1;c[J+d+4>>2]=40;c[2262]=c[2377];d=a+4|0;c[d>>2]=27;c[b>>2]=c[2367];c[b+4>>2]=c[2368];c[b+8>>2]=c[2369];c[b+12>>2]=c[2370];c[2367]=g;c[2368]=h;c[2370]=0;c[2369]=b;b=a+24|0;do{J=b;b=b+4|0;c[b>>2]=7}while((J+8|0)>>>0<D>>>0);if((a|0)!=(k|0)){g=a-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=9060+(b<<1<<2)|0;a=c[2255]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[2259]|0)>>>0)$();else{F=a;G=b}}else{c[2255]=a|b;F=d;G=d+8|0}c[G>>2]=k;c[F+12>>2]=k;c[k+8>>2]=F;c[k+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;d=(J+245760|0)>>>16&2;d=14-(H|I|d)+(J<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=9324+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;b=c[2256]|0;a=1<<d;if(!(b&a)){c[2256]=b|a;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){C=292;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=289;break}else{a=a<<1;e=b}}if((C|0)==289)if(d>>>0<(c[2259]|0)>>>0)$();else{c[d>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((C|0)==292){b=e+8|0;a=c[b>>2]|0;J=c[2259]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=k;c[b>>2]=k;c[k+8>>2]=a;c[k+12>>2]=e;c[k+24>>2]=0;break}else $()}}}else{J=c[2259]|0;if((J|0)==0|g>>>0<J>>>0)c[2259]=g;c[2367]=g;c[2368]=h;c[2370]=0;c[2264]=c[2373];c[2263]=-1;b=0;do{J=9060+(b<<1<<2)|0;c[J+12>>2]=J;c[J+8>>2]=J;b=b+1|0}while((b|0)!=32);J=g+8|0;J=(J&7|0)==0?0:0-J&7;I=g+J|0;J=h+-40-J|0;c[2261]=I;c[2258]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[2262]=c[2377]}while(0);b=c[2258]|0;if(b>>>0>p>>>0){H=b-p|0;c[2258]=H;J=c[2261]|0;I=J+p|0;c[2261]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}}c[(Wa()|0)>>2]=12;J=0;l=K;return J|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!a)return;d=a+-8|0;h=c[2259]|0;if(d>>>0<h>>>0)$();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)$();e=a&-8;o=d+e|0;a:do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)$();if((k|0)==(c[2260]|0)){a=o+4|0;b=c[a>>2]|0;if((b&3|0)!=3){r=k;f=j;m=k;break}c[2257]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=9060+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)$();if((c[b+12>>2]|0)!=(k|0))$()}if((d|0)==(b|0)){c[2255]=c[2255]&~(1<<e);r=k;f=j;m=k;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)$();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else $()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;r=k;f=j;m=k;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)$();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)$();a=e+12|0;if((c[a>>2]|0)!=(k|0))$();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else $()}while(0);if(g){a=c[k+28>>2]|0;b=9324+(a<<2)|0;do if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[2256]=c[2256]&~(1<<a);r=k;f=j;m=k;break a}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(k|0)&1)<<2)>>2]=i;if(!i){r=k;f=j;m=k;break a}else break}else $();while(0);d=c[2259]|0;if(i>>>0<d>>>0)$();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)$();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[2259]|0)>>>0)$();else{c[i+20>>2]=a;c[a+24>>2]=i;r=k;f=j;m=k;break}else{r=k;f=j;m=k}}else{r=k;f=j;m=k}}else{r=d;f=e;m=d}while(0);if(m>>>0>=o>>>0)$();a=o+4|0;b=c[a>>2]|0;if(!(b&1))$();if(!(b&2)){a=c[2260]|0;if((o|0)==(c[2261]|0)){q=(c[2258]|0)+f|0;c[2258]=q;c[2261]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[2260]=0;c[2257]=0;return}if((o|0)==(a|0)){q=(c[2257]|0)+f|0;c[2257]=q;c[2260]=m;c[r+4>>2]=q|1;c[m+q>>2]=q;return}f=(b&-8)+f|0;e=b>>>3;b:do if(b>>>0>=256){g=c[o+24>>2]|0;a=c[o+12>>2]|0;do if((a|0)==(o|0)){d=o+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){n=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[2259]|0)>>>0)$();else{c[b>>2]=0;n=a;break}}else{b=c[o+8>>2]|0;if(b>>>0<(c[2259]|0)>>>0)$();d=b+12|0;if((c[d>>2]|0)!=(o|0))$();e=a+8|0;if((c[e>>2]|0)==(o|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else $()}while(0);if(g|0){a=c[o+28>>2]|0;b=9324+(a<<2)|0;do if((o|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[2256]=c[2256]&~(1<<a);break b}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else $();while(0);d=c[2259]|0;if(n>>>0<d>>>0)$();c[n+24>>2]=g;a=o+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)$();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[2259]|0)>>>0)$();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[o+8>>2]|0;d=c[o+12>>2]|0;a=9060+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[2259]|0)>>>0)$();if((c[b+12>>2]|0)!=(o|0))$()}if((d|0)==(b|0)){c[2255]=c[2255]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[2259]|0)>>>0)$();a=d+8|0;if((c[a>>2]|0)==(o|0))l=a;else $()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[r+4>>2]=f|1;c[m+f>>2]=f;if((r|0)==(c[2260]|0)){c[2257]=f;return}}else{c[a>>2]=b&-2;c[r+4>>2]=f|1;c[m+f>>2]=f}a=f>>>3;if(f>>>0<256){d=9060+(a<<1<<2)|0;b=c[2255]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[2259]|0)>>>0)$();else{p=b;q=a}}else{c[2255]=b|a;p=d;q=d+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=9324+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;b=c[2256]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=124;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=121;break}else{b=b<<1;e=a}}if((a|0)==121)if(d>>>0<(c[2259]|0)>>>0)$();else{c[d>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;break}else if((a|0)==124){a=e+8|0;b=c[a>>2]|0;q=c[2259]|0;if(b>>>0>=q>>>0&e>>>0>=q>>>0){c[b+12>>2]=r;c[a>>2]=r;c[r+8>>2]=b;c[r+12>>2]=e;c[r+24>>2]=0;break}else $()}}else{c[2256]=b|d;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r}while(0);r=(c[2263]|0)+-1|0;c[2263]=r;if(!r)a=9476;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[2263]=-1;return}function ib(a,b){a=a|0;b=b|0;var d=0;if(a){d=N(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=gb(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;ob(a|0,0,d|0)|0;return a|0}function jb(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=gb(b)|0;return b|0}if(b>>>0>4294967231){c[(Wa()|0)>>2]=12;b=0;return b|0}d=kb(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=gb(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;tb(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;hb(a);b=d;return b|0}function kb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=a+4|0;n=c[o>>2]|0;d=n&-8;k=a+d|0;i=c[2259]|0;e=n&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))$();f=c[k+4>>2]|0;if(!(f&1))$();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[2375]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[o>>2]=n&1|b|2;c[m+4>>2]=d|3;o=m+d+4|0;c[o>>2]=c[o>>2]|1;lb(m,d);return a|0}if((k|0)==(c[2261]|0)){m=(c[2258]|0)+d|0;d=m-b|0;e=a+b|0;if(m>>>0<=b>>>0){a=0;return a|0}c[o>>2]=n&1|b|2;c[e+4>>2]=d|1;c[2261]=e;c[2258]=d;return a|0}if((k|0)==(c[2260]|0)){f=(c[2257]|0)+d|0;if(f>>>0<b>>>0){a=0;return a|0}d=f-b|0;e=n&1;if(d>>>0>15){n=a+b|0;m=n+d|0;c[o>>2]=e|b|2;c[n+4>>2]=d|1;c[m>>2]=d;e=m+4|0;c[e>>2]=c[e>>2]&-2;e=n}else{c[o>>2]=e|f|2;e=a+f+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[2257]=d;c[2260]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;a:do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){f=k+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){j=0;break}else e=f}while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)$();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)$();d=g+12|0;if((c[d>>2]|0)!=(k|0))$();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else $()}while(0);if(h|0){d=c[k+28>>2]|0;e=9324+(d<<2)|0;do if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[2256]=c[2256]&~(1<<d);break a}}else if(h>>>0>=(c[2259]|0)>>>0){c[h+16+(((c[h+16>>2]|0)!=(k|0)&1)<<2)>>2]=j;if(!j)break a;else break}else $();while(0);f=c[2259]|0;if(j>>>0<f>>>0)$();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0<f>>>0)$();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[2259]|0)>>>0)$();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=9060+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)$();if((c[e+12>>2]|0)!=(k|0))$()}if((f|0)==(e|0)){c[2255]=c[2255]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)$();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else $()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);d=n&1;if(m>>>0<16){c[o>>2]=l|d|2;o=a+l+4|0;c[o>>2]=c[o>>2]|1;return a|0}else{n=a+b|0;c[o>>2]=d|b|2;c[n+4>>2]=m|3;o=n+m+4|0;c[o>>2]=c[o>>2]|1;lb(n,m);return a|0}return 0}function lb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;a:do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[2259]|0;if(l>>>0<i>>>0)$();if((l|0)==(c[2260]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[2257]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){d=c[l+8>>2]|0;b=c[l+12>>2]|0;a=9060+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<i>>>0)$();if((c[d+12>>2]|0)!=(l|0))$()}if((b|0)==(d|0)){c[2255]=c[2255]&~(1<<e);r=l;f=k;break}if((b|0)!=(a|0)){if(b>>>0<i>>>0)$();a=b+8|0;if((c[a>>2]|0)==(l|0))h=a;else $()}else h=b+8|0;c[d+12>>2]=b;c[h>>2]=d;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){j=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<i>>>0)$();else{c[d>>2]=0;j=a;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)$();a=e+12|0;if((c[a>>2]|0)!=(l|0))$();d=b+8|0;if((c[d>>2]|0)==(l|0)){c[a>>2]=b;c[d>>2]=e;j=b;break}else $()}while(0);if(g){a=c[l+28>>2]|0;d=9324+(a<<2)|0;do if((l|0)==(c[d>>2]|0)){c[d>>2]=j;if(!j){c[2256]=c[2256]&~(1<<a);r=l;f=k;break a}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(l|0)&1)<<2)>>2]=j;if(!j){r=l;f=k;break a}else break}else $();while(0);b=c[2259]|0;if(j>>>0<b>>>0)$();c[j+24>>2]=g;a=l+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)$();else{c[j+16>>2]=d;c[d+24>>2]=j;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[2259]|0)>>>0)$();else{c[j+20>>2]=a;c[a+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[2259]|0;if(o>>>0<h>>>0)$();a=o+4|0;d=c[a>>2]|0;if(!(d&2)){a=c[2260]|0;if((o|0)==(c[2261]|0)){q=(c[2258]|0)+f|0;c[2258]=q;c[2261]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[2260]=0;c[2257]=0;return}if((o|0)==(a|0)){q=(c[2257]|0)+f|0;c[2257]=q;c[2260]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(d&-8)+f|0;e=d>>>3;b:do if(d>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<h>>>0)$();else{c[d>>2]=0;n=a;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)$();a=e+12|0;if((c[a>>2]|0)!=(o|0))$();d=b+8|0;if((c[d>>2]|0)==(o|0)){c[a>>2]=b;c[d>>2]=e;n=b;break}else $()}while(0);if(g|0){a=c[o+28>>2]|0;d=9324+(a<<2)|0;do if((o|0)==(c[d>>2]|0)){c[d>>2]=n;if(!n){c[2256]=c[2256]&~(1<<a);break b}}else if(g>>>0>=(c[2259]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else $();while(0);b=c[2259]|0;if(n>>>0<b>>>0)$();c[n+24>>2]=g;a=o+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)$();else{c[n+16>>2]=d;c[d+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[2259]|0)>>>0)$();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{d=c[o+8>>2]|0;b=c[o+12>>2]|0;a=9060+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<h>>>0)$();if((c[d+12>>2]|0)!=(o|0))$()}if((b|0)==(d|0)){c[2255]=c[2255]&~(1<<e);break}if((b|0)!=(a|0)){if(b>>>0<h>>>0)$();a=b+8|0;if((c[a>>2]|0)==(o|0))m=a;else $()}else m=b+8|0;c[d+12>>2]=b;c[m>>2]=d}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[2260]|0)){c[2257]=f;return}}else{c[a>>2]=d&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}a=f>>>3;if(f>>>0<256){b=9060+(a<<1<<2)|0;d=c[2255]|0;a=1<<a;if(d&a){a=b+8|0;d=c[a>>2]|0;if(d>>>0<(c[2259]|0)>>>0)$();else{p=d;q=a}}else{c[2255]=d|a;p=b;q=b+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=b;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=9324+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;d=c[2256]|0;b=1<<a;if(!(d&b)){c[2256]=d|b;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}d=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=121;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=118;break}else{d=d<<1;e=a}}if((a|0)==118){if(b>>>0<(c[2259]|0)>>>0)$();c[b>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((a|0)==121){a=e+8|0;d=c[a>>2]|0;q=c[2259]|0;if(!(d>>>0>=q>>>0&e>>>0>=q>>>0))$();c[d+12>>2]=r;c[a>>2]=r;c[r+8>>2]=d;c[r+12>>2]=e;c[r+24>>2]=0;return}}function mb(){}function nb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (y=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function ob(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function pb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}y=0;return b>>>c-32|0}function qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=N(e,f)|0;d=a>>>16;a=(c>>>16)+(N(e,d)|0)|0;e=b>>>16;b=N(e,f)|0;return (y=(a>>>16)+(N(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function rb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=qb(e,f)|0;a=y;return (y=(N(b,f)|0)+(N(d,e)|0)+a|a&0,c|0|0)|0}function sb(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){V()|0;aa(12);return -1}c[i>>2]=a;if((a|0)>(U()|0)?(T()|0)==0:0){c[i>>2]=b;aa(12);return -1}return b|0}function tb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return da(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function ub(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function vb(a,b){a=a|0;b=b|0;return ia[a&1](b|0)|0}function wb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ja[a&3](b|0,c|0,d|0)|0}function xb(a){a=a|0;R(0);return 0}function yb(a,b,c){a=a|0;b=b|0;c=c|0;R(1);return 0}
--
--// EMSCRIPTEN_END_FUNCS
--var ia=[xb,Sa];var ja=[yb,_a,Ua,Ta];return{_llvm_bswap_i32:ub,_shine_check_config:Ha,_shine_flush:La,setThrew:oa,_bitshift64Lshr:pb,_shine_samples_per_pass:Ia,_fflush:eb,_shine_js_init:Qa,_memset:ob,_sbrk:sb,_memcpy:tb,___errno_location:Wa,_shine_encode_buffer:Ka,_shine_close:Ma,stackAlloc:ka,getTempRet0:qa,___muldi3:rb,setTempRet0:pa,_i64Add:nb,_emscripten_get_global_libc:Ra,stackSave:la,___muldsi3:qb,_free:hb,runPostSets:mb,establishStackSpace:na,stackRestore:ma,_malloc:gb,stackAlloc:ka,stackSave:la,stackRestore:ma,establishStackSpace:na,setThrew:oa,setTempRet0:pa,getTempRet0:qa,dynCall_ii:vb,dynCall_iiii:wb}})
--
--
--// EMSCRIPTEN_END_ASM
--(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _shine_check_config=Module["_shine_check_config"]=asm["_shine_check_config"];var _shine_flush=Module["_shine_flush"]=asm["_shine_flush"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _shine_samples_per_pass=Module["_shine_samples_per_pass"]=asm["_shine_samples_per_pass"];var _fflush=Module["_fflush"]=asm["_fflush"];var _shine_js_init=Module["_shine_js_init"]=asm["_shine_js_init"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _shine_encode_buffer=Module["_shine_encode_buffer"]=asm["_shine_encode_buffer"];var _shine_close=Module["_shine_close"]=asm["_shine_close"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var stackSave=Module["stackSave"]=asm["stackSave"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}Module.printErr("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();var isNode=typeof process==="object"&&typeof require==="function";var int16Len=Module.HEAP16.BYTES_PER_ELEMENT;var ptrLen=Module.HEAP32.BYTES_PER_ELEMENT;function Shine(args){if(_shine_check_config(args.samplerate,args.bitrate)<0)throw"Invalid configuration";var mode;if(!args.mode){if(args.channels===1){mode=Shine.MONO}else{mode=Shine.JOINT_STEREO}}else{mode=args.mode}this._handle=_shine_js_init(args.channels,args.samplerate,mode,args.bitrate);this._channels=args.channels;this._samples_per_pass=_shine_samples_per_pass(this._handle);this._buffer=_malloc(this._channels*ptrLen);this._pcm=new Array(this._channels);this._rem=new Array(this._channels);this._written=_malloc(int16Len);var _tmp,chan;for(chan=0;chan<this._channels;chan++){this._rem[chan]=new Int16Array;_tmp=_malloc(this._samples_per_pass*int16Len);setValue(this._buffer+chan*ptrLen,_tmp,"*");this._pcm[chan]=Module.HEAP16.subarray(_tmp/int16Len,_tmp/int16Len+this._samples_per_pass)}return this}Shine.STEREO=0;Shine.JOINT_STEREO=1;Shine.DUAL_CHANNEL=2;Shine.MONO=3;Shine.prototype._encodePass=(function(data){if(!this._handle)throw"Closed";var chan;for(chan=0;chan<this._channels;chan++)this._pcm[chan].set(data[chan]);var _buf=_shine_encode_buffer(this._handle,this._buffer,this._written);var written=getValue(this._written,"i16");return Module.HEAPU8.subarray(_buf,_buf+written)});function concat(ctr,a,b){if(typeof b==="undefined"){return a}var ret=new ctr(a.length+b.length);ret.set(a);ret.subarray(a.length).set(b);return ret}function clip(x){return x>1?1:x<-1?-1:x}function convertFloat32(buf){var ret=new Array(buf.length);var samples=buf[0].length;var chan,i;for(chan=0;chan<buf.length;chan++){ret[chan]=new Int16Array(samples);for(i=0;i<samples;i++){ret[chan][i]=parseInt(clip(buf[chan][i])*32767)}}return ret}Shine.prototype.encode=(function(data){if(data.length!=this._channels)throw"Invalid data";var encoded=new Uint8Array;var tmp=new Array(this._channels);if(data[0]instanceof Float32Array){data=convertFloat32(data)}var chan;for(chan=0;chan<this._channels;chan++){tmp[chan]=new Float32Array;this._rem[chan]=concat(Int16Array,this._rem[chan],data[chan])}var i,enc;for(i=0;i<this._rem[0].length;i+=this._samples_per_pass){for(chan=0;chan<this._channels;chan++){tmp[chan]=this._rem[chan].subarray(i,i+this._samples_per_pass)}if(tmp[0].length<this._samples_per_pass){break}else{enc=this._encodePass(tmp);if(enc.length>0){encoded=concat(Uint8Array,encoded,enc)}}}if(tmp[0].length<this._samples_per_pass){this._rem=tmp}else{for(chan=0;chan<this._channels;chan++){this._rem[chan]=new Int16Array}}return encoded});Shine.prototype.close=(function(){if(!this._handle){throw"Closed"}var _buf=_shine_flush(this._handle,this._written);var written=getValue(this._written,"i16");var encoded=new Uint8Array(written);encoded.set(Module.HEAPU8.subarray(_buf,_buf+written));_free(this._written);_shine_close(this._handle);this._handle=null;var chan;for(chan=0;chan<this._channels;chan++){_free(getValue(this._buffer+chan*ptrLen,"*"))}_free(this._buffer);return encoded});if(isNode){module.exports=Shine}return Shine}).call(context)})()
--
--
--
--
-diff --git a/js/dist/libshine_browser.js b/js/dist/libshine_browser.js
-new file mode 100644
-index 0000000..5e8cd74
---- /dev/null
-+++ b/js/dist/libshine_browser.js
-@@ -0,0 +1,183 @@
-+// libshine function wrappers
-+
-+var StereoMode = {
-+ '0': 'STEREO',
-+ '1': 'JOINT_STEREO',
-+ '2': 'DUAL_CHANNEL',
-+ '3': 'MONO',
-+ STEREO: 0,
-+ JOINT_STEREO: 1,
-+ DUAL_CHANNEL: 2,
-+ MONO: 3
-+};
-+
-+var ShineModule;
-+var int16Len;
-+var ptrLen;
-+
-+function shineInit() {
-+ int16Len = ShineModule._shine_js_int16_len();
-+ ptrLen = ShineModule._shine_js_ptr_len();
-+};
-+
-+function Shine(args) {
-+ if (ShineModule._shine_check_config(args.samplerate, args.bitrate) < 0)
-+ throw "Invalid configuration";
-+
-+ var stereoMode;
-+ if (!args.stereoMode) {
-+ if (args.channels === 1) {
-+ stereoMode = Shine.MONO;
-+ } else {
-+ stereoMode = Shine.JOINT_STEREO;
-+ }
-+ } else {
-+ stereoMode = args.stereoMode;
-+ }
-+
-+ this._handle = ShineModule._shine_js_init(args.channels, args.samplerate, stereoMode, args.bitrate);
-+
-+ this._channels = args.channels;
-+ this._samples_per_pass = ShineModule._shine_samples_per_pass(this._handle);
-+
-+ this._buffer = ShineModule._malloc(this._channels * ptrLen);
-+ this._pcm = new Array(this._channels);
-+ this._rem = new Array(this._channels);
-+ this._written = ShineModule._malloc(int16Len);
-+
-+ var _tmp, chan;
-+ for (chan=0; chan<this._channels; chan++) {
-+ this._rem[chan] = new Int16Array;
-+ _tmp = ShineModule._malloc(this._samples_per_pass * int16Len);
-+ ShineModule.setValue(this._buffer + chan*ptrLen, _tmp, "*")
-+ this._pcm[chan] = ShineModule.HEAP16.subarray(_tmp/int16Len, _tmp/int16Len+this._samples_per_pass)
-+ }
-+
-+ return this;
-+};
-+
-+Shine.checkConfig = function (samplerate, bitrate) {
-+ return ShineModule._shine_check_config(samplerate, bitrate) >= 0;
-+};
-+
-+Shine.prototype._encodePass = function (data) {
-+ if (!this._handle)
-+ throw "Closed";
-+
-+ var chan;
-+ for (chan=0;chan<this._channels;chan++)
-+ this._pcm[chan].set(data[chan]);
-+
-+ var _buf = ShineModule._shine_encode_buffer(this._handle, this._buffer, this._written);
-+
-+ var written = ShineModule.getValue(this._written, "i16");
-+
-+ return ShineModule.HEAPU8.subarray(_buf, _buf+written);
-+};
-+
-+function concat(ctr, a, b) {
-+ if (typeof b === "undefined") {
-+ return a;
-+ }
-+ var ret = new ctr(a.length+b.length);
-+ ret.set(a);
-+ ret.subarray(a.length).set(b);
-+ return ret;
-+}
-+
-+function clip(x) {
-+ return (x > 1 ? 1 : (x < -1 ? -1 : x));
-+}
-+
-+function convertFloat32(buf) {
-+ var ret = new Array(buf.length);
-+ var samples = buf[0].length;
-+ var chan, i;
-+
-+ for (chan=0;chan<buf.length;chan++) {
-+ ret[chan] = new Int16Array(samples);
-+ for (i=0;i<samples;i++) {
-+ ret[chan][i] = parseInt(clip(buf[chan][i]) * 32767);
-+ }
-+ }
-+ return ret;
-+}
-+
-+Shine.prototype.encode = function (data) {
-+ if (data.length != this._channels)
-+ throw "Invalid data";
-+
-+ var encoded = new Uint8Array;
-+ var tmp = new Array(this._channels);
-+
-+ if (data[0] instanceof Float32Array) {
-+ data = convertFloat32(data);
-+ }
-+
-+ var chan;
-+ for (chan=0;chan<this._channels; chan++) {
-+ tmp[chan] = new Float32Array;
-+ this._rem[chan] = concat(Int16Array, this._rem[chan], data[chan]);
-+ }
-+
-+ var i, enc;
-+ for (i=0;i<this._rem[0].length;i+=this._samples_per_pass) {
-+ for (chan=0; chan<this._channels; chan++) {
-+ tmp[chan] = this._rem[chan].subarray(i, i+this._samples_per_pass);
-+ }
-+
-+ if (tmp[0].length < this._samples_per_pass) {
-+ break;
-+ } else {
-+ enc = this._encodePass(tmp);
-+ if (enc.length > 0) {
-+ encoded = concat(Uint8Array, encoded, enc);
-+ }
-+ }
-+ }
-+
-+ if (tmp[0].length < this._samples_per_pass) {
-+ this._rem = tmp;
-+ } else {
-+ for (chan=0; chan<this._channels; chan++) {
-+ this._rem[chan] = new Int16Array;
-+ }
-+ }
-+
-+ return encoded;
-+};
-+
-+Shine.prototype.close = function () {
-+ if (!this._handle) {
-+ throw "Closed";
-+ }
-+
-+ var _buf = ShineModule._shine_flush(this._handle, this._written);
-+
-+ var written = ShineModule.getValue(this._written, "i16");
-+ var encoded = new Uint8Array(written);
-+
-+ encoded.set(ShineModule.HEAPU8.subarray(_buf, _buf + written));
-+
-+ ShineModule._free(this._written);
-+ ShineModule._shine_close(this._handle);
-+ this._handle = null;
-+
-+ var chan;
-+ for (chan=0; chan<this._channels; chan++) {
-+ ShineModule._free(ShineModule.getValue(this._buffer + chan*ptrLen, "*"));
-+ }
-+ ShineModule._free(this._buffer);
-+
-+ return encoded;
-+};
-+var createModule = require("./libshine_browser_stubs").default;
-+
-+Shine.initialized = (createModule()).then(function (Module) {
-+ ShineModule = Module;
-+ shineInit();
-+});
-+
-+module.exports.Shine = Shine;
-+
-+module.exports.StereoMode = StereoMode;
-diff --git a/js/dist/libshine_browser_stubs.js b/js/dist/libshine_browser_stubs.js
-new file mode 100644
-index 0000000..23863a3
---- /dev/null
-+++ b/js/dist/libshine_browser_stubs.js
-@@ -0,0 +1,16 @@
-+
-+var createModule = (() => {
-+ var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
-+
-+ return (
-+function(createModule) {
-+ createModule = createModule || {};
-+
-+var Module=typeof createModule!="undefined"?createModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,AGFzbQEAAAABVg9gAX8Bf2ADf39/AGACf38Bf2AEf39/fwF/YAN/f38Bf2ACf38AYAF/AGABfAF8YAABf2ADfHx/AXxgAnx8AXxgAnx/AXxgAABgBH9/f38AYAJ8fwF/Ag0CAWEBYQAAAWEBYgABAxsaAQMBAAQFAAkKBgsCBwwNBQcOAgQAAgMICAYEBQFwAQEBBQYBAYACgAIGCAF/AUHglwULBzUNAWMCAAFkAA8BZQAIAWYACwFnABcBaAAWAWkAFQFqABQBawAbAWwAGgFtABkBbgAYAW8BAArC+gEahQoBDX8gAiAAKAIQIgRJBEAgACAEIAJrIgI2AhAgACAAKAIMIAEgAnRyNgIMDwsgACgCACEKIAAoAgQiBSAAKAIIIgNBBGpNBEAgAAJ/IAVBAm0gBWohCyAKRQRAIAsQCAwBCyALQUBPBEBB5JMBQTA2AgBBAAwBCwJ/QRAgC0ELakF4cSALQQtJGyEHQQAhAyAKQQhrIgUoAgQiDEF4cSEGAkAgDEEDcUUEQEEAIAdBgAJJDQIaIAdBBGogBk0EQCAFIQMgBiAHa0HIlwEoAgBBAXRNDQILQQAMAgsgBSAGaiEIAkAgBiAHTwRAIAYgB2siBEEQSQ0BIAUgDEEBcSAHckECcjYCBCAFIAdqIgMgBEEDcjYCBCAIIAgoAgRBAXI2AgQgAyAEEBEMAQtBgJQBKAIAIAhGBEBB9JMBKAIAIAZqIgYgB00NAiAFIAxBAXEgB3JBAnI2AgQgBSAHaiIEIAYgB2siA0EBcjYCBEH0kwEgAzYCAEGAlAEgBDYCAAwBC0H8kwEoAgAgCEYEQEHwkwEoAgAgBmoiBCAHSQ0CAkAgBCAHayIDQRBPBEAgBSAMQQFxIAdyQQJyNgIEIAUgB2oiBiADQQFyNgIEIAQgBWoiBCADNgIAIAQgBCgCBEF+cTYCBAwBCyAFIAxBAXEgBHJBAnI2AgQgBCAFaiIDIAMoAgRBAXI2AgRBACEDQQAhBgtB/JMBIAY2AgBB8JMBIAM2AgAMAQsgCCgCBCIEQQJxDQEgBEF4cSAGaiINIAdJDQEgDSAHayEPAkAgBEH/AU0EQCAIKAIIIgYgBEEDdiIDQQN0QZCUAWpGGiAGIAgoAgwiBEYEQEHokwFB6JMBKAIAQX4gA3dxNgIADAILIAYgBDYCDCAEIAY2AggMAQsgCCgCGCEOAkAgCCAIKAIMIglHBEAgCCgCCCIDQfiTASgCAEkaIAMgCTYCDCAJIAM2AggMAQsCQCAIQRRqIgYoAgAiAw0AIAhBEGoiBigCACIDDQBBACEJDAELA0AgBiEEIAMiCUEUaiIGKAIAIgMNACAJQRBqIQYgCSgCECIDDQALIARBADYCAAsgDkUNAAJAIAgoAhwiBEECdEGYlgFqIgMoAgAgCEYEQCADIAk2AgAgCQ0BQeyTAUHskwEoAgBBfiAEd3E2AgAMAgsgDkEQQRQgDigCECAIRhtqIAk2AgAgCUUNAQsgCSAONgIYIAgoAhAiAwRAIAkgAzYCECADIAk2AhgLIAgoAhQiA0UNACAJIAM2AhQgAyAJNgIYCyAPQQ9NBEAgBSAMQQFxIA1yQQJyNgIEIAUgDWoiAyADKAIEQQFyNgIEDAELIAUgDEEBcSAHckECcjYCBCAFIAdqIgQgD0EDcjYCBCAFIA1qIgMgAygCBEEBcjYCBCAEIA8QEQsgBSEDCyADCyIDBEAgA0EIagwBC0EAIAsQCCIFRQ0AGiAFIApBfEF4IApBBGsoAgAiA0EDcRsgA0F4cWoiAyALIAMgC0kbEAQgChALIAULIgo2AgAgACAAKAIEIgNBAm0gA2o2AgQgACgCECEEIAAoAgghAwsgAyAKaiAAKAIMIAEgAiAEayIDdnIiBUEYdCAFQYD+A3FBCHRyIAVBCHZBgP4DcSAFQRh2cnI2AgAgAEEgIANrIgM2AhAgACAAKAIIQQRqNgIIIAIgBEcEQCAAIAEgA3Q2AgwPCyAAQQA2AgwLgQIBBn8CQCADRQ0AIANBGGxB0ClqIgUoAgQhByADQQ9NBEAgASACTw0BIANBGGxB0ClqKAIUIQMDQCAEIAAgAUECdGoiBSgCACIGQQBHaiAFKAIEIgRBAEdqIAMgBiAHbCAEamotAABqIQQgAUECaiIBIAJJDQALDAELIAEgAk8NACAFKAIIIQUgA0EYbEHQKWooAhQhAwNAIAQgBUEAIAAgAUECdGoiBCgCACIGQQ5KIggbaiAFQQAgBCgCBCIEQQ5KIgkbaiADQQ8gBCAJGyIEQQ8gBiAIGyIGIAdsamotAABqIAZBAEdqIARBAEdqIQQgAUECaiIBIAJJDQALCyAEC/wDAQJ/IAJBgARPBEAgACABIAIQAQ8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiAEHAAEkNACACIABBQGoiBEsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIARNDQALCyAAIAJNDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAASQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLC1IBAn9B4JMBKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQAEUNAQtB4JMBIAA2AgAgAQ8LQeSTAUEwNgIAQX8L0gsBCH8CQCABIAJJBH8gAiABayIFQQNxIQYgASEEIAFBf3MgAmpBA08EQCAFQXxxIQkDQCADIAAgBEECdGoiBSgCACIKIAMgCkobIgMgBSgCBCIKIAMgCkobIgMgBSgCCCIKIAMgCkobIgMgBSgCDCIFIAMgBUobIQMgBEEEaiEEIAhBBGoiCCAJRw0ACwsgBgRAA0AgAyAAIARBAnRqKAIAIgUgAyAFShshAyAEQQFqIQQgB0EBaiIHIAZHDQALCyADRQRAQQAPCyADQQ5MBEAgA0GILCgCAE8EQEEMIQQCQAJAAkACQAJAQfArKAIAIANLDQBBCyEEQdgrKAIAIANLDQBBwCsoAgAgA0sNBEEJIQRBqCsoAgAgA0sNAEEIIQRBkCsoAgAgA0sNAEH4KigCACADSw0DQQYhBEHgKigCACADSw0AQcgqKAIAIANLDQJBBCEEQbAqKAIAIANLDQBBAyEEQZgqKAIAIANLDQBBgCooAgAgA0sNAUEBIQRB6CkoAgAgA0sNAEEAIQRB0CkoAgAgA00NCAsgACABIAIgBBADGiAEDwtBrCooAgAhBEGcKigCACEFIAAgASACQQIQAyEGQQAhAwNAIAMgACABQQJ0aiIHKAIAIghBAEdqIAcoAgQiA0EAR2ogBCAFIAhsIANqai0AAGohAyABQQJqIgEgAkkNAAtBAkEDIAMgBkobDwtB9CooAgAhBEHkKigCACEFIAAgASACQQUQAyEGQQAhAwNAIAMgACABQQJ0aiIHKAIAIghBAEdqIAcoAgQiA0EAR2ogBCAFIAhsIANqai0AAGohAyABQQJqIgEgAkkNAAtBBUEGIAMgBkobDwtBpCsoAgAhBkGUKygCACEHIAAgASACQQcQAyEFQQAhBCABIQMDQCAEIAAgA0ECdGoiCCgCACIJQQBHaiAIKAIEIgRBAEdqIAYgByAJbCAEamotAABqIQQgA0ECaiIDIAJJDQALIAQgBSAEIAVIGyEGQQdBCCAEIAVKGyEEQbwrKAIAIQVBrCsoAgAhB0EAIQMDQCADIAAgAUECdGoiCCgCACIJQQBHaiAIKAIEIgNBAEdqIAUgByAJbCADamotAABqIQMgAUECaiIBIAJJDQALQQkgBCADIAZMGw8LQewrKAIAIQZB3CsoAgAhByAAIAEgAkEKEAMhBUEAIQQgASEDA0AgBCAAIANBAnRqIggoAgAiCUEAR2ogCCgCBCIEQQBHaiAGIAcgCWwgBGpqLQAAaiEEIANBAmoiAyACSQ0ACyAEIAUgBCAFSBshBkEKQQsgBCAFShshBEGELCgCACEFQfQrKAIAIQdBACEDA0AgAyAAIAFBAnRqIggoAgAiCUEAR2ogCCgCBCIDQQBHaiAFIAcgCWwgA2pqLQAAaiEDIAFBAmoiASACSQ0AC0EMIAQgAyAGTBsPC0HMLCgCACEEQbwsKAIAIQUgACABIAJBDRADIQZBACEDA0AgAyAAIAFBAnRqIgcoAgAiCEEAR2ogBygCBCIDQQBHaiAEIAUgCGwgA2pqLQAAaiEDIAFBAmoiASACSQ0AC0ENQQ8gAyAGShsPCwJ/QQ8gA0EPayIFQcQsKAIATQ0AGkEQQdwsKAIAIAVPDQAaQRFB9CwoAgAgBU8NABpBEkGMLSgCACAFTw0AGkETQaQtKAIAIAVPDQAaQRRBvC0oAgAgBU8NABpBFUHULSgCACAFTw0AGkEWQewtKAIAIAVPDQAaQRdBAEGELigCACAFTxsLIQQCf0EYQZwuKAIAIAVPDQAaQRlBtC4oAgAgBU8NABpBGkHMLigCACAFTw0AGkEbQeQuKAIAIAVPDQAaQRxB/C4oAgAgBU8NABpBHUGULygCACAFTw0AGkEeQawvKAIAIAVPDQAaQR9BAEHELygCACAFTxsLIQMgACABIAIgBBADIQUgAyAEIAAgASACIAMQAyAFSBsFQQALDwsgACABIAJBABADGkEAC9YCAQF/AkAgAUUNACAAQQA6AAAgACABaiICQQFrQQA6AAAgAUEDSQ0AIABBADoAAiAAQQA6AAEgAkEDa0EAOgAAIAJBAmtBADoAACABQQdJDQAgAEEAOgADIAJBBGtBADoAACABQQlJDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmoiAUEEa0EANgIAIAJBCUkNACAAQQA2AgggAEEANgIEIAFBCGtBADYCACABQQxrQQA2AgAgAkEZSQ0AIABBADYCGCAAQQA2AhQgAEEANgIQIABBADYCDCABQRBrQQA2AgAgAUEUa0EANgIAIAFBGGtBADYCACABQRxrQQA2AgAgAiAAQQRxQRhyIgJrIgFBIEkNACAAIAJqIQADQCAAQgA3AxggAEIANwMQIABCADcDCCAAQgA3AwAgAEEgaiEAIAFBIGsiAUEfSw0ACwsLtykBC38jAEEQayILJAACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHokwEoAgAiBkEQIABBC2pBeHEgAEELSRsiBUEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUGQlAFqIgAgAUGYlAFqKAIAIgEoAggiBEYEQEHokwEgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMCgsgBUHwkwEoAgAiB00NASABBEACQEECIAB0IgJBACACa3IgASAAdHEiAEEAIABrcWgiAUEDdCIAQZCUAWoiAiAAQZiUAWooAgAiACgCCCIERgRAQeiTASAGQX4gAXdxIgY2AgAMAQsgBCACNgIMIAIgBDYCCAsgACAFQQNyNgIEIAAgBWoiCCABQQN0IgEgBWsiBEEBcjYCBCAAIAFqIAQ2AgAgBwRAIAdBeHFBkJQBaiEBQfyTASgCACECAn8gBkEBIAdBA3Z0IgNxRQRAQeiTASADIAZyNgIAIAEMAQsgASgCCAshAyABIAI2AgggAyACNgIMIAIgATYCDCACIAM2AggLIABBCGohAEH8kwEgCDYCAEHwkwEgBDYCAAwKC0HskwEoAgAiCkUNASAKQQAgCmtxaEECdEGYlgFqKAIAIgIoAgRBeHEgBWshAyACIQEDQAJAIAEoAhAiAEUEQCABKAIUIgBFDQELIAAoAgRBeHEgBWsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAQsLIAIoAhghCSACIAIoAgwiBEcEQCACKAIIIgBB+JMBKAIASRogACAENgIMIAQgADYCCAwJCyACQRRqIgEoAgAiAEUEQCACKAIQIgBFDQMgAkEQaiEBCwNAIAEhCCAAIgRBFGoiASgCACIADQAgBEEQaiEBIAQoAhAiAA0ACyAIQQA2AgAMCAtBfyEFIABBv39LDQAgAEELaiIAQXhxIQVB7JMBKAIAIghFDQBBACAFayEDAkACQAJAAn9BACAFQYACSQ0AGkEfIAVB////B0sNABogBUEmIABBCHZnIgBrdkEBcSAAQQF0a0E+agsiB0ECdEGYlgFqKAIAIgFFBEBBACEADAELQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhAgNAAkAgASgCBEF4cSAFayIGIANPDQAgASEEIAYiAw0AQQAhAyABIQAMAwsgACABKAIUIgYgBiABIAJBHXZBBHFqKAIQIgFGGyAAIAYbIQAgAkEBdCECIAENAAsLIAAgBHJFBEBBACEEQQIgB3QiAEEAIABrciAIcSIARQ0DIABBACAAa3FoQQJ0QZiWAWooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAVrIgIgA0khASACIAMgARshAyAAIAQgARshBCAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAERQ0AIANB8JMBKAIAIAVrTw0AIAQoAhghByAEIAQoAgwiAkcEQCAEKAIIIgBB+JMBKAIASRogACACNgIMIAIgADYCCAwHCyAEQRRqIgEoAgAiAEUEQCAEKAIQIgBFDQMgBEEQaiEBCwNAIAEhBiAAIgJBFGoiASgCACIADQAgAkEQaiEBIAIoAhAiAA0ACyAGQQA2AgAMBgsgBUHwkwEoAgAiAU0EQEH8kwEoAgAhAAJAIAEgBWsiAkEQTwRAQfCTASACNgIAQfyTASAAIAVqIgQ2AgAgBCACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQMAQtB/JMBQQA2AgBB8JMBQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIECyAAQQhqIQAMCAsgBUH0kwEoAgAiAkkEQEH0kwEgAiAFayIBNgIAQYCUAUGAlAEoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAgLQQAhACAFQS9qIgMCf0HAlwEoAgAEQEHIlwEoAgAMAQtBzJcBQn83AgBBxJcBQoCggICAgAQ3AgBBwJcBIAtBDGpBcHFB2KrVqgVzNgIAQdSXAUEANgIAQaSXAUEANgIAQYAgCyIBaiIGQQAgAWsiCHEiASAFTQ0HQaCXASgCACIEBEBBmJcBKAIAIgcgAWoiCSAHTQ0IIAQgCUkNCAsCQEGklwEtAABBBHFFBEACQAJAAkACQEGAlAEoAgAiBARAQaiXASEAA0AgBCAAKAIAIgdPBEAgByAAKAIEaiAESw0DCyAAKAIIIgANAAsLQQAQBSICQX9GDQMgASEGQcSXASgCACIAQQFrIgQgAnEEQCABIAJrIAIgBGpBACAAa3FqIQYLIAUgBk8NA0GglwEoAgAiAARAQZiXASgCACIEIAZqIgggBE0NBCAAIAhJDQQLIAYQBSIAIAJHDQEMBQsgBiACayAIcSIGEAUiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAYgBUEwak8EQCAAIQIMBAtByJcBKAIAIgIgAyAGa2pBACACa3EiAhAFQX9GDQEgAiAGaiEGIAAhAgwDCyACQX9HDQILQaSXAUGklwEoAgBBBHI2AgALIAEQBSECQQAQBSEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0GYlwFBmJcBKAIAIAZqIgA2AgBBnJcBKAIAIABJBEBBnJcBIAA2AgALAkBBgJQBKAIAIgMEQEGolwEhAANAIAIgACgCACIBIAAoAgQiBGpGDQIgACgCCCIADQALDAQLQfiTASgCACIAQQAgACACTRtFBEBB+JMBIAI2AgALQQAhAEGslwEgBjYCAEGolwEgAjYCAEGIlAFBfzYCAEGMlAFBwJcBKAIANgIAQbSXAUEANgIAA0AgAEEDdCIBQZiUAWogAUGQlAFqIgQ2AgAgAUGclAFqIAQ2AgAgAEEBaiIAQSBHDQALQfSTASAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgQ2AgBBgJQBIAEgAmoiATYCACABIARBAXI2AgQgACACakEoNgIEQYSUAUHQlwEoAgA2AgAMBAsgAC0ADEEIcQ0CIAEgA0sNAiACIANNDQIgACAEIAZqNgIEQYCUASADQXggA2tBB3FBACADQQhqQQdxGyIAaiIBNgIAQfSTAUH0kwEoAgAgBmoiAiAAayIANgIAIAEgAEEBcjYCBCACIANqQSg2AgRBhJQBQdCXASgCADYCAAwDC0EAIQQMBQtBACECDAMLQfiTASgCACACSwRAQfiTASACNgIACyACIAZqIQFBqJcBIQACQAJAAkACQAJAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQELQaiXASEAA0AgAyAAKAIAIgFPBEAgASAAKAIEaiIEIANLDQMLIAAoAgghAAwACwALIAAgAjYCACAAIAAoAgQgBmo2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgcgBUEDcjYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiBiAFIAdqIgVrIQAgAyAGRgRAQYCUASAFNgIAQfSTAUH0kwEoAgAgAGoiADYCACAFIABBAXI2AgQMAwtB/JMBKAIAIAZGBEBB/JMBIAU2AgBB8JMBQfCTASgCACAAaiIANgIAIAUgAEEBcjYCBCAAIAVqIAA2AgAMAwsgBigCBCIDQQNxQQFGBEAgA0F4cSEJAkAgA0H/AU0EQCAGKAIIIgEgA0EDdiIEQQN0QZCUAWpGGiABIAYoAgwiAkYEQEHokwFB6JMBKAIAQX4gBHdxNgIADAILIAEgAjYCDCACIAE2AggMAQsgBigCGCEIAkAgBiAGKAIMIgJHBEAgBigCCCIBIAI2AgwgAiABNgIIDAELAkAgBkEUaiIDKAIAIgENACAGQRBqIgMoAgAiAQ0AQQAhAgwBCwNAIAMhBCABIgJBFGoiAygCACIBDQAgAkEQaiEDIAIoAhAiAQ0ACyAEQQA2AgALIAhFDQACQCAGKAIcIgFBAnRBmJYBaiIEKAIAIAZGBEAgBCACNgIAIAINAUHskwFB7JMBKAIAQX4gAXdxNgIADAILIAhBEEEUIAgoAhAgBkYbaiACNgIAIAJFDQELIAIgCDYCGCAGKAIQIgEEQCACIAE2AhAgASACNgIYCyAGKAIUIgFFDQAgAiABNgIUIAEgAjYCGAsgBiAJaiIGKAIEIQMgACAJaiEACyAGIANBfnE2AgQgBSAAQQFyNgIEIAAgBWogADYCACAAQf8BTQRAIABBeHFBkJQBaiEBAn9B6JMBKAIAIgJBASAAQQN2dCIAcUUEQEHokwEgACACcjYCACABDAELIAEoAggLIQAgASAFNgIIIAAgBTYCDCAFIAE2AgwgBSAANgIIDAMLQR8hAyAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEDCyAFIAM2AhwgBUIANwIQIANBAnRBmJYBaiEBAkBB7JMBKAIAIgJBASADdCIEcUUEQEHskwEgAiAEcjYCACABIAU2AgAMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACECA0AgAiIBKAIEQXhxIABGDQMgA0EddiECIANBAXQhAyABIAJBBHFqIgQoAhAiAg0ACyAEIAU2AhALIAUgATYCGCAFIAU2AgwgBSAFNgIIDAILQfSTASAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgg2AgBBgJQBIAEgAmoiATYCACABIAhBAXI2AgQgACACakEoNgIEQYSUAUHQlwEoAgA2AgAgAyAEQScgBGtBB3FBACAEQSdrQQdxG2pBL2siACAAIANBEGpJGyIBQRs2AgQgAUGwlwEpAgA3AhAgAUGolwEpAgA3AghBsJcBIAFBCGo2AgBBrJcBIAY2AgBBqJcBIAI2AgBBtJcBQQA2AgAgAUEYaiEAA0AgAEEHNgIEIABBCGohAiAAQQRqIQAgAiAESQ0ACyABIANGDQMgASABKAIEQX5xNgIEIAMgASADayICQQFyNgIEIAEgAjYCACACQf8BTQRAIAJBeHFBkJQBaiEAAn9B6JMBKAIAIgFBASACQQN2dCICcUUEQEHokwEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAQLQR8hACACQf///wdNBEAgAkEmIAJBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyADIAA2AhwgA0IANwIQIABBAnRBmJYBaiEBAkBB7JMBKAIAIgRBASAAdCIGcUUEQEHskwEgBCAGcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEEA0AgBCIBKAIEQXhxIAJGDQQgAEEddiEEIABBAXQhACABIARBBHFqIgYoAhAiBA0ACyAGIAM2AhALIAMgATYCGCADIAM2AgwgAyADNgIIDAMLIAEoAggiACAFNgIMIAEgBTYCCCAFQQA2AhggBSABNgIMIAUgADYCCAsgB0EIaiEADAULIAEoAggiACADNgIMIAEgAzYCCCADQQA2AhggAyABNgIMIAMgADYCCAtB9JMBKAIAIgAgBU0NAEH0kwEgACAFayIBNgIAQYCUAUGAlAEoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAMLQeSTAUEwNgIAQQAhAAwCCwJAIAdFDQACQCAEKAIcIgBBAnRBmJYBaiIBKAIAIARGBEAgASACNgIAIAINAUHskwEgCEF+IAB3cSIINgIADAILIAdBEEEUIAcoAhAgBEYbaiACNgIAIAJFDQELIAIgBzYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsCQCADQQ9NBEAgBCADIAVqIgBBA3I2AgQgACAEaiIAIAAoAgRBAXI2AgQMAQsgBCAFQQNyNgIEIAQgBWoiAiADQQFyNgIEIAIgA2ogAzYCACADQf8BTQRAIANBeHFBkJQBaiEAAn9B6JMBKAIAIgFBASADQQN2dCIDcUUEQEHokwEgASADcjYCACAADAELIAAoAggLIQEgACACNgIIIAEgAjYCDCACIAA2AgwgAiABNgIIDAELQR8hACADQf///wdNBEAgA0EmIANBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyACIAA2AhwgAkIANwIQIABBAnRBmJYBaiEBAkACQCAIQQEgAHQiBnFFBEBB7JMBIAYgCHI2AgAgASACNgIADAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSADRg0CIABBHXYhBiAAQQF0IQAgASAGQQRxaiIGKAIQIgUNAAsgBiACNgIQCyACIAE2AhggAiACNgIMIAIgAjYCCAwBCyABKAIIIgAgAjYCDCABIAI2AgggAkEANgIYIAIgATYCDCACIAA2AggLIARBCGohAAwBCwJAIAlFDQACQCACKAIcIgBBAnRBmJYBaiIBKAIAIAJGBEAgASAENgIAIAQNAUHskwEgCkF+IAB3cTYCAAwCCyAJQRBBFCAJKAIQIAJGG2ogBDYCACAERQ0BCyAEIAk2AhggAigCECIABEAgBCAANgIQIAAgBDYCGAsgAigCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAIgAyAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELIAIgBUEDcjYCBCACIAVqIgQgA0EBcjYCBCADIARqIAM2AgAgBwRAIAdBeHFBkJQBaiEAQfyTASgCACEBAn9BASAHQQN2dCIFIAZxRQRAQeiTASAFIAZyNgIAIAAMAQsgACgCCAshBiAAIAE2AgggBiABNgIMIAEgADYCDCABIAY2AggLQfyTASAENgIAQfCTASADNgIACyACQQhqIQALIAtBEGokACAAC5kBAQN8IAAgAKIiAyADIAOioiADRHzVz1o62eU9okTrnCuK5uVavqCiIAMgA0R9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgIQUgAyAAoiEEIAJFBEAgBCADIAWiRElVVVVVVcW/oKIgAKAPCyAAIAMgAUQAAAAAAADgP6IgBSAEoqGiIAGhIARESVVVVVVVxT+ioKELkgEBA3xEAAAAAAAA8D8gACAAoiICRAAAAAAAAOA/oiIDoSIERAAAAAAAAPA/IAShIAOhIAIgAiACIAJEkBXLGaAB+j6iRHdRwRZswVa/oKJETFVVVVVVpT+goiACIAKiIgMgA6IgAiACRNQ4iL7p+qi9okTEsbS9nu4hPqCiRK1SnIBPfpK+oKKgoiAAIAGioaCgC4kMAQd/AkAgAEUNACAAQQhrIgIgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASACIAIoAgAiAWsiAkH4kwEoAgBJDQEgACABaiEAQfyTASgCACACRwRAIAFB/wFNBEAgAigCCCIEIAFBA3YiAUEDdEGQlAFqRhogBCACKAIMIgNGBEBB6JMBQeiTASgCAEF+IAF3cTYCAAwDCyAEIAM2AgwgAyAENgIIDAILIAIoAhghBgJAIAIgAigCDCIBRwRAIAIoAggiAyABNgIMIAEgAzYCCAwBCwJAIAJBFGoiBCgCACIDDQAgAkEQaiIEKAIAIgMNAEEAIQEMAQsDQCAEIQcgAyIBQRRqIgQoAgAiAw0AIAFBEGohBCABKAIQIgMNAAsgB0EANgIACyAGRQ0BAkAgAigCHCIEQQJ0QZiWAWoiAygCACACRgRAIAMgATYCACABDQFB7JMBQeyTASgCAEF+IAR3cTYCAAwDCyAGQRBBFCAGKAIQIAJGG2ogATYCACABRQ0CCyABIAY2AhggAigCECIDBEAgASADNgIQIAMgATYCGAsgAigCFCIDRQ0BIAEgAzYCFCADIAE2AhgMAQsgBSgCBCIBQQNxQQNHDQBB8JMBIAA2AgAgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgAPCyACIAVPDQAgBSgCBCIBQQFxRQ0AAkAgAUECcUUEQEGAlAEoAgAgBUYEQEGAlAEgAjYCAEH0kwFB9JMBKAIAIABqIgA2AgAgAiAAQQFyNgIEIAJB/JMBKAIARw0DQfCTAUEANgIAQfyTAUEANgIADwtB/JMBKAIAIAVGBEBB/JMBIAI2AgBB8JMBQfCTASgCACAAaiIANgIAIAIgAEEBcjYCBCAAIAJqIAA2AgAPCyABQXhxIABqIQACQCABQf8BTQRAIAUoAggiBCABQQN2IgFBA3RBkJQBakYaIAQgBSgCDCIDRgRAQeiTAUHokwEoAgBBfiABd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAUcEQCAFKAIIIgNB+JMBKAIASRogAyABNgIMIAEgAzYCCAwBCwJAIAVBFGoiBCgCACIDDQAgBUEQaiIEKAIAIgMNAEEAIQEMAQsDQCAEIQcgAyIBQRRqIgQoAgAiAw0AIAFBEGohBCABKAIQIgMNAAsgB0EANgIACyAGRQ0AAkAgBSgCHCIEQQJ0QZiWAWoiAygCACAFRgRAIAMgATYCACABDQFB7JMBQeyTASgCAEF+IAR3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECIDBEAgASADNgIQIAMgATYCGAsgBSgCFCIDRQ0AIAEgAzYCFCADIAE2AhgLIAIgAEEBcjYCBCAAIAJqIAA2AgAgAkH8kwEoAgBHDQFB8JMBIAA2AgAPCyAFIAFBfnE2AgQgAiAAQQFyNgIEIAAgAmogADYCAAsgAEH/AU0EQCAAQXhxQZCUAWohAQJ/QeiTASgCACIDQQEgAEEDdnQiAHFFBEBB6JMBIAAgA3I2AgAgAQwBCyABKAIICyEAIAEgAjYCCCAAIAI2AgwgAiABNgIMIAIgADYCCA8LQR8hBCAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEECyACIAQ2AhwgAkIANwIQIARBAnRBmJYBaiEHAkACQAJAQeyTASgCACIDQQEgBHQiAXFFBEBB7JMBIAEgA3I2AgAgByACNgIAIAIgBzYCGAwBCyAAQRkgBEEBdmtBACAEQR9HG3QhBCAHKAIAIQEDQCABIgMoAgRBeHEgAEYNAiAEQR12IQEgBEEBdCEEIAMgAUEEcWoiB0EQaigCACIBDQALIAcgAjYCECACIAM2AhgLIAIgAjYCDCACIAI2AggMAQsgAygCCCIAIAI2AgwgAyACNgIIIAJBADYCGCACIAM2AgwgAiAANgIIC0GIlAFBiJQBKAIAQQFrIgBBfyAAGzYCAAsLqAEAAkAgAUGACE4EQCAARAAAAAAAAOB/oiEAIAFB/w9JBEAgAUH/B2shAQwCCyAARAAAAAAAAOB/oiEAQf0XIAEgAUH9F04bQf4PayEBDAELIAFBgXhKDQAgAEQAAAAAAABgA6IhACABQbhwSwRAIAFByQdqIQEMAQsgAEQAAAAAAABgA6IhAEHwaCABIAFB8GhMG0GSD2ohAQsgACABQf8Haq1CNIa/ogu8AgEBfwJ/QQAgAUECdEGAM2oiAigCACAARg0AGkEBIAIoAhAgAEYNABpBAiABQQJ0QaAzaigCACAARg0AGkEDIAFBAnQiAkGwM2ooAgAgAEYNABpBBCACQcAzaigCACAARg0AGkEFIAFBAnQiAkHQM2ooAgAgAEYNABpBBiACQeAzaigCACAARg0AGkEHIAFBAnQiAkHwM2ooAgAgAEYNABpBCCACQYA0aigCACAARg0AGkEJIAFBAnQiAkGQNGooAgAgAEYNABpBCiACQaA0aigCACAARg0AGkELIAFBAnQiAkGwNGooAgAgAEYNABpBDCACQcA0aigCACAARg0AGkENIAFBAnQiAkHQNGooAgAgAEYNABpBDiACQeA0aigCACAARg0AGkEPQX8gAUECdEHwNGooAgAgAEYbCwvoBAMBfwZ8An4gAL0iCEIwiKchASAIQoCAgICAgID3P31C//////+fwgFYBEAgCEKAgICAgICA+D9RBEBEAAAAAAAAAAAPCyAARAAAAAAAAPC/oCIAIAAgAEQAAAAAAACgQaIiAqAgAqEiAiACokGI8wArAwAiBaIiBqAiByAAIAAgAKIiA6IiBCAEIAQgBEHY8wArAwCiIANB0PMAKwMAoiAAQcjzACsDAKJBwPMAKwMAoKCgoiADQbjzACsDAKIgAEGw8wArAwCiQajzACsDAKCgoKIgA0Gg8wArAwCiIABBmPMAKwMAokGQ8wArAwCgoKCiIAAgAqEgBaIgACACoKIgBiAAIAehoKCgoA8LAkAgAUHw/wFrQZ+Afk0EQCAIQv///////////wCDUARAIwBBEGsiAUQAAAAAAADwvzkDCCABKwMIRAAAAAAAAAAAow8LIAhCgICAgICAgPj/AFENASABQYCAAnFFIAFB8P8BcUHw/wFHcUUEQCAAIAChIgAgAKMPCyAARAAAAAAAADBDor1CgICAgICAgKADfSEICyAIQoCAgICAgIDzP30iCUI0h6e3IgNB0PIAKwMAoiAJQi2Ip0H/AHFBBHQiAUHo8wBqKwMAoCIEIAFB4PMAaisDACAIIAlCgICAgICAgHiDfb8gAUHggwFqKwMAoSABQeiDAWorAwChoiIAoCIFIAAgACAAoiICoiACIABBgPMAKwMAokH48gArAwCgoiAAQfDyACsDAKJB6PIAKwMAoKCiIAJB4PIAKwMAoiADQdjyACsDAKIgACAEIAWhoKCgoKAhAAsgAAsDAAELkwwCB38BfiMAQYACayIHJAAgA0GAjQVqIgQgAkECdGoiBSgCAEECdCAEIAJBC3QiCGpBiMAAaiICaiAAKAIAIgQvAQBBEHQ2AnwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AnggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AnQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AnAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AmwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AmggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AmQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AmAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AlwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AlggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AlQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AlAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AkwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AkggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AkQgBSgCAEECdCACakFAayAEQQJqIgQvAQBBEHQ2AgAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AjwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AjggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AjQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AjAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AiwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AiggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AiQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AiAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AhwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AhggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AhQgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AhAgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AgwgBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AgggBSgCAEECdCACaiAEQQJqIgQvAQBBEHQ2AgQgAiAFKAIAQQJ0aiAEQQJqIgIvAQBBEHQ2AgAgACACQQJqNgIAIAUoAgAhCUHAACECA0AgByACQQFrIgBBAnQiCmogAkECdEHAO2oiBjQC/AEgAyAIakGIzQVqIgIgACAJaiIEQUBrQf8DcUECdGo0AgB+QiCIpyAKQcA7ajQCACACIARB/wNxQQJ0ajQCAH5CIIinaiAGNAL8AyACIARBgAFqQf8DcUECdGo0AgB+QiCIp2ogBjQC/AUgAiAEQcABakH/A3FBAnRqNAIAfkIgiKdqIAY0AvwHIAIgBEGAAmpB/wNxQQJ0ajQCAH5CIIinaiAGQfwJajQCACACIARBwAJqQf8DcUECdGo0AgB+QiCIp2ogBkH8C2o0AgAgAiAEQYADakH/A3FBAnRqNAIAfkIgiKdqIAZB/A1qNAIAIAIgBEHAA2pB/wNxQQJ0ajQCAH5CIIinajYCACAAIgINAAsgBSAFKAIAQeADakH/A3E2AgBBHyECIAc0AvwBIQsDQCALIAMgAiIFQQh0aiIIQYSPBWo0AgB+QiCIpyEGQT8hAANAIAYgByAAQQJ0IgRBBGsiCWo0AgAgCSAIQYiNBWoiAmo0AgB+QiCIp2ogByAEQQhrIgZqNAIAIAIgBmo0AgB+QiCIp2ogByAEQQxrIgZqNAIAIAIgBmo0AgB+QiCIp2ogByAEQRBrIgZqNAIAIAIgBmo0AgB+QiCIp2ogByAEQRRrIgZqNAIAIAIgBmo0AgB+QiCIp2ogByAEQRhrIgRqNAIAIAIgBGo0AgB+QiCIp2ogByAAQQdrIgBBAnQiBGo0AgAgAiAEajQCAH5CIIinaiEGIAANAAsgASAFQQJ0aiAGNgIAIAVBAWshAiAFDQALIAdBgAJqJAALyAsBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQfyTASgCAEcEQCACQf8BTQRAIAAoAggiBCACQQN2IgJBA3RBkJQBakYaIAAoAgwiAyAERw0CQeiTAUHokwEoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgJHBEAgACgCCCIDQfiTASgCAEkaIAMgAjYCDCACIAM2AggMAQsCQCAAQRRqIgQoAgAiAw0AIABBEGoiBCgCACIDDQBBACECDAELA0AgBCEHIAMiAkEUaiIEKAIAIgMNACACQRBqIQQgAigCECIDDQALIAdBADYCAAsgBkUNAgJAIAAoAhwiBEECdEGYlgFqIgMoAgAgAEYEQCADIAI2AgAgAg0BQeyTAUHskwEoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAI2AgAgAkUNAwsgAiAGNgIYIAAoAhAiAwRAIAIgAzYCECADIAI2AhgLIAAoAhQiA0UNAiACIAM2AhQgAyACNgIYDAILIAUoAgQiAkEDcUEDRw0BQfCTASABNgIAIAUgAkF+cTYCBCAAIAFBAXI2AgQgBSABNgIADwsgBCADNgIMIAMgBDYCCAsCQCAFKAIEIgJBAnFFBEBBgJQBKAIAIAVGBEBBgJQBIAA2AgBB9JMBQfSTASgCACABaiIBNgIAIAAgAUEBcjYCBCAAQfyTASgCAEcNA0HwkwFBADYCAEH8kwFBADYCAA8LQfyTASgCACAFRgRAQfyTASAANgIAQfCTAUHwkwEoAgAgAWoiATYCACAAIAFBAXI2AgQgACABaiABNgIADwsgAkF4cSABaiEBAkAgAkH/AU0EQCAFKAIIIgQgAkEDdiICQQN0QZCUAWpGGiAEIAUoAgwiA0YEQEHokwFB6JMBKAIAQX4gAndxNgIADAILIAQgAzYCDCADIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgJHBEAgBSgCCCIDQfiTASgCAEkaIAMgAjYCDCACIAM2AggMAQsCQCAFQRRqIgMoAgAiBA0AIAVBEGoiAygCACIEDQBBACECDAELA0AgAyEHIAQiAkEUaiIDKAIAIgQNACACQRBqIQMgAigCECIEDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGYlgFqIgMoAgAgBUYEQCADIAI2AgAgAg0BQeyTAUHskwEoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAI2AgAgAkUNAQsgAiAGNgIYIAUoAhAiAwRAIAIgAzYCECADIAI2AhgLIAUoAhQiA0UNACACIAM2AhQgAyACNgIYCyAAIAFBAXI2AgQgACABaiABNgIAIABB/JMBKAIARw0BQfCTASABNgIADwsgBSACQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALIAFB/wFNBEAgAUF4cUGQlAFqIQICf0HokwEoAgAiA0EBIAFBA3Z0IgFxRQRAQeiTASABIANyNgIAIAIMAQsgAigCCAshASACIAA2AgggASAANgIMIAAgAjYCDCAAIAE2AggPC0EfIQQgAUH///8HTQRAIAFBJiABQQh2ZyICa3ZBAXEgAkEBdGtBPmohBAsgACAENgIcIABCADcCECAEQQJ0QZiWAWohBwJAAkBB7JMBKAIAIgNBASAEdCICcUUEQEHskwEgAiADcjYCACAHIAA2AgAgACAHNgIYDAELIAFBGSAEQQF2a0EAIARBH0cbdCEEIAcoAgAhAgNAIAIiAygCBEF4cSABRg0CIARBHXYhAiAEQQF0IQQgAyACQQRxaiIHQRBqKAIAIgINAAsgByAANgIQIAAgAzYCGAsgACAANgIMIAAgADYCCA8LIAMoAggiASAANgIMIAMgADYCCCAAQQA2AhggACADNgIMIAAgATYCCAsLwQEBAn8jAEEQayIBJAACfCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEBEAAAAAAAA8D8gAkGewZryA0kNARogAEQAAAAAAAAAABAKDAELIAAgAKEgAkGAgMD/B08NABoCQAJAAkACQCAAIAEQE0EDcQ4DAAECAwsgASsDACABKwMIEAoMAwsgASsDACABKwMIQQEQCZoMAgsgASsDACABKwMIEAqaDAELIAErAwAgASsDCEEBEAkLIQAgAUEQaiQAIAALzxgDFH8EfAF+IwBBMGsiCSQAAkACQAJAIAC9IhpCIIinIgNB/////wdxIgZB+tS9gARNBEAgA0H//z9xQfvDJEYNASAGQfyyi4AETQRAIBpCAFkEQCABIABEAABAVPsh+b+gIgBEMWNiGmG00L2gIhY5AwAgASAAIBahRDFjYhphtNC9oDkDCEEBIQMMBQsgASAARAAAQFT7Ifk/oCIARDFjYhphtNA9oCIWOQMAIAEgACAWoUQxY2IaYbTQPaA5AwhBfyEDDAQLIBpCAFkEQCABIABEAABAVPshCcCgIgBEMWNiGmG04L2gIhY5AwAgASAAIBahRDFjYhphtOC9oDkDCEECIQMMBAsgASAARAAAQFT7IQlAoCIARDFjYhphtOA9oCIWOQMAIAEgACAWoUQxY2IaYbTgPaA5AwhBfiEDDAMLIAZBu4zxgARNBEAgBkG8+9eABE0EQCAGQfyyy4AERg0CIBpCAFkEQCABIABEAAAwf3zZEsCgIgBEypSTp5EO6b2gIhY5AwAgASAAIBahRMqUk6eRDum9oDkDCEEDIQMMBQsgASAARAAAMH982RJAoCIARMqUk6eRDuk9oCIWOQMAIAEgACAWoUTKlJOnkQ7pPaA5AwhBfSEDDAQLIAZB+8PkgARGDQEgGkIAWQRAIAEgAEQAAEBU+yEZwKAiAEQxY2IaYbTwvaAiFjkDACABIAAgFqFEMWNiGmG08L2gOQMIQQQhAwwECyABIABEAABAVPshGUCgIgBEMWNiGmG08D2gIhY5AwAgASAAIBahRDFjYhphtPA9oDkDCEF8IQMMAwsgBkH6w+SJBEsNAQsgACAARIPIyW0wX+Q/okQAAAAAAAA4Q6BEAAAAAAAAOMOgIhdEAABAVPsh+b+ioCIWIBdEMWNiGmG00D2iIhihIhlEGC1EVPsh6b9jIQICfyAXmUQAAAAAAADgQWMEQCAXqgwBC0GAgICAeAshAwJAIAIEQCADQQFrIQMgF0QAAAAAAADwv6AiF0QxY2IaYbTQPaIhGCAAIBdEAABAVPsh+b+ioCEWDAELIBlEGC1EVPsh6T9kRQ0AIANBAWohAyAXRAAAAAAAAPA/oCIXRDFjYhphtNA9oiEYIAAgF0QAAEBU+yH5v6KgIRYLIAEgFiAYoSIAOQMAAkAgBkEUdiICIAC9QjSIp0H/D3FrQRFIDQAgASAWIBdEAABgGmG00D2iIgChIhkgF0RzcAMuihmjO6IgFiAZoSAAoaEiGKEiADkDACACIAC9QjSIp0H/D3FrQTJIBEAgGSEWDAELIAEgGSAXRAAAAC6KGaM7oiIAoSIWIBdEwUkgJZqDezmiIBkgFqEgAKGhIhihIgA5AwALIAEgFiAAoSAYoTkDCAwBCyAGQYCAwP8HTwRAIAEgACAAoSIAOQMAIAEgADkDCEEAIQMMAQsgGkL/////////B4NCgICAgICAgLDBAIS/IQBBACEDQQEhAgNAIAlBEGogA0EDdGoCfyAAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAu3IhY5AwAgACAWoUQAAAAAAABwQaIhAEEBIQMgAiEEQQAhAiAEDQALIAkgADkDIEECIQMDQCADIgJBAWshAyAJQRBqIAJBA3RqKwMARAAAAAAAAAAAYQ0ACyAJQRBqIQ5BACEEIwBBsARrIgUkACAGQRR2QZYIayIDQQNrQRhtIgZBACAGQQBKGyIPQWhsIANqIQZBxMsAKAIAIgggAkEBaiIKQQFrIgdqQQBOBEAgCCAKaiEDIA8gB2shAgNAIAVBwAJqIARBA3RqIAJBAEgEfEQAAAAAAAAAAAUgAkECdEHQywBqKAIAtws5AwAgAkEBaiECIARBAWoiBCADRw0ACwsgBkEYayELQQAhAyAIQQAgCEEAShshBCAKQQBMIQwDQAJAIAwEQEQAAAAAAAAAACEADAELIAMgB2ohDUEAIQJEAAAAAAAAAAAhAANAIA4gAkEDdGorAwAgBUHAAmogDSACa0EDdGorAwCiIACgIQAgAkEBaiICIApHDQALCyAFIANBA3RqIAA5AwAgAyAERiECIANBAWohAyACRQ0AC0EvIAZrIRJBMCAGayEQIAZBGWshEyAIIQMCQANAIAUgA0EDdGorAwAhAEEAIQIgAyEEIANBAEwiB0UEQANAIAVB4ANqIAJBAnRqAn8CfyAARAAAAAAAAHA+oiIWmUQAAAAAAADgQWMEQCAWqgwBC0GAgICAeAu3IhZEAAAAAAAAcMGiIACgIgCZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CzYCACAFIARBAWsiBEEDdGorAwAgFqAhACACQQFqIgIgA0cNAAsLAn8gACALEAwiACAARAAAAAAAAMA/opxEAAAAAAAAIMCioCIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAshDCAAIAy3oSEAAkACQAJAAn8gC0EATCIURQRAIANBAnQgBWoiAiACKALcAyICIAIgEHUiAiAQdGsiBDYC3AMgAiAMaiEMIAQgEnUMAQsgCw0BIANBAnQgBWooAtwDQRd1CyINQQBMDQIMAQtBAiENIABEAAAAAAAA4D9mDQBBACENDAELQQAhAkEAIQQgB0UEQANAIAVB4ANqIAJBAnRqIhUoAgAhEUH///8HIQcCfwJAIAQNAEGAgIAIIQcgEQ0AQQAMAQsgFSAHIBFrNgIAQQELIQQgAkEBaiICIANHDQALCwJAIBQNAEH///8DIQICQAJAIBMOAgEAAgtB////ASECCyADQQJ0IAVqIgcgBygC3AMgAnE2AtwDCyAMQQFqIQwgDUECRw0ARAAAAAAAAPA/IAChIQBBAiENIARFDQAgAEQAAAAAAADwPyALEAyhIQALIABEAAAAAAAAAABhBEBBACEEIAMhAgJAIAMgCEwNAANAIAVB4ANqIAJBAWsiAkECdGooAgAgBHIhBCACIAhKDQALIARFDQAgCyEGA0AgBkEYayEGIAVB4ANqIANBAWsiA0ECdGooAgBFDQALDAMLQQEhAgNAIAIiBEEBaiECIAVB4ANqIAggBGtBAnRqKAIARQ0ACyADIARqIQQDQCAFQcACaiADIApqIgdBA3RqIANBAWoiAyAPakECdEHQywBqKAIAtzkDAEEAIQJEAAAAAAAAAAAhACAKQQBKBEADQCAOIAJBA3RqKwMAIAVBwAJqIAcgAmtBA3RqKwMAoiAAoCEAIAJBAWoiAiAKRw0ACwsgBSADQQN0aiAAOQMAIAMgBEgNAAsgBCEDDAELCwJAIABBGCAGaxAMIgBEAAAAAAAAcEFmBEAgBUHgA2ogA0ECdGoCfwJ/IABEAAAAAAAAcD6iIhaZRAAAAAAAAOBBYwRAIBaqDAELQYCAgIB4CyICt0QAAAAAAABwwaIgAKAiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLNgIAIANBAWohAwwBCwJ/IACZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CyECIAshBgsgBUHgA2ogA0ECdGogAjYCAAtEAAAAAAAA8D8gBhAMIQACQCADQQBIDQAgAyECA0AgBSACIgRBA3RqIAAgBUHgA2ogAkECdGooAgC3ojkDACACQQFrIQIgAEQAAAAAAABwPqIhACAEDQALQQAhByADQQBIDQAgCEEAIAhBAEobIQYgAyEEA0AgBiAHIAYgB0kbIQsgAyAEayEIQQAhAkQAAAAAAAAAACEAA0AgAkEDdEGg4QBqKwMAIAUgAiAEakEDdGorAwCiIACgIQAgAiALRyEKIAJBAWohAiAKDQALIAVBoAFqIAhBA3RqIAA5AwAgBEEBayEEIAMgB0chAiAHQQFqIQcgAg0ACwtEAAAAAAAAAAAhACADQQBOBEAgAyECA0AgAiIEQQFrIQIgACAFQaABaiAEQQN0aisDAKAhACAEDQALCyAJIACaIAAgDRs5AwAgBSsDoAEgAKEhAEEBIQIgA0EASgRAA0AgACAFQaABaiACQQN0aisDAKAhACACIANHIQQgAkEBaiECIAQNAAsLIAkgAJogACANGzkDCCAFQbAEaiQAIAxBB3EhAyAJKwMAIQAgGkIAUwRAIAEgAJo5AwAgASAJKwMImjkDCEEAIANrIQMMAQsgASAAOQMAIAEgCSsDCDkDCAsgCUEwaiQAIAMLGAAgASAAKAJoNgIAIABBADYCaCAAKAJgC7xUAyF/JH4CfCAAIAEoAgA2AogRIAAoAgBBAkYEQCAAQYwRaiABKAIENgIACwJAIAArAzAiSEQAAAAAAAAAAGEEQCAAKAIgIQEMAQsgACAAKwM4IkkgSEQAAAAAAADwv6BlIgE2AiAgACBJRAAAAAAAAPA/RAAAAAAAAAAAIAEbIEihoDkDOAsgACAAQUBrKAIAIAFqQQN0IgE2AiQgACABIAAoAowEayAAKAIQbTYCkAQCQCAAIgEoAgAiBUUNACAFQQFrIQAgASgCECIEQQBKBEAgAUHg+ARqIQcDQCAAIQMgBEEASgRAIAEgA0ECdGpBiBFqIQpBACEFA0AgBUEBaiEGQQAhAANAIAogASADQYA2bGoiCSAGQYASbCIQakGw2QBqIgQgAEEHdCIIaiADIAEQECAKIAQgCEGAAXJqIgQgAyABEBAgBEEAIAQoAgRrNgIEIARBACAEKAIMazYCDCAEQQAgBCgCFGs2AhQgBEEAIAQoAhxrNgIcIARBACAEKAIkazYCJCAEQQAgBCgCLGs2AiwgBEEAIAQoAjRrNgI0IARBACAEKAI8azYCPCAEQQAgBCgCRGs2AkQgBEEAIAQoAkxrNgJMIARBACAEKAJUazYCVCAEQQAgBCgCXGs2AlwgBEEAIAQoAmRrNgJkIARBACAEKAJsazYCbCAEQQAgBCgCdGs2AnQgBEEAIAQoAnxrNgJ8IABBEEkhBCAAQQJqIQAgBA0ACyAFQYASbCINIAEgA0GAJGxqakGwxQFqIQxBACEFA0AgBUECdCIEIAlBsNkAaiIIIA1qaiIANAIAISQgCCAQaiAEaiIENAIAISUgADQCgAEhJiAANAKAAiEnIAA0AoADISggADQCgAQhKSAANAKABSEqIAA0AoAGISsgADQCgAchLCAAQYAIajQCACEtIABBgAlqNAIAIS4gAEGACmo0AgAhLyAAQYALajQCACEwIABBgAxqNAIAITEgAEGADWo0AgAhMiAAQYAOajQCACEzIABBgA9qNAIAITQgAEGAEGo0AgAhNSAAQYARajQCACE2IAQ0AoABITcgBDQCgAIhOCAENAKAAyE5IAQ0AoAEITogBDQCgAUhOyAENAKABiE8IAQ0AoAHIT0gBEGACGo0AgAhPiAEQYAJajQCACE/IARBgApqNAIAIUAgBEGAC2o0AgAhQSAEQYAMajQCACFCIARBgA1qNAIAIUMgBEGADmo0AgAhRCAEQYAPajQCACFFIARBgBBqNAIAIUYgBEGAEWo0AgAhR0ERIQQDQCAMIAVByABsaiIIIAQiAEECdGogByAAQZABbGoiBDQCjAEgR35CIIinIAQ0AogBIEZ+QiCIp2ogBDQChAEgRX5CIIinaiAENAKAASBEfkIgiKdqIAQ0AnwgQ35CIIinaiAENAJ4IEJ+QiCIp2ogBDQCdCBBfkIgiKdqIAQ0AnAgQH5CIIinaiAENAJsID9+QiCIp2ogBDQCaCA+fkIgiKdqIAQ0AmQgPX5CIIinaiAENAJgIDx+QiCIp2ogBDQCXCA7fkIgiKdqIAQ0AlggOn5CIIinaiAENAJUIDl+QiCIp2ogBDQCUCA4fkIgiKdqIAQ0AkwgN35CIIinaiAENAJIICV+QiCIp2ogBDQCRCA2fkIgiKdqIAQ0AkAgNX5CIIinaiAENAI8IDR+QiCIp2ogBDQCOCAzfkIgiKdqIAQ0AjQgMn5CIIinaiAENAIwIDF+QiCIp2ogBDQCLCAwfkIgiKdqIAQ0AiggL35CIIinaiAENAIkIC5+QiCIp2ogBDQCICAtfkIgiKdqIAQ0AhwgLH5CIIinaiAENAIYICt+QiCIp2ogBDQCFCAqfkIgiKdqIAQ0AhAgKX5CIIinaiAENAIMICh+QiCIp2ogBDQCCCAnfkIgiKdqIAQ0AgQgJn5CIIinaiAENAIAICR+QiCIp2o2AgAgAEEBayEEIAANAAsgBQRAIAhByABrIgAgADQCRCIkQoOoie4GfiAINAIAIiVCy4GU8fv/////AH58Qh+IPgJEIAggADQCQCImQpDthuMDfiAINAIEIidC+Nfzhgd+fEIfiD4CBCAIICRCtf7rjgR+ICVCg6iJ7gZ+fEIfiD4CACAAICZC+Nfzhgd+ICdC8JL5nPz/////AH58Qh+IPgJAIAggADQCPCIkQp6B88ACfiAINAIIIiVC+ty1zAd+fEIfiD4CCCAAICRC+ty1zAd+ICVC4v6Mv/3/////AH58Qh+IPgI8IAAgADQCOCIkQqeB9e4HfiAINAIMIiVC+6Lcxf7/////AH58Qh+IPgI4IAggJEKF3aO6AX4gJUKngfXuB358Qh+IPgIMIAAgADQCNCIkQrbBtPsHfiAINAIQIiVCrfyTn///////AH58Qh+IPgI0IAggJELTg+zgAH4gJUK2wbT7B358Qh+IPgIQIAAgADQCMCIkQr/8kf8HfiAINAIUIiVCyceG1v//////AH58Qh+IPgIwIAggJEK3uPkpfiAlQr/8kf8HfnxCH4g+AhQgACAANAIsIiRC4uTy/wd+IAg0AhgiJULH+7rx//////8AfnxCH4g+AiwgCCAkQrmExQ5+ICVC4uTy/wd+fEIfiD4CGCAIIAA0AigiJEKj++QDfiAINAIcIiVCk43//wd+fEIfiD4CHCAAICRCk43//wd+ICVC3YSb/P//////AH58Qh+IPgIoCyAFQQFqIgVBIEcNAAsgASgCECIEIAYiBUoNAAsLIAEgA0GANmxqQbDZAGoiACAAIARBgBJsakGAEhAEIANBAWshACADDQALDAELIAVBA3EiAwRAA0AgASAAQYA2bGpBsNkAaiIIIAggBEGAEmxqQYASEAQgAEEBayEAIAZBAWoiBiADRw0ACwsgBUEESQ0AA0AgASAAQYA2bGoiBUGw2QBqIgYgBiAEQYASbCIDakGAEhAEIAVBsCNqIgYgAyAGakGAEhAEIAVB0BJrIgYgAyAGakGAEhAEIAVB0MgAayIFIAMgBWpBgBIQBCAAQQNGIQUgAEEEayEAIAVFDQALCyMAQaAFayIVJAACQCABIgMoAgAiEEUNACADKAIQIgFBAEwNACADQbgJaiEZIBBB3ABsQYwBaiEaA0AgEEEBayEQIAFBAEoEQCAaIBdBpH9saiEdIBBBqAFsIRggAyAQQQR0aiEMQQAhDQNAIANBADYCvLECIAMgAyAQQYAkbGogDUGAEmxqIg9BsMUBaiIFNgK4jQIgAyAdIA1BuAFsIghqaiEJQb8EIQADQCADIAAiAUECdCIAaiIGQbyfAmogACAFaigCACIEIARBH3UiAHMgAGsiADYCACAGQbyNAmogBKwiJCAkfkKAgICABHxCH4g+AgAgAygCvLECIgYgAEgEQCADIAA2AryxAiAAIQYLIAFBAWshACABDQALIAMgCGogEEHcAGxqIhFBFTYC1AEgFSANQdACbCISIBhqakGoARAHAkAgAygCCEEDRw0AIAMoAkghBCADIA1BAnRqIghBmLQCaiAGNgIAQcAEIQFBACEFA0AgAUECdCEAIANBvI0CaiIGIAFBBGsiAUECdGooAgBBCnUgACAGaiIAQQxrKAIAQQp1IABBBGsoAgBBCnUgBWogAEEIaygCAEEKdWpqaiEFIAENAAsgBEHcAGxBgDVqIQsgCEHAsQJqAn9BACAFRQ0AGiAFt0RoXxwAAACgPqIQDkScRK3+Qi7mP6MiSJlEAAAAAAAA4EFjBEAgSKoMAQtBgICAgHgLNgIAIAsoAlQhBUEUIQADQEEAIQoCf0EAIAUgCyAAIghBAnQiE2ooAgAiBEwNABogBSAEayIHQQNxIQ5BACEGQQAhACAFIAQiAUF/c2pBA08EQCAHQXxxIRRBACEFA0AgAyABQQJ0aiIHQciNAmooAgBBCnUgB0G8jQJqKAIAQQp1IABqIAdBwI0CaigCAEEKdWogB0HEjQJqKAIAQQp1amohACABQQRqIQEgBUEEaiIFIBRHDQALCyAOBEADQCADIAFBAnRqQbyNAmooAgBBCnUgAGohACABQQFqIQEgBkEBaiIGIA5HDQALC0EAIABFDQAaIAC3RGhfHAAAAKA+ohAORJxErf5CLuY/oyJImUQAAAAAAADgQWMEQCBIqgwBC0GAgICAeAshACADIA1B1ABsaiATaiIBQcixAmogADYCAAJAIBIgFWogGGogCEEDdGorAwAiSEQAAAAAAAAAAGENACBIEA5EnESt/kIu5j+jIkiZRAAAAAAAAOBBYwRAIEiqIQoMAQtBgICAgHghCgsgAUHwsgJqIAo2AgAgCEEBayEAIAQhBSAIDQALIA1BAUcNACADKAKYtAJBAEdBA0ECIAMoApy0AhtqIAMoAsCxAiADKALEsQJrIgAgAEEfdSIAcyAAa0EKSWogAygC0LECIAMoAqSyAmsiACAAQR91IgBzIABrIgAgAygC1LECIAMoAqiyAmsiASABQR91IgFzIAFrIgEgAygC5LECIAMoAriyAmsiBCAEQR91IgRzIARrIgQgAygClLICIAMoAuiyAmsiBSAFQR91IgVzIAVrIAMoApiyAiADKALssgJrIgUgBUEfdSIFcyAFa2ogAygCkLICIAMoAuSyAmsiBSAFQR91IgVzIAVraiADKAKMsgIgAygC4LICayIFIAVBH3UiBXMgBWtqIAMoAoiyAiADKALcsgJrIgUgBUEfdSIFcyAFa2ogAygChLICIAMoAtiyAiIFayIGIAZBH3UiBnMgBmtqIAMoAoCyAiADKALUsgJrIgYgBkEfdSIGcyAGa2ogAygC/LECIAMoAtCyAmsiBiAGQR91IgZzIAZraiADKAL4sQIiBiADKALMsgJrIgggCEEfdSIIcyAIa2ogAygC9LECIAMoAsiyAiIIayIKIApBH3UiCnMgCmtqIAMoAvCxAiADKALEsgIiCmsiByAHQR91IgdzIAdraiADKALssQIgAygCwLICayIHIAdBH3UiB3MgB2tqIAMoAuixAiIHIAMoAryyAmsiCyALQR91IgtzIAtramogAygC4LECIAMoArSyAiILayIOIA5BH3UiDnMgDmtqIAMoAtyxAiADKAKwsgIiDmsiEiASQR91IhJzIBJraiADKALYsQIiEiADKAKssgJrIhMgE0EfdSITcyATa2pqaiADKALMsQIgAygCoLICIhNrIhQgFEEfdSIUcyAUa2ogAygCyLECIhQgAygCnLICayIWIBZBH3UiFnMgFmtqQeQASWpBBkcEQCAMQgA3AnwgDEIANwKEAQwBCyAMQQA2AnwgDCAAIAFqIAMoAtyxAiAOayIAIABBH3UiAHMgAGtqIBIgAygCrLICayIAIABBH3UiAHMgAGtqIAMoAsyxAiATayIAIABBH3UiAHMgAGtqIBQgAygCnLICayIAIABBH3UiAHMgAGtqQQpJIAMoAoCzAiADKALUswJrIgAgAEEfdSIAcyAAayADKAKEswIgAygC2LMCayIAIABBH3UiAHMgAGtqIAMoAvyyAiADKALQswJrIgAgAEEfdSIAcyAAa2ogAygC+LICIAMoAsyzAmsiACAAQR91IgBzIABraiADKAL0sgIgAygCyLMCayIAIABBH3UiAHMgAGtqIAMoAvCyAiADKALEswJrIgAgAEEfdSIAcyAAa2pBCklxNgJ8IAxBADYCgAEgDCADKALwsQIgCmsiACAAQR91IgBzIABrIARqIAMoAuyxAiADKALAsgJrIgAgAEEfdSIAcyAAa2ogByADKAK8sgJrIgAgAEEfdSIAcyAAa2ogAygC4LECIAtrIgAgAEEfdSIAcyAAa2pBCkkgAygClLMCIAMoAuizAmsiACAAQR91IgBzIABrIAMoApizAiADKALsswJrIgAgAEEfdSIAcyAAa2ogAygCkLMCIAMoAuSzAmsiACAAQR91IgBzIABraiADKAKMswIgAygC4LMCayIAIABBH3UiAHMgAGtqIAMoAoizAiADKALcswJrIgAgAEEfdSIAcyAAa2pBCklxNgKAASAMQQA2AoQBIAwgAygCgLICIAMoAtSyAmsiACAAQR91IgBzIABrIAMoAoSyAiAFayIAIABBH3UiAHMgAGtqIAMoAvyxAiADKALQsgJrIgAgAEEfdSIAcyAAa2ogBiADKALMsgJrIgAgAEEfdSIAcyAAa2ogAygC9LECIAhrIgAgAEEfdSIAcyAAa2pBCkkgAygCqLMCIAMoAvyzAmsiACAAQR91IgBzIABrIAMoAqyzAiADKAKAtAJrIgAgAEEfdSIAcyAAa2ogAygCpLMCIAMoAvizAmsiACAAQR91IgBzIABraiADKAKgswIgAygC9LMCayIAIABBH3UiAHMgAGtqIAMoApyzAiADKALwswJrIgAgAEEfdSIAcyAAa2pBCklxNgKEASAMQQA2AogBIAwgAygClLICIAMoAuiyAmsiACAAQR91IgBzIABrIAMoApiyAiADKALssgJrIgAgAEEfdSIAcyAAa2ogAygCkLICIAMoAuSyAmsiACAAQR91IgBzIABraiADKAKMsgIgAygC4LICayIAIABBH3UiAHMgAGtqIAMoAoiyAiADKALcsgJrIgAgAEEfdSIAcyAAa2pBCkkgAygCvLMCIAMoApC0AmsiACAAQR91IgBzIABrIAMoAsCzAiADKAKUtAJrIgAgAEEfdSIAcyAAa2ogAygCuLMCIAMoAoy0AmsiACAAQR91IgBzIABraiADKAK0swIgAygCiLQCayIAIABBH3UiAHMgAGtqIAMoArCzAiADKAKEtAJrIgAgAEEfdSIAcyAAa2pBCklxNgKIAQtB/x8gAygCkAQgAygCAG0iBCAEQf8fThshACADKAK0jQIiBQRAQQAhAUH/HyAAISMgAygCsI0CIgYgBUEDdEF2bWoiBSEiAn8gDCANQQN0akGQEWorAwBEzczMzMzMCECiIAS3oSJImUQAAAAAAADgQWMEQCBIqgwBC0GAgICAeAsiBEHlAE4EQCAGQQZsQQptIgEgBCABIARIGyEBCyAjICIgASABIAVIG2oiACAAQf8fThshAAsgGSANQbABbGogEEHYAGxqQdgAEAcgAyANQbgCbGogEEGcAWxqQZgMakGcARAHIAlCADcCCCAJQgA3AgAgEUIANwKsASARQQA2AqQBIBFCADcCnAEgEUIA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BQAHAAEABgABAAEAAAABAwYHAwMGBwYGBwgHBgcIBwADAAUAAQAGAAIAAwACAAUABAAEAAEAAwADAAIAAAADAwUHAwIEBQQEBQYGBQYHAQACAAoAEwAQAAoAAwADAAcACgAFAAMACwAEAA0AEQAIAAQADAALABIADwALAAIABwAGAAkADgADAAEABgAEAAUAAwACAEGACgskAQMGCAgJAwQGBwcIBgUHCAgJBwcICQkJBwcICQkKCAgJCgoKAEGwCgtFAwAEAAYAEgAMAAUABQABAAIAEAAJAAMABwADAAUADgAHAAMAEwARAA8ADQAKAAQADQAFAAgACwAFAAEADAAEAAQAAQABAEGACwskAgMGCAgJAwIECAgIBgQGCAgJCAgICQkKCAcICQoKCQgJCQsLAEGwCwtFBwAFAAkADgAPAAcABgAEAAUABQAGAAcABwAGAAgACAAIAAUADwAGAAkACgAFAAEACwAHAAkABgAEAAEADgAEAAYAAgAGAEGADAskAwMFBggJAwMEBQYIBAQFBgcIBgUGBwcIBwYHBwgJCAcICAkJAEGwDAugHQEAAgAKABcAIwAeAAwAEQADAAMACAAMABIAFQAMAAcACwAJAA8AFQAgACgAEwAGAA4ADQAWACIALgAXABIABwAUABMAIQAvABsAFgAJAAMAHwAWACkAGgAVABQABQADAA4ADQAKAAsAEAAGAAUAAQAJAAgABwAIAAQABAACAAAAAQMGCAkJCQoDBAYHCAkICAYGBwgJCgkJBwcICQoKCQoICAkKCgoKCgkJCgoLCwoLCAgJCgoKCwsJCAkKCgsLCwMABAAKABgAIgAhABUADwAFAAMABAAKACAAEQALAAoACwAHAA0AEgAeAB8AFAAFABkACwATADsAGwASAAwABQAjACEAHwA6AB4AEAAHAAUAHAAaACAAEwARAA8ACAAOAA4ADAAJAA0ADgAJAAQAAQALAAQABgAGAAYAAwACAAAAAgMFBwgJCAkDAwQGCAgHCAUFBgcICQgIBwYHCQgKCAkICAgJCQoJCggICQoKCwoLCAcHCAkKCgoIBwgJCgoKCgkABgAQACEAKQAnACYAGgAHAAUABgAJABcAEAAaAAsAEQAHAAsADgAVAB4ACgAHABEACgAPAAwAEgAcAA4ABQAgAA0AFgATABIAEAAJAAUAKAARAB8AHQARAA0ABAACABsADAALAA8ACgAHAAQAAQAbAAwACAAMAAYAAwABAAAABAMFBwgJCQkDAwQFBwcICAUEBQYHCAcIBgUGBgcICAgHBgcHCAgICQgHCAgICQgJCAcHCAgJCQoJCAgJCQkJCgEABQAOABUAIgAzAC4ARwAqADQARAA0AEMALAArABMAAwAEAAwAEwAfABoALAAhAB8AGAAgABgAHwAjABYADgAPAA0AFwAkADsAMQBNAEEAHQAoAB4AKAAbACEAKgAQABYAFAAlAD0AOABPAEkAQAArAEwAOAAlABoAHwAZAA4AIwAQADwAOQBhAEsAcgBbADYASQA3ACkAMAA1ABcAGAA6ABsAMgBgAEwARgBdAFQATQA6AE8AHQBKADEAKQARAC8ALQBOAEoAcwBeAFoATwBFAFMARwAyADsAJgAkAA8ASAAiADgAXwBcAFUAWwBaAFYASQBNAEEAMwAsACsAKgArABQAHgAsADcATgBIAFcATgA9AC4ANgAlAB4AFAAQADUAGQApACUALAA7ADYAUQBCAEwAOQA2ACUAEgAnAAsAIwAhAB8AOQAqAFIASABQAC8AOgA3ABUAFgAaACYAFgA1ABkAFwAmAEYAPAAzACQANwAaACIAFwAbAA4ACQAHACIAIAAcACcAMQBLAB4ANAAwACgANAAcABIAEQAJAAUALQAVACIAQAA4ADIAMQAtAB8AEwAMAA8ACgAHAAYAAwAwABcAFAAnACQAIwA1ABUAEAAXAA0ACgAGAAEABAACABAADwARABsAGQAUAB0ACwARAAwAEAAIAAEAAQAAAAEAAQQGBwgJCQoJCgsLDAwNDQMEBgcICAkJCQkKCgsMDAwGBgcICQkKCgkKCgsLDA0NBwcICQkKCgoKCwsLCwwNDQgHCQkKCgsLCgsLDAwNDQ4JCAkKCgoLCwsLDAsNDQ4OCQkKCgsLCwsLDAwMDQ0ODgoJCgsLCwwMDAwNDQ0OEBAJCAkKCgsLDAwMDA0NDg8PCgkKCgsLCw0MDQ0ODg4QDwoKCgsLDAwNDA0ODQ4PEBELCgoLDAwMDA0NDQ4PDw8QCwsLDAwNDA0ODg8PDxAQEAwLDA0NDQ4ODg4ODxAPEBANDAwNDQ0PDg4RDw8PERAQDAwNDg4ODw4PDxAQExITEAcADAASADUALwBMAHwAbABZAHsAbAB3AGsAUQB6AD8ADQAFABAAGwAuACQAPQAzACoARgA0AFMAQQApADsAJAATABEADwAYACkAIgA7ADAAKABAADIATgA+AFAAOAAhAB0AHAAZACsAJwA/ADcAXQBMADsAXQBIADYASwAyAB0ANAAWACoAKABDADkAXwBPAEgAOQBZAEUAMQBCAC4AGwBNACUAIwBCADoANABbAEoAPgAwAE8APwBaAD4AKAAmAH0AIAA8ADgAMgBcAE4AQQA3AFcARwAzAEkAMwBGAB4AbQA1ADEAXgBYAEsAQgB6AFsASQA4ACoAQAAsABUAGQBaACsAKQBNAEkAPwA4AFwATQBCAC8AQwAwADUAJAAUAEcAIgBDADwAOgAxAFgATABDAGoARwA2ACYAJwAXAA8AbQA1ADMALwBaAFIAOgA5ADAASAA5ACkAFwAbAD4ACQBWACoAKAAlAEYAQAA0ACsARgA3ACoAGQAdABIACwALAHYARAAeADcAMgAuAEoAQQAxACcAGAAQABYADQAOAAcAWwAsACcAJgAiAD8ANAAtAB8ANAAcABMADgAIAAkAAwB7ADwAOgA1AC8AKwAgABYAJQAYABEADAAPAAoAAgABAEcAJQAiAB4AHAAUABEAGgAVABAACgAGAAgABgACAAAAAwQFBwcICQkJCgoLCwsMDQQDBQYHBwgICAkJCgoKCwsFBQUGBwcICAgJCQoKCwsLBgYGBwcICAkJCQoKCgsLCwcGBwcICAkJCQkKCgoLCwsIBwcICAgJCQkJCgoLCwsMCQcICAgJCQkJCgoKCwsMDAkICAkJCQkKCgoKCgsLCwwJCAgJCQkJCgoKCgsLDAwMCQgJCQkJCgoKCwsLCwwMDAoJCQkKCgoKCgsLCwsMDQwKCQkJCgoKCgsLCwsMDAwNCwoJCgoKCwsLCwsLDAwNDQsKCgoKCwsLCwwMDAwMDQ0MCwsLCwsLCwwMDAwNDQwNDAsLCwsLCwwMDAwMDQ0NDQEABQAOACwASgA/AG4AXQCsAJUAigDyAOEAwwB4AREAAwAEAAwAFAAjAD4ANQAvAFMASwBEAHcAyQBrAM8ACQAPAA0AFwAmAEMAOgBnAFoAoQBIAH8AdQBuANEAzgAQAC0AFQAnAEUAQAByAGMAVwCeAIwA/ADUAMcAgwFtARoASwAkAEQAQQBzAGUAswCkAJsACAH2AOIAiwF+AWoBCQBCAB4AOwA4AGYAuQCtAAkBjgD9AOgAkAGEAXoBvQEQAG8ANgA0AGQAuACyAKAAhQABAfQA5ADZAIEBbgHLAgoAYgAwAFsAWAClAJ0AlAAFAfgAlwGNAXQBfAF5A3QDCABVAFQAUQCfAJwAjwAEAfkAqwGRAYgBfwHXAskCxAIHAJoATABJAI0AgwAAAfUAqgGWAYoBgAHfAmcBxgJgAQsAiwCBAEMAfQD3AOkA5QDbAIkB5wLhAtACdQNyA7cBBADzAHgAdgBzAOMA3wCMAeoC5gLgAtECyALCAt8AtAEGAMoA4ADeANoA2ACFAYIBfQFsAXgDuwHDArgBtQHABgQA6wLTANIA0AByAXsB3gLTAsoCxwZzA20DbAODDWEDAgB5AXEBZgC7ANYC0gJmAccCxQJiA8YGZwOCDWYDsgEAAAwACgAHAAsACgARAAsACQANAAwACgAHAAUAAwABAAMAAQQGCAkJCgoLCwsMDAwNCQMEBgcICQkJCgoKCwwLDAgGBgcICQkKCgsKCwsLDAwJCAcICQkKCgoLCwwMDA0NCgkICQkKCgsLCwwMDA0NDQkJCAkJCgsLDAsMDA0NDQ4KCgkJCgsLCwsMDAwMDQ0OCgoJCgoLCwsMDA0NDQ0PDwoKCgoLCwsMDA0NDQ0ODg4KCwoKCwsMDA0NDQ0ODQ4NCwsLCgsMDAwMDQ4ODg8PDgoMCwsLDAwNDg4ODg4ODQ4LDAwMDAwNDQ0NDw4ODg4QCw4MDAwNDQ4ODhAPDw8RDwsNDQsMDg4NDg4PEA8RDw4LCQgICQkKCgoLCwsLCwsLCA8ADQAuAFAAkgAGAfgAsgGqAZ0CjQKJAm0CBQIIBFgADgAMABUAJgBHAIIAegDYANEAxgBHAVkBPwEpARcBKgAvABYAKQBKAEQAgAB4AN0AzwDCALYAVAE7AScBHQISAFEAJwBLAEYAhgB9AHQA3ADMAL4AsgBFATcBJQEPARAAkwBIAEUAhwB/AHYAcADSAMgAvABgAUMBMgEdARwCDgAHAUIAgQB+AHcAcgDWAMoAwAC0AFUBPQEtARkBBgEMAPkAewB5AHUAcQDXAM4AwwC5AFsBSgE0ASMBEAEIAgoAswFzAG8AbQDTAMsAxAC7AGEBTAE5ASoBGwETAn0BEQCrAdQA0ADNAMkAwQC6ALEAqQBAAS8BHgEMAQICeQEQAE8BxwDFAL8AvQC1AK4ATQFBATEBIQETAQkCewFzAQsAnAK4ALcAswCvAFgBSwE6ATABIgEVARICfwF1AW4BCgCMAloBqwCoAKQAPgE1ASsBHwEUAQcBAQJ3AXABagEGAIgCQgE8ATgBMwEuASQBHAENAQUBAAJ4AXIBbAFnAQQAbAIsASgBJgEgARoBEQEKAQMCfAF2AXEBbQFpAWUBAgAJBBgBFgESAQsBCAEDAX4BegF0AW8BawFoAWYBZAEAACsAFAATABEADwANAAsACQAHAAYABAAHAAUAAwABAAMABAQGBwgJCQoKCwsLCwsMCQQEBQYHCAgJCQkKCgoKCggGBQYHBwgICQkJCQoKCgsHBwYHBwgICAkJCQkKCgoKBwgHBwgICAgJCQkKCgoKCwcJBwgICAgJCQkJCgoKCgoHCQgICAgJCQkJCgoKCgoLBwoICAgJCQkJCgoKCgoLCwgKCQkJCQkJCQkKCgoKCwsICgkJCQkJCQoKCgoKCwsLCAsJCQkJCgoKCgoKCwsLCwgLCgkJCQoKCgoKCgsLCwsICwoKCgoKCgoKCgsLCwsLCAsKCgoKCgoKCwsLCwsLCwgMCgoKCgoKCwsLCwsLCwsICAcHBwcHBwcHBwcICAgIBAEABQAEAAUABgAFAAQABAAHAAMABgAAAAcAAgADAAEAAQQEBQQGBQYEBQUGBQYGBg8ADgANAAwACwAKAAkACAAHAAYABQAEAAMAAgABAAAABAQEBAQEBAQEBAQEBAQEBABB6CkLBQIAAAACAEH5KQsMBAAACAQAAAMAAAADAEGQKgsNEAQAACIEAAADAAAAAwBBqCoLBjAEAABCBABByCoLBQQAAAAEAEHYKgsNUAQAAHAEAAAEAAAABABB8CoLDYAEAACgBAAABgAAAAYAQYgrCw2wBAAAAAUAAAYAAAAGAEGgKwsNMAUAAIAFAAAGAAAABgBBuCsLDbAFAAAABgAACAAAAAgAQdArCw0wBgAAsAYAAAgAAAAIAEHoKwsN8AYAAHAHAAAIAAAACABBgCwLDbAHAAAwCAAAEAAAABAAQZgsCwZwCAAAcAoAQbgsCwUQAAAAEABByCwLjQNwCwAAcA0AABAAAAAQAAAAAQAAAAEAAABwDgAAcBAAABAAAAAQAAAAAgAAAAMAAABwDgAAcBAAABAAAAAQAAAAAwAAAAcAAABwDgAAcBAAABAAAAAQAAAABAAAAA8AAABwDgAAcBAAABAAAAAQAAAABgAAAD8AAABwDgAAcBAAABAAAAAQAAAACAAAAP8AAABwDgAAcBAAABAAAAAQAAAACgAAAP8DAABwDgAAcBAAABAAAAAQAAAADQAAAP8fAABwDgAAcBAAABAAAAAQAAAABAAAAA8AAABwEQAAcBMAABAAAAAQAAAABQAAAB8AAABwEQAAcBMAABAAAAAQAAAABgAAAD8AAABwEQAAcBMAABAAAAAQAAAABwAAAH8AAABwEQAAcBMAABAAAAAQAAAACAAAAP8AAABwEQAAcBMAABAAAAAQAAAACQAAAP8BAABwEQAAcBMAABAAAAAQAAAACwAAAP8HAABwEQAAcBMAABAAAAAQAAAADQAAAP8fAABwEQAAcBMAAAEAAAAQAEHgLwsNcBQAAJAUAAABAAAAEABB+C8LBqAUAADAFABBrDALiQEBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAIAAAADAAAAAwAAAAQAAAADAAAABAAAAAMAAAAEAAAABAAAAAUAAAAEAAAABQAAAAQAAAAGAAAABQAAAAYAAAAFAAAABgAAAAUAAAAHAAAABgAAAAcAAAAGAAAABwBBwDELDQEAAAD/////AQAAAAIAQeAxC5IBAwAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAQAAAAEAAAAAAAAAAEAAAACAAAAAwAAAAAAAAABAAAAAgAAAAMAAAABAAAAAgAAAAMAAAABAAAAAgAAAAMAAAACAAAAAwAAAESsAACAuwAAAH0AACJWAADAXQAAgD4AABErAADgLgAAQB8AQYAzC7oI/////////////////////wgAAAD/////CAAAACAAAAAQAAAA/////xAAAAAoAAAAGAAAAP////8YAAAAMAAAACAAAAD/////IAAAADgAAAAoAAAA/////ygAAABAAAAAMAAAAP////8wAAAAUAAAADgAAAD/////OAAAAGAAAABAAAAA/////0AAAABwAAAA//////////9QAAAAgAAAAP//////////YAAAAKAAAAD//////////3AAAADAAAAA//////////+AAAAA4AAAAP//////////kAAAAAABAAD//////////6AAAABAAQAA/////////////////////wAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAeAAAAJAAAACwAAAA0AAAAPgAAAEoAAABaAAAAbgAAAIYAAACiAAAAxAAAAO4AAAAgAQAAVgEAAKIBAABAAgAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAB4AAAAkAAAAKgAAADIAAAA8AAAASAAAAFgAAABqAAAAgAAAAJwAAAC+AAAA5gAAABQBAABKAQAAgAEAAEACAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABSAAAAZgAAAH4AAACcAAAAwgAAAPAAAAAoAQAAbAEAAMABAAAmAgAAQAIAAAAAAAAGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHQAAACMAAAAqAAAAMgAAADuAAAAHAEAAFABAACMAQAA0AEAAAoCAABAAgAAAAAAAAYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAcgAAAIgAAACiAAAAwgAAAOgAAAAWAQAASgEAAIoBAADQAQAAHAIAAEACAAAAAAAABgAAAAwAAAASAAAAGAAAAB4AAAAkAAAALAAAAC0AAABCAAAAUAAAAGAAAAB0AAAAjAAAAKgAAADIAAAA7gAAAPgAAABQAQAAjAEAANABAAAKAgAAQAIAAAAAAAAGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHQAAACMAAAAqAAAAMgAAADuAAAAHAEAAFABAACMAQAA0AEAAAoCAABAAgAAAAAAAAYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAdAAAAIwAAACoAAAAyAAAAO4AAAAcAQAAUAEAAIwBAADQAQAACgIAAEACAAAAAAAADAAAABgAAAAkAAAAMAAAADwAAABIAAAAWAAAAGwAAACEAAAAoAAAAMAAAADoAAAAGAEAAFABAACQAQAA3AEAADYCAAA4AgAAOgIAADwCAAA+AgAAQAIAQdw7C8oPnff//533//+d9///nff//533//+d9///Ou///zrv//86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";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["c"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["o"];addOnInit(Module["asm"]["d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}return null}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ASSERTIONS=false;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var asmLibraryArg={"b":_emscripten_memcpy_big,"a":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["e"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["f"]).apply(null,arguments)};var _shine_check_config=Module["_shine_check_config"]=function(){return(_shine_check_config=Module["_shine_check_config"]=Module["asm"]["g"]).apply(null,arguments)};var _shine_samples_per_pass=Module["_shine_samples_per_pass"]=function(){return(_shine_samples_per_pass=Module["_shine_samples_per_pass"]=Module["asm"]["h"]).apply(null,arguments)};var _shine_encode_buffer=Module["_shine_encode_buffer"]=function(){return(_shine_encode_buffer=Module["_shine_encode_buffer"]=Module["asm"]["i"]).apply(null,arguments)};var _shine_flush=Module["_shine_flush"]=function(){return(_shine_flush=Module["_shine_flush"]=Module["asm"]["j"]).apply(null,arguments)};var _shine_close=Module["_shine_close"]=function(){return(_shine_close=Module["_shine_close"]=Module["asm"]["k"]).apply(null,arguments)};var _shine_js_int16_len=Module["_shine_js_int16_len"]=function(){return(_shine_js_int16_len=Module["_shine_js_int16_len"]=Module["asm"]["l"]).apply(null,arguments)};var _shine_js_ptr_len=Module["_shine_js_ptr_len"]=function(){return(_shine_js_ptr_len=Module["_shine_js_ptr_len"]=Module["asm"]["m"]).apply(null,arguments)};var _shine_js_init=Module["_shine_js_init"]=function(){return(_shine_js_init=Module["_shine_js_init"]=Module["asm"]["n"]).apply(null,arguments)};Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
-+
-+
-+ return createModule.ready
-+}
-+);
-+})();
-+export default createModule;
-\ No newline at end of file
-diff --git a/js/dist/libshine_node.js b/js/dist/libshine_node.js
-new file mode 100644
-index 0000000..02d7990
---- /dev/null
-+++ b/js/dist/libshine_node.js
-@@ -0,0 +1 @@
-+var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,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/LECIAMoAtCyAmsiBiAGQR91IgZzIAZraiADKAL4sQIiBiADKALMsgJrIgggCEEfdSIIcyAIa2ogAygC9LECIAMoAsiyAiIIayIKIApBH3UiCnMgCmtqIAMoAvCxAiADKALEsgIiCmsiByAHQR91IgdzIAdraiADKALssQIgAygCwLICayIHIAdBH3UiB3MgB2tqIAMoAuixAiIHIAMoAryyAmsiCyALQR91IgtzIAtramogAygC4LECIAMoArSyAiILayIOIA5BH3UiDnMgDmtqIAMoAtyxAiADKAKwsgIiDmsiEiASQR91IhJzIBJraiADKALYsQIiEiADKAKssgJrIhMgE0EfdSITcyATa2pqaiADKALMsQIgAygCoLICIhNrIhQgFEEfdSIUcyAUa2ogAygCyLECIhQgAygCnLICayIWIBZBH3UiFnMgFmtqQeQASWpBBkcEQCAMQgA3AnwgDEIANwKEAQwBCyAMQQA2AnwgDCAAIAFqIAMoAtyxAiAOayIAIABBH3UiAHMgAGtqIBIgAygCrLICayIAIABBH3UiAHMgAGtqIAMoAsyxAiATayIAIABBH3UiAHMgAGtqIBQgAygCnLICayIAIABBH3UiAHMgAGtqQQpJIAMoAoCzAiADKALUswJrIgAgAEEfdSIAcyAAayADKAKEswIgAygC2LMCayIAIABBH3UiAHMgAGtqIAMoAvyyAiADKALQswJrIgAgAEEfdSIAcyAAa2ogAygC+LICIAMoAsyzAmsiACAAQR91IgBzIABraiADKAL0sgIgAygCyLMCayIAIABBH3UiAHMgAGtqIAMoAvCyAiADKALEswJrIgAgAEEfdSIAcyAAa2pBCklxNgJ8IAxBADYCgAEgDCADKALwsQIgCmsiACAAQR91IgBzIABrIARqIAMoAuyxAiADKALAsgJrIgAgAEEfdSIAcyAAa2ogByADKAK8sgJrIgAgAEEfdSIAcyAAa2ogAygC4LECIAtrIgAgAEEfdSIAcyAAa2pBCkkgAygClLMCIAMoAuizAmsiACAAQR91IgBzIABrIAMoApizAiADKALsswJrIgAgAEEfdSIAcyAAa2ogAygCkLMCIAMoAuSzAmsiACAAQR91IgBzIABraiADKAKMswIgAygC4LMCayIAIABBH3UiAHMgAGtqIAMoAoizAiADKALcswJrIgAgAEEfdSIAcyAAa2pBCklxNgKAASAMQQA2AoQBIAwgAygCgLICIAMoAtSyAmsiACAAQR91IgBzIABrIAMoAoSyAiAFayIAIABBH3UiAHMgAGtqIAMoAvyxAiADKALQsgJrIgAgAEEfdSIAcyAAa2ogBiADKALMsgJrIgAgAEEfdSIAcyAAa2ogAygC9LECIAhrIgAgAEEfdSIAcyAAa2pBCkkgAygCqLMCIAMoAvyzAmsiACAAQR91IgBzIABrIAMoAqyzAiADKAKAtAJrIgAgAEEfdSIAcyAAa2ogAygCpLMCIAMoAvizAmsiACAAQR91IgBzIABraiADKAKgswIgAygC9LMCayIAIABBH3UiAHMgAGtqIAMoApyzAiADKALwswJrIgAgAEEfdSIAcyAAa2pBCklxNgKEASAMQQA2AogBIAwgAygClLICIAMoAuiyAmsiACAAQR91IgBzIABrIAMoApiyAiADKALssgJrIgAgAEEfdSIAcyAAa2ogAygCkLICIAMoAuSyAmsiACAAQR91IgBzIABraiADKAKMsgIgAygC4LICayIAIABBH3UiAHMgAGtqIAMoAoiyAiADKALcsgJrIgAgAEEfdSIAcyAAa2pBCkkgAygCvLMCIAMoApC0AmsiACAAQR91IgBzIABrIAMoAsCzAiADKAKUtAJrIgAgAEEfdSIAcyAAa2ogAygCuLMCIAMoAoy0AmsiACAAQR91IgBzIABraiADKAK0swIgAygCiLQCayIAIABBH3UiAHMgAGtqIAMoArCzAiADKAKEtAJrIgAgAEEfdSIAcyAAa2pBCklxNgKIAQtB/x8gAygCkAQgAygCAG0iBCAEQf8fThshACADKAK0jQIiBQRAQQAhAUH/HyAAISMgAygCsI0CIgYgBUEDdEF2bWoiBSEiAn8gDCANQQN0akGQEWorAwBEzczMzMzMCECiIAS3oSJImUQAAAAAAADgQWMEQCBIqgwBC0GAgICAeAsiBEHlAE4EQCAGQQZsQQptIgEgBCABIARIGyEBCyAjICIgASABIAVIG2oiACAAQf8fThshAAsgGSANQbABbGogEEHYAGxqQdgAEAcgAyANQbgCbGogEEGcAWxqQZgMakGcARAHIAlCADcCCCAJQgA3AgAgEUIANwKsASARQQA2AqQBIBFCADcCnAEgEUIA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BQAHAAEABgABAAEAAAABAwYHAwMGBwYGBwgHBgcIBwADAAUAAQAGAAIAAwACAAUABAAEAAEAAwADAAIAAAADAwUHAwIEBQQEBQYGBQYHAQACAAoAEwAQAAoAAwADAAcACgAFAAMACwAEAA0AEQAIAAQADAALABIADwALAAIABwAGAAkADgADAAEABgAEAAUAAwACAEGACgskAQMGCAgJAwQGBwcIBgUHCAgJBwcICQkJBwcICQkKCAgJCgoKAEGwCgtFAwAEAAYAEgAMAAUABQABAAIAEAAJAAMABwADAAUADgAHAAMAEwARAA8ADQAKAAQADQAFAAgACwAFAAEADAAEAAQAAQABAEGACwskAgMGCAgJAwIECAgIBgQGCAgJCAgICQkKCAcICQoKCQgJCQsLAEGwCwtFBwAFAAkADgAPAAcABgAEAAUABQAGAAcABwAGAAgACAAIAAUADwAGAAkACgAFAAEACwAHAAkABgAEAAEADgAEAAYAAgAGAEGADAskAwMFBggJAwMEBQYIBAQFBgcIBgUGBwcIBwYHBwgJCAcICAkJAEGwDAugHQEAAgAKABcAIwAeAAwAEQADAAMACAAMABIAFQAMAAcACwAJAA8AFQAgACgAEwAGAA4ADQAWACIALgAXABIABwAUABMAIQAvABsAFgAJAAMAHwAWACkAGgAVABQABQADAA4ADQAKAAsAEAAGAAUAAQAJAAgABwAIAAQABAACAAAAAQMGCAkJCQoDBAYHCAkICAYGBwgJCgkJBwcICQoKCQoICAkKCgoKCgkJCgoLCwoLCAgJCgoKCwsJCAkKCgsLCwMABAAKABgAIgAhABUADwAFAAMABAAKACAAEQALAAoACwAHAA0AEgAeAB8AFAAFABkACwATADsAGwASAAwABQAjACEAHwA6AB4AEAAHAAUAHAAaACAAEwARAA8ACAAOAA4ADAAJAA0ADgAJAAQAAQALAAQABgAGAAYAAwACAAAAAgMFBwgJCAkDAwQGCAgHCAUFBgcICQgIBwYHCQgKCAkICAgJCQoJCggICQoKCwoLCAcHCAkKCgoIBwgJCgoKCgkABgAQACEAKQAnACYAGgAHAAUABgAJABcAEAAaAAsAEQAHAAsADgAVAB4ACgAHABEACgAPAAwAEgAcAA4ABQAgAA0AFgATABIAEAAJAAUAKAARAB8AHQARAA0ABAACABsADAALAA8ACgAHAAQAAQAbAAwACAAMAAYAAwABAAAABAMFBwgJCQkDAwQFBwcICAUEBQYHCAcIBgUGBgcICAgHBgcHCAgICQgHCAgICQgJCAcHCAgJCQoJCAgJCQkJCgEABQAOABUAIgAzAC4ARwAqADQARAA0AEMALAArABMAAwAEAAwAEwAfABoALAAhAB8AGAAgABgAHwAjABYADgAPAA0AFwAkADsAMQBNAEEAHQAoAB4AKAAbACEAKgAQABYAFAAlAD0AOABPAEkAQAArAEwAOAAlABoAHwAZAA4AIwAQADwAOQBhAEsAcgBbADYASQA3ACkAMAA1ABcAGAA6ABsAMgBgAEwARgBdAFQATQA6AE8AHQBKADEAKQARAC8ALQBOAEoAcwBeAFoATwBFAFMARwAyADsAJgAkAA8ASAAiADgAXwBcAFUAWwBaAFYASQBNAEEAMwAsACsAKgArABQAHgAsADcATgBIAFcATgA9AC4ANgAlAB4AFAAQADUAGQApACUALAA7ADYAUQBCAEwAOQA2ACUAEgAnAAsAIwAhAB8AOQAqAFIASABQAC8AOgA3ABUAFgAaACYAFgA1ABkAFwAmAEYAPAAzACQANwAaACIAFwAbAA4ACQAHACIAIAAcACcAMQBLAB4ANAAwACgANAAcABIAEQAJAAUALQAVACIAQAA4ADIAMQAtAB8AEwAMAA8ACgAHAAYAAwAwABcAFAAnACQAIwA1ABUAEAAXAA0ACgAGAAEABAACABAADwARABsAGQAUAB0ACwARAAwAEAAIAAEAAQAAAAEAAQQGBwgJCQoJCgsLDAwNDQMEBgcICAkJCQkKCgsMDAwGBgcICQkKCgkKCgsLDA0NBwcICQkKCgoKCwsLCwwNDQgHCQkKCgsLCgsLDAwNDQ4JCAkKCgoLCwsLDAsNDQ4OCQkKCgsLCwsLDAwMDQ0ODgoJCgsLCwwMDAwNDQ0OEBAJCAkKCgsLDAwMDA0NDg8PCgkKCgsLCw0MDQ0ODg4QDwoKCgsLDAwNDA0ODQ4PEBELCgoLDAwMDA0NDQ4PDw8QCwsLDAwNDA0ODg8PDxAQEAwLDA0NDQ4ODg4ODxAPEBANDAwNDQ0PDg4RDw8PERAQDAwNDg4ODw4PDxAQExITEAcADAASADUALwBMAHwAbABZAHsAbAB3AGsAUQB6AD8ADQAFABAAGwAuACQAPQAzACoARgA0AFMAQQApADsAJAATABEADwAYACkAIgA7ADAAKABAADIATgA+AFAAOAAhAB0AHAAZACsAJwA/ADcAXQBMADsAXQBIADYASwAyAB0ANAAWACoAKABDADkAXwBPAEgAOQBZAEUAMQBCAC4AGwBNACUAIwBCADoANABbAEoAPgAwAE8APwBaAD4AKAAmAH0AIAA8ADgAMgBcAE4AQQA3AFcARwAzAEkAMwBGAB4AbQA1ADEAXgBYAEsAQgB6AFsASQA4ACoAQAAsABUAGQBaACsAKQBNAEkAPwA4AFwATQBCAC8AQwAwADUAJAAUAEcAIgBDADwAOgAxAFgATABDAGoARwA2ACYAJwAXAA8AbQA1ADMALwBaAFIAOgA5ADAASAA5ACkAFwAbAD4ACQBWACoAKAAlAEYAQAA0ACsARgA3ACoAGQAdABIACwALAHYARAAeADcAMgAuAEoAQQAxACcAGAAQABYADQAOAAcAWwAsACcAJgAiAD8ANAAtAB8ANAAcABMADgAIAAkAAwB7ADwAOgA1AC8AKwAgABYAJQAYABEADAAPAAoAAgABAEcAJQAiAB4AHAAUABEAGgAVABAACgAGAAgABgACAAAAAwQFBwcICQkJCgoLCwsMDQQDBQYHBwgICAkJCgoKCwsFBQUGBwcICAgJCQoKCwsLBgYGBwcICAkJCQoKCgsLCwcGBwcICAkJCQkKCgoLCwsIBwcICAgJCQkJCgoLCwsMCQcICAgJCQkJCgoKCwsMDAkICAkJCQkKCgoKCgsLCwwJCAgJCQkJCgoKCgsLDAwMCQgJCQkJCgoKCwsLCwwMDAoJCQkKCgoKCgsLCwsMDQwKCQkJCgoKCgsLCwsMDAwNCwoJCgoKCwsLCwsLDAwNDQsKCgoKCwsLCwwMDAwMDQ0MCwsLCwsLCwwMDAwNDQwNDAsLCwsLCwwMDAwMDQ0NDQEABQAOACwASgA/AG4AXQCsAJUAigDyAOEAwwB4AREAAwAEAAwAFAAjAD4ANQAvAFMASwBEAHcAyQBrAM8ACQAPAA0AFwAmAEMAOgBnAFoAoQBIAH8AdQBuANEAzgAQAC0AFQAnAEUAQAByAGMAVwCeAIwA/ADUAMcAgwFtARoASwAkAEQAQQBzAGUAswCkAJsACAH2AOIAiwF+AWoBCQBCAB4AOwA4AGYAuQCtAAkBjgD9AOgAkAGEAXoBvQEQAG8ANgA0AGQAuACyAKAAhQABAfQA5ADZAIEBbgHLAgoAYgAwAFsAWAClAJ0AlAAFAfgAlwGNAXQBfAF5A3QDCABVAFQAUQCfAJwAjwAEAfkAqwGRAYgBfwHXAskCxAIHAJoATABJAI0AgwAAAfUAqgGWAYoBgAHfAmcBxgJgAQsAiwCBAEMAfQD3AOkA5QDbAIkB5wLhAtACdQNyA7cBBADzAHgAdgBzAOMA3wCMAeoC5gLgAtECyALCAt8AtAEGAMoA4ADeANoA2ACFAYIBfQFsAXgDuwHDArgBtQHABgQA6wLTANIA0AByAXsB3gLTAsoCxwZzA20DbAODDWEDAgB5AXEBZgC7ANYC0gJmAccCxQJiA8YGZwOCDWYDsgEAAAwACgAHAAsACgARAAsACQANAAwACgAHAAUAAwABAAMAAQQGCAkJCgoLCwsMDAwNCQMEBgcICQkJCgoKCwwLDAgGBgcICQkKCgsKCwsLDAwJCAcICQkKCgoLCwwMDA0NCgkICQkKCgsLCwwMDA0NDQkJCAkJCgsLDAsMDA0NDQ4KCgkJCgsLCwsMDAwMDQ0OCgoJCgoLCwsMDA0NDQ0PDwoKCgoLCwsMDA0NDQ0ODg4KCwoKCwsMDA0NDQ0ODQ4NCwsLCgsMDAwMDQ4ODg8PDgoMCwsLDAwNDg4ODg4ODQ4LDAwMDAwNDQ0NDw4ODg4QCw4MDAwNDQ4ODhAPDw8RDwsNDQsMDg4NDg4PEA8RDw4LCQgICQkKCgoLCwsLCwsLCA8ADQAuAFAAkgAGAfgAsgGqAZ0CjQKJAm0CBQIIBFgADgAMABUAJgBHAIIAegDYANEAxgBHAVkBPwEpARcBKgAvABYAKQBKAEQAgAB4AN0AzwDCALYAVAE7AScBHQISAFEAJwBLAEYAhgB9AHQA3ADMAL4AsgBFATcBJQEPARAAkwBIAEUAhwB/AHYAcADSAMgAvABgAUMBMgEdARwCDgAHAUIAgQB+AHcAcgDWAMoAwAC0AFUBPQEtARkBBgEMAPkAewB5AHUAcQDXAM4AwwC5AFsBSgE0ASMBEAEIAgoAswFzAG8AbQDTAMsAxAC7AGEBTAE5ASoBGwETAn0BEQCrAdQA0ADNAMkAwQC6ALEAqQBAAS8BHgEMAQICeQEQAE8BxwDFAL8AvQC1AK4ATQFBATEBIQETAQkCewFzAQsAnAK4ALcAswCvAFgBSwE6ATABIgEVARICfwF1AW4BCgCMAloBqwCoAKQAPgE1ASsBHwEUAQcBAQJ3AXABagEGAIgCQgE8ATgBMwEuASQBHAENAQUBAAJ4AXIBbAFnAQQAbAIsASgBJgEgARoBEQEKAQMCfAF2AXEBbQFpAWUBAgAJBBgBFgESAQsBCAEDAX4BegF0AW8BawFoAWYBZAEAACsAFAATABEADwANAAsACQAHAAYABAAHAAUAAwABAAMABAQGBwgJCQoKCwsLCwsMCQQEBQYHCAgJCQkKCgoKCggGBQYHBwgICQkJCQoKCgsHBwYHBwgICAkJCQkKCgoKBwgHBwgICAgJCQkKCgoKCwcJBwgICAgJCQkJCgoKCgoHCQgICAgJCQkJCgoKCgoLBwoICAgJCQkJCgoKCgoLCwgKCQkJCQkJCQkKCgoKCwsICgkJCQkJCQoKCgoKCwsLCAsJCQkJCgoKCgoKCwsLCwgLCgkJCQoKCgoKCgsLCwsICwoKCgoKCgoKCgsLCwsLCAsKCgoKCgoKCwsLCwsLCwgMCgoKCgoKCwsLCwsLCwsICAcHBwcHBwcHBwcICAgIBAEABQAEAAUABgAFAAQABAAHAAMABgAAAAcAAgADAAEAAQQEBQQGBQYEBQUGBQYGBg8ADgANAAwACwAKAAkACAAHAAYABQAEAAMAAgABAAAABAQEBAQEBAQEBAQEBAQEBABB6CkLBQIAAAACAEH5KQsMBAAACAQAAAMAAAADAEGQKgsNEAQAACIEAAADAAAAAwBBqCoLBjAEAABCBABByCoLBQQAAAAEAEHYKgsNUAQAAHAEAAAEAAAABABB8CoLDYAEAACgBAAABgAAAAYAQYgrCw2wBAAAAAUAAAYAAAAGAEGgKwsNMAUAAIAFAAAGAAAABgBBuCsLDbAFAAAABgAACAAAAAgAQdArCw0wBgAAsAYAAAgAAAAIAEHoKwsN8AYAAHAHAAAIAAAACABBgCwLDbAHAAAwCAAAEAAAABAAQZgsCwZwCAAAcAoAQbgsCwUQAAAAEABByCwLjQNwCwAAcA0AABAAAAAQAAAAAQAAAAEAAABwDgAAcBAAABAAAAAQAAAAAgAAAAMAAABwDgAAcBAAABAAAAAQAAAAAwAAAAcAAABwDgAAcBAAABAAAAAQAAAABAAAAA8AAABwDgAAcBAAABAAAAAQAAAABgAAAD8AAABwDgAAcBAAABAAAAAQAAAACAAAAP8AAABwDgAAcBAAABAAAAAQAAAACgAAAP8DAABwDgAAcBAAABAAAAAQAAAADQAAAP8fAABwDgAAcBAAABAAAAAQAAAABAAAAA8AAABwEQAAcBMAABAAAAAQAAAABQAAAB8AAABwEQAAcBMAABAAAAAQAAAABgAAAD8AAABwEQAAcBMAABAAAAAQAAAABwAAAH8AAABwEQAAcBMAABAAAAAQAAAACAAAAP8AAABwEQAAcBMAABAAAAAQAAAACQAAAP8BAABwEQAAcBMAABAAAAAQAAAACwAAAP8HAABwEQAAcBMAABAAAAAQAAAADQAAAP8fAABwEQAAcBMAAAEAAAAQAEHgLwsNcBQAAJAUAAABAAAAEABB+C8LBqAUAADAFABBrDALiQEBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAIAAAADAAAAAwAAAAQAAAADAAAABAAAAAMAAAAEAAAABAAAAAUAAAAEAAAABQAAAAQAAAAGAAAABQAAAAYAAAAFAAAABgAAAAUAAAAHAAAABgAAAAcAAAAGAAAABwBBwDELDQEAAAD/////AQAAAAIAQeAxC5IBAwAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAQAAAAEAAAAAAAAAAEAAAACAAAAAwAAAAAAAAABAAAAAgAAAAMAAAABAAAAAgAAAAMAAAABAAAAAgAAAAMAAAACAAAAAwAAAESsAACAuwAAAH0AACJWAADAXQAAgD4AABErAADgLgAAQB8AQYAzC7oI/////////////////////wgAAAD/////CAAAACAAAAAQAAAA/////xAAAAAoAAAAGAAAAP////8YAAAAMAAAACAAAAD/////IAAAADgAAAAoAAAA/////ygAAABAAAAAMAAAAP////8wAAAAUAAAADgAAAD/////OAAAAGAAAABAAAAA/////0AAAABwAAAA//////////9QAAAAgAAAAP//////////YAAAAKAAAAD//////////3AAAADAAAAA//////////+AAAAA4AAAAP//////////kAAAAAABAAD//////////6AAAABAAQAA/////////////////////wAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAeAAAAJAAAACwAAAA0AAAAPgAAAEoAAABaAAAAbgAAAIYAAACiAAAAxAAAAO4AAAAgAQAAVgEAAKIBAABAAgAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAB4AAAAkAAAAKgAAADIAAAA8AAAASAAAAFgAAABqAAAAgAAAAJwAAAC+AAAA5gAAABQBAABKAQAAgAEAAEACAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABSAAAAZgAAAH4AAACcAAAAwgAAAPAAAAAoAQAAbAEAAMABAAAmAgAAQAIAAAAAAAAGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHQAAACMAAAAqAAAAMgAAADuAAAAHAEAAFABAACMAQAA0AEAAAoCAABAAgAAAAAAAAYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAcgAAAIgAAACiAAAAwgAAAOgAAAAWAQAASgEAAIoBAADQAQAAHAIAAEACAAAAAAAABgAAAAwAAAASAAAAGAAAAB4AAAAkAAAALAAAAC0AAABCAAAAUAAAAGAAAAB0AAAAjAAAAKgAAADIAAAA7gAAAPgAAABQAQAAjAEAANABAAAKAgAAQAIAAAAAAAAGAAAADAAAABIAAAAYAAAAHgAAACQAAAAsAAAANgAAAEIAAABQAAAAYAAAAHQAAACMAAAAqAAAAMgAAADuAAAAHAEAAFABAACMAQAA0AEAAAoCAABAAgAAAAAAAAYAAAAMAAAAEgAAABgAAAAeAAAAJAAAACwAAAA2AAAAQgAAAFAAAABgAAAAdAAAAIwAAACoAAAAyAAAAO4AAAAcAQAAUAEAAIwBAADQAQAACgIAAEACAAAAAAAADAAAABgAAAAkAAAAMAAAADwAAABIAAAAWAAAAGwAAACEAAAAoAAAAMAAAADoAAAAGAEAAFABAACQAQAA3AEAADYCAAA4AgAAOgIAADwCAAA+AgAAQAIAQdw7C8oPnff//533//+d9///nff//533//+d9///Ou///zrv//867///Ou///9bm///W5v//1ub//3Pe//9z3v//D9b//w/W//+szf//SMX//+W8///lvP//gbT//x6s//+6o///V5v//5CK//8sgv//ZXH//wJp//87WP//10///xA///9JLv//HxX//1gE//+R8/7/Z9r+/zzB/v8SqP7/S5f+/yB+/v+SXP7/aEP+/z0q/v+vCP7/he/9/1vW/f/NtP3/opv9/xR6/f+GWP3/XD/9/zEm/f+jBP3/3fP8/7La/P+Iwfz/o1cDAGpoAwAxeQMAlIEDAPiJAwBbkgMAW5IDAPiJAwCUgQMAzXADAAZgAwB4PgMA6hwDAPnyAgCkwAIAT44CADNLAgC0/wEA0asBAItPAQB+4gAAcHUAAJ33//9lcf//yuL+/2hD/v+im/3/eev8/+wy/P+Zafv/4pf6/8e9+f/m0vj/BOj3/1zs9v9Q6PX/ROT0/9TX8/8Bw/L/y6Xx/zGA8P/6Yu//YD3u/8YX7f8t8uv/k8zq/1yv6f+Jmuj/toXn/0d55v87deX/9oHk/3if4/9dxeL/bQTi/0RU4f9FveD/cT/g/8fa3/+rl9//um3f/1Zl3/+Bft//ncHf/1bRHwC7Qh8Ay4EeAOmWHQCzeRwAJyobAKuwGQB2/BcA6xUWAA39EwB1qREA7CsPAEhrDADrbwkAnEoGADLiAgDXT///w4L7//d69/85SfP/JuXu/75O6v9ljuX/G6Tg/0KY2/94Ytb/hBPR/wKjy/9VGcb/RYfA/wrcuv/PMLX/MX2v/5PJqf+8JqT/SIye//8Kmf/gopP/s2SO/xNIif8sZoT//r5//4dSe/+QMXf/fGRz/67zb/8n32z/EEBq/6MFaP8LSWb/qhJl/4FiZP9WSWT/Ksdk/2HkZf9dqWf/gh5q/zRMbf9zMnH/BeJ1/4dSe/9djIH/TqCI//WFkP9JumYACRhdABGkUgA4RUcA4gM7AA3gLQBW0R8AhegQANIUAQAGZ/D/u9be/1VszP/VJ7n/ARql/3Y6kP+XkXr/yCdk/20FTf/oMjX/OrAc/46WA//j5en+nKbP/oLptP5av5n+JSh+/qk0Yv4S/kX++3sp/vPPDP5cAvD9/yPT/T89tv3iXpn9E6J8/dEGYP2srkP9o5kn/UPpC/2NnfD8q8/V/AGIu/xW16H81NaI/N+OcPzaB1n871pC/IKQLPz3sBf8eNUD/GkG8fssTN/7Jq/O+x1Av/t1B7H7kQ2k+9ZamPul9437AOSE+64wffut3Xb7/+px+wdhbvvFP2z7yHiUBDvAkwT5npEEARWOBFMiiQRSz4IEABx7BFsIcgQqpWcEb/JbBIv4TgTjv0AE2lAxBNSzIASX+Q4EiCr8AwlP6AN+b9MDEaW9Ayb4pgMhcY8DLCl3A6ooXgP/d0QDVTAqA3NiDwO9FvQCXWbYAlRRvAIv+Z8C7V2DAh6hZgLBwkkCAdwsAqT9DwINMPMBBYTWAe4BugFXy50B29eBAaZAZgF+FksBZFkwAR0aFgFyafwAxk/jABjNygCT+rIAONibAGluhQCKxW8A/+VaACvYRgCrkzMARSkhAPqYDwAu6/7/exfv/6ou4P/zH9L/HvzE/8i6uP/vW63/9+ei/0m6ZgALem8Asl93AKNzfgB5rYQA+x2KAI3NjgDMs5IAfuGVAKNWmACfG5oA1jibAKq2mwB/nZsAVu2aAPW2mQBd+pcA8L+VANkgkwBSDJAAhJuMAHDOiAB5rYQAAkGAANSZewDtt3YATZtxACBdbAAB9WYAuHNhAETZWwBtNlYAz4JQADHPSgD2I0UAu3g/AKvmOQD+XDQAfOwuAIidKQC+ZyQA5VsfAJtxGgBCsRUA2hoRAMe2DAAJhQgAPX0EACmwAADOHf3/ZLX5/xWQ9v+4lPP/FNTw/4tW7v/zAuz/Ferp/4oD6P9VT+b/2dXk/02G4/8XaeL/NX7h/0W94P9W0R8AYz4gAH+BIACqmiAARpIgAFVoIAA5JSAAj8AfALtCHwC8qx4Ak/sdAKM6HQCIYBwACn4bAMWKGgC5hhkASnoYAHdlFwCkUBYAbTMVANMNFAA66BIAoMIRAAadEADPfw8ANVoOAP88DQAsKAwAvBsLALAXCgCkEwkA/BcIABotBwA5QgYAHmgFAGeWBAAUzQMAhxQDAF5kAgCYvAEANh0BAJuOAABjCAAAkIr//4Id//91sP7/L1T+/0wA/v/NtP3/sXH9/1w//f8HDf3/FuP8/4jB/P/6n/z/M4/8/2x+/P8Idvz/pW38/6Vt/P8Idvz/bH78/8+G/P+Wl/z/o1cDAHg+AwBOJQMAIwwDAF37AgDP2QIApMACAHqnAgDshQIAXmQCADNLAgClKQIAexACAFH3AQDD1QEAmLwBAG6jAQDggQEAtWgBAO5XAQDEPgEAmSUBAG8MAQCo+wAA4eoAALfRAADwwAAAKbAAAMWnAAD+lgAAm44AANR9AABwdQAAqWQAAEZcAADiUwAAf0sAABtDAAAbQwAAuDoAAFQyAADxKQAA8SkAAI0hAACNIQAAKhkAACoZAAAqGQAAxhAAAMYQAADGEAAAxhAAAGMIAABjCAAAYwgAAGMIAABjCAAAYwgAQcDLAAvXFQMAAAAEAAAABAAAAAYAAACD+aIARE5uAPwpFQDRVycA3TT1AGLbwAA8mZUAQZBDAGNR/gC73qsAt2HFADpuJADSTUIASQbgAAnqLgAcktEA6x3+ACmxHADoPqcA9TWCAES7LgCc6YQAtCZwAEF+XwDWkTkAU4M5AJz0OQCLX4QAKPm9APgfOwDe/5cAD5gFABEv7wAKWosAbR9tAM9+NgAJyycARk+3AJ5mPwAt6l8Auid1AOXrxwA9e/EA9zkHAJJSigD7a+oAH7FfAAhdjQAwA1YAe/xGAPCrawAgvM8ANvSaAOOpHQBeYZEACBvmAIWZZQCgFF8AjUBoAIDY/wAnc00ABgYxAMpWFQDJqHMAe+JgAGuMwAAZxEcAzWfDAAno3ABZgyoAi3bEAKYclgBEr90AGVfRAKU+BQAFB/8AM34/AMIy6ACYT94Au30yACY9wwAea+8An/heADUfOgB/8soA8YcdAHyQIQBqJHwA1W76ADAtdwAVO0MAtRTGAMMZnQCtxMIALE1BAAwAXQCGfUYA43EtAJvGmgAzYgAAtNJ8ALSnlwA3VdUA1z72AKMQGABNdvwAZJ0qAHDXqwBjfPgAerBXABcV5wDASVYAO9bZAKeEOAAkI8sA1op3AFpUIwAAH7kA8QobABnO3wCfMf8AZh5qAJlXYQCs+0cAfn/YACJltwAy6IkA5r9gAO/EzQBsNgkAXT/UABbe1wBYO94A3puSANIiKAAohugA4lhNAMbKMgAI4xYA4H3LABfAUADzHacAGOBbAC4TNACDEmIAg0gBAPWOWwCtsH8AHunyAEhKQwAQZ9MAqt3YAK5fQgBqYc4ACiikANOZtAAGpvIAXHd/AKPCgwBhPIgAinN4AK+MWgBv170ALaZjAPS/ywCNge8AJsFnAFXKRQDK2TYAKKjSAMJhjQASyXcABCYUABJGmwDEWcQAyMVEAE2ykQAAF/MA1EOtAClJ5QD91RAAAL78AB6UzABwzu4AEz71AOzxgACz58MAx/goAJMFlADBcT4ALgmzAAtF8wCIEpwAqyB7AC61nwBHksIAezIvAAxVbQByp5AAa+cfADHLlgB5FkoAQXniAPTfiQDolJcA4uaEAJkxlwCI7WsAX182ALv9DgBImrQAZ6RsAHFyQgCNXTIAnxW4ALzlCQCNMSUA93Q5ADAFHAANDAEASwhoACzuWABHqpAAdOcCAL3WJAD3faYAbkhyAJ8W7wCOlKYAtJH2ANFTUQDPCvIAIJgzAPVLfgCyY2gA3T5fAEBdAwCFiX8AVVIpADdkwABt2BAAMkgyAFtMdQBOcdQARVRuAAsJwQAq9WkAFGbVACcHnQBdBFAAtDvbAOp2xQCH+RcASWt9AB0nugCWaSkAxsysAK0UVACQ4moAiNmJACxyUAAEpL4AdweUAPMwcAAA/CcA6nGoAGbCSQBk4D0Al92DAKM/lwBDlP0ADYaMADFB3gCSOZ0A3XCMABe35wAI3zsAFTcrAFyAoABagJMAEBGSAA/o2ABsgK8A2/9LADiQDwBZGHYAYqUVAGHLuwDHibkAEEC9ANLyBABJdScA67b2ANsiuwAKFKoAiSYvAGSDdgAJOzMADpQaAFE6qgAdo8IAr+2uAFwmEgBtwk0ALXqcAMBWlwADP4MACfD2ACtAjABtMZkAObQHAAwgFQDYw1sA9ZLEAMatSwBOyqUApzfNAOapNgCrkpQA3UJoABlj3gB2jO8AaItSAPzbNwCuoasA3xUxAACuoQAM+9oAZE1mAO0FtwApZTAAV1a/AEf/OgBq+bkAdb7zACiT3wCrgDAAZoz2AATLFQD6IgYA2eQdAD2zpABXG48ANs0JAE5C6QATvqQAMyO1APCqGgBPZagA0sGlAAs/DwBbeM0AI/l2AHuLBACJF3IAxqZTAG9u4gDv6wAAm0pYAMTatwCqZroAds/PANECHQCx8S0AjJnBAMOtdwCGSNoA912gAMaA9ACs8C8A3eyaAD9cvADQ3m0AkMcfACrbtgCjJToAAK+aAK1TkwC2VwQAKS20AEuAfgDaB6cAdqoOAHtZoQAWEioA3LctAPrl/QCJ2/4Aib79AOR2bAAGqfwAPoBwAIVuFQD9h/8AKD4HAGFnMwAqGIYATb3qALPnrwCPbW4AlWc5ADG/WwCE10gAMN8WAMctQwAlYTUAyXDOADDLuAC/bP0ApACiAAVs5ABa3aAAIW9HAGIS0gC5XIQAcGFJAGtW4ACZUgEAUFU3AB7VtwAz8cQAE25fAF0w5ACFLqkAHbLDAKEyNgAIt6QA6rHUABb3IQCPaeQAJ/93AAwDgACNQC0AT82gACClmQCzotMAL10KALT5QgAR2ssAfb7QAJvbwQCrF70AyqKBAAhqXAAuVRcAJwBVAH8U8ADhB4YAFAtkAJZBjQCHvt4A2v0qAGsltgB7iTQABfP+ALm/ngBoak8ASiqoAE/EWgAt+LwA11qYAPTHlQANTY0AIDqmAKRXXwAUP7EAgDiVAMwgAQBx3YYAyd62AL9g9QBNZREAAQdrAIywrACywNAAUVVIAB77DgCVcsMAowY7AMBANQAG3HsA4EXMAE4p+gDWysgA6PNBAHxk3gCbZNgA2b4xAKSXwwB3WNQAaePFAPDaEwC6OjwARhhGAFV1XwDSvfUAbpLGAKwuXQAORO0AHD5CAGHEhwAp/ekA59bzACJ8ygBvkTUACODFAP/XjQBuauIAsP3GAJMIwQB8XXQAa62yAM1unQA+cnsAxhFqAPfPqQApc98Atcm6ALcAUQDisg0AdLokAOV9YAB02IoADRUsAIEYDAB+ZpQAASkWAJ96dgD9/b4AVkXvANl+NgDs2RMAi7q5AMSX/AAxqCcA8W7DAJTFNgDYqFYAtKi1AM/MDgASiS0Ab1c0ACxWiQCZzuMA1iC5AGteqgA+KpwAEV/MAP0LSgDh9PsAjjttAOKGLADp1IQA/LSpAO/u0QAuNckALzlhADghRAAb2cgAgfwKAPtKagAvHNgAU7SEAE6ZjABUIswAKlXcAMDG1gALGZYAGnC4AGmVZAAmWmAAP1LuAH8RDwD0tREA/Mv1ADS8LQA0vO4A6F3MAN1eYABnjpsAkjPvAMkXuABhWJsA4Ve8AFGDxgDYPhAA3XFIAC0c3QCvGKEAISxGAFnz1wDZepgAnlTAAE+G+gBWBvwA5XmuAIkiNgA4rSIAZ5PcAFXoqgCCJjgAyuebAFENpACZM7EAqdcOAGkFSABlsvAAf4inAIhMlwD50TYAIZKzAHuCSgCYzyEAQJ/cANxHVQDhdDoAZ+tCAP6d3wBe1F8Ae2ekALqsegBV9qIAK4gjAEG6VQBZbggAISqGADlHgwCJ4+YA5Z7UAEn7QAD/VukAHA/KAMVZigCU+isA08HFAA/FzwDbWq4AR8WGAIVDYgAhhjsALHmUABBhhwAqTHsAgCwaAEO/EgCIJpAAeDyJAKjE5ADl23sAxDrCACb06gD3Z4oADZK/AGWjKwA9k7EAvXwLAKRR3AAn3WMAaeHdAJqUGQCoKZUAaM4oAAnttABEnyAATpjKAHCCYwB+fCMAD7kyAKf1jgAUVucAIfEIALWdKgBvfk0ApRlRALX5qwCC39YAlt1hABY2AgDEOp8Ag6KhAHLtbQA5jXoAgripAGsyXABGJ1sAADTtANIAdwD89FUAAVlNAOBxgABBo+EAC60BQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8AQd7iAAuCMfA/br+IGk87mzw1M/upPfbvP13c2JwTYHG8YYB3Pprs7z/RZocQel6QvIV/bugV4+8/E/ZnNVLSjDx0hRXTsNnvP/qO+SOAzou83vbdKWvQ7z9hyOZhTvdgPMibdRhFx+8/mdMzW+SjkDyD88bKPr7vP217g12mmpc8D4n5bFi17z/87/2SGrWOPPdHciuSrO8/0ZwvcD2+Pjyi0dMy7KPvPwtukIk0A2q8G9P+r2ab7z8OvS8qUlaVvFFbEtABk+8/VepOjO+AULzMMWzAvYrvPxb01bkjyZG84C2prpqC7z+vVVzp49OAPFGOpciYeu8/SJOl6hUbgLx7UX08uHLvPz0y3lXwH4+86o2MOPlq7z+/UxM/jImLPHXLb+tbY+8/JusRdpzZlrzUXASE4FvvP2AvOj737Jo8qrloMYdU7z+dOIbLguePvB3Z/CJQTe8/jcOmREFvijzWjGKIO0bvP30E5LAFeoA8ltx9kUk/7z+UqKjj/Y6WPDhidW56OO8/fUh08hhehzw/prJPzjHvP/LnH5grR4A83XziZUUr7z9eCHE/e7iWvIFj9eHfJO8/MasJbeH3gjzh3h/1nR7vP/q/bxqbIT28kNna0H8Y7z+0CgxygjeLPAsD5KaFEu8/j8vOiZIUbjxWLz6prwzvP7arsE11TYM8FbcxCv4G7z9MdKziAUKGPDHYTPxwAe8/SvjTXTndjzz/FmSyCPzuPwRbjjuAo4a88Z+SX8X27j9oUEvM7UqSvMupOjen8e4/ji1RG/gHmbxm2AVtruzuP9I2lD7o0XG895/lNNvn7j8VG86zGRmZvOWoE8Mt4+4/bUwqp0ifhTwiNBJMpt7uP4ppKHpgEpO8HICsBEXa7j9biRdIj6dYvCou9yEK1u4/G5pJZ5ssfLyXqFDZ9dHuPxGswmDtY0M8LYlhYAjO7j/vZAY7CWaWPFcAHe1Byu4/eQOh2uHMbjzQPMG1osbuPzASDz+O/5M83tPX8CrD7j+wr3q7zpB2PCcqNtXav+4/d+BU670dkzwN3f2ZsrzuP46jcQA0lI+8pyyddrK57j9Jo5PczN6HvEJmz6Latu4/XzgPvcbeeLyCT51WK7TuP/Zce+xGEoa8D5JdyqSx7j+O1/0YBTWTPNontTZHr+4/BZuKL7eYezz9x5fUEq3uPwlUHOLhY5A8KVRI3Qer7j/qxhlQhcc0PLdGWYomqe4/NcBkK+YylDxIIa0Vb6fuP592mWFK5Iy8Cdx2ueGl7j+oTe87xTOMvIVVOrB+pO4/rukriXhThLwgw8w0RqPuP1hYVnjdzpO8JSJVgjii7j9kGX6AqhBXPHOpTNRVoe4/KCJev++zk7zNO39mnqDuP4K5NIetEmq8v9oLdRKg7j/uqW2472djvC8aZTyyn+4/UYjgVD3cgLyElFH5fZ/uP88+Wn5kH3i8dF/s6HWf7j+wfYvASu6GvHSBpUian+4/iuZVHjIZhrzJZ0JW65/uP9PUCV7LnJA8P13eT2mg7j8dpU253DJ7vIcB63MUoe4/a8BnVP3slDwywTAB7aHuP1Vs1qvh62U8Yk7PNvOi7j9Cz7MvxaGIvBIaPlQnpO4/NDc78bZpk7wTzkyZiaXuPx7/GTqEXoC8rccjRhqn7j9uV3LYUNSUvO2SRJvZqO4/AIoOW2etkDyZZorZx6ruP7Tq8MEvt40826AqQuWs7j//58WcYLZlvIxEtRYyr+4/RF/zWYP2ezw2dxWZrrHuP4M9HqcfCZO8xv+RC1u07j8pHmyLuKldvOXFzbA3t+4/WbmQfPkjbLwPUsjLRLruP6r59CJDQ5K8UE7en4K97j9LjmbXbMqFvLoHynDxwO4/J86RK/yvcTyQ8KOCkcTuP7tzCuE10m08IyPjGWPI7j9jImIiBMWHvGXlXXtmzO4/1THi44YcizwzLUrsm9DuPxW7vNPRu5G8XSU+sgPV7j/SMe6cMcyQPFizMBOe2e4/s1pzboRphDy//XlVa97uP7SdjpfN34K8evPTv2vj7j+HM8uSdxqMPK3TWpmf6O4/+tnRSo97kLxmto0pB+7uP7qu3FbZw1W8+xVPuKLz7j9A9qY9DqSQvDpZ5Y1y+e4/NJOtOPTWaLxHXvvydv/uPzWKWGvi7pG8SgahMLAF7z/N3V8K1/90PNLBS5AeDO8/rJiS+vu9kbwJHtdbwhLvP7MMrzCubnM8nFKF3ZsZ7z+U/Z9cMuOOPHrQ/1+rIO8/rFkJ0Y/ghDxL0Vcu8SfvP2caTjivzWM8tecGlG0v7z9oGZJsLGtnPGmQ79wgN+8/0rXMgxiKgLz6w11VCz/vP2/6/z9drY+8fIkHSi1H7z9JqXU4rg2QvPKJDQiHT+8/pwc9poWjdDyHpPvcGFjvPw8iQCCekYK8mIPJFuNg7z+sksHVUFqOPIUy2wPmae8/S2sBrFk6hDxgtAHzIXPvPx8+tAch1YK8X5t7M5d87z/JDUc7uSqJvCmh9RRGhu8/04g6YAS2dDz2P4vnLpDvP3FynVHsxYM8g0zH+1Ga7z/wkdOPEvePvNqQpKKvpO8/fXQj4piujbzxZ44tSK/vPwggqkG8w448J1ph7hu67z8y66nDlCuEPJe6azcrxe8/7oXRMalkijxARW5bdtDvP+3jO+S6N468FL6crf3b7z+dzZFNO4l3PNiQnoHB5+8/icxgQcEFUzzxcY8rwvPvPwA4+v5CLuY/MGfHk1fzLj0BAAAAAADgv1swUVVVVdU/kEXr////z78RAfEks5nJP5/IBuV1VcW/AAAAAAAA4L93VVVVVVXVP8v9/////8+/DN2VmZmZyT+nRWdVVVXFvzDeRKMkScI/ZT1CpP//v7/K1ioohHG8P/9osEPrmbm/hdCv94KBtz/NRdF1E1K1v5/e4MPwNPc/AJDmeX/M178f6SxqeBP3PwAADcLub9e/oLX6CGDy9j8A4FET4xPXv32MEx+m0fY/AHgoOFu41r/RtMULSbH2PwB4gJBVXda/ugwvM0eR9j8AABh20ALWvyNCIhifcfY/AJCQhsqo1b/ZHqWZT1L2PwBQA1ZDT9W/xCSPqlYz9j8AQGvDN/bUvxTcnWuzFPY/AFCo/aed1L9MXMZSZPb1PwCoiTmSRdS/TyyRtWfY9T8AuLA59O3Tv96QW8u8uvU/AHCPRM6W0794GtnyYZ31PwCgvRceQNO/h1ZGElaA9T8AgEbv4unSv9Nr586XY/U/AOAwOBuU0r+Tf6fiJUf1PwCI2ozFPtK/g0UGQv8q9T8AkCcp4enRv9+9stsiD/U/APhIK22V0b/X3jRHj/P0PwD4uZpnQdG/QCjez0PY9D8AmO+U0O3Qv8ijeMA+vfQ/ABDbGKWa0L+KJeDDf6L0PwC4Y1LmR9C/NITUJAWI9D8A8IZFIuvPvwstGRvObfQ/ALAXdUpHz79UGDnT2VP0PwAwED1EpM6/WoS0RCc69D8AsOlEDQLOv/v4FUG1IPQ/APB3KaJgzb+x9D7aggf0PwCQlQQBwMy/j/5XXY/u8z8AEIlWKSDMv+lMC6DZ1fM/ABCBjReBy78rwRDAYL3zPwDQ08zJ4sq/uNp1KySl8z8AkBIuQEXKvwLQn80ijfM/APAdaHeoyb8ceoTFW3XzPwAwSGltDMm/4jatSc5d8z8AwEWmIHHIv0DUTZh5RvM/ADAUtI/Wx78ky//OXC/zPwBwYjy4PMe/SQ2hdXcY8z8AYDebmqPGv5A5PjfIAfM/AKC3VDELxr9B+JW7TuvyPwAwJHZ9c8W/0akZAgrV8j8AMMKPe9zEvyr9t6j5vvI/AADSUSxGxL+rGwx6HKnyPwAAg7yKsMO/MLUUYHKT8j8AAElrmRvDv/WhV1f6ffI/AECkkFSHwr+/Ox2bs2jyPwCgefi588G/vfWPg51T8j8AoCwlyGDBvzsIyaq3PvI/ACD3V3/OwL+2QKkrASryPwCg/kncPMC/MkHMlnkV8j8AgEu8vVe/v5v80h0gAfI/AEBAlgg3vr8LSE1J9OzxPwBA+T6YF72/aWWPUvXY8T8AoNhOZ/m7v3x+VxEjxfE/AGAvIHncur/pJst0fLHxPwCAKOfDwLm/thosDAGe8T8AwHKzRqa4v71wtnuwivE/AACsswGNt7+2vO8linfxPwAAOEXxdLa/2jFMNY1k8T8AgIdtDl61v91fJ5C5UfE/AOCh3lxItL9M0jKkDj/xPwCgak3ZM7O/2vkQcoss8T8AYMX4eSCyvzG17CgwGvE/ACBimEYOsb+vNITa+wfxPwAA0mps+q+/s2tOD+718D8AQHdKjdqtv86fKl0G5PA/AACF5Oy8q78hpSxjRNLwPwDAEkCJoam/GpjifKfA8D8AwAIzWIinv9E2xoMvr/A/AIDWZ15xpb85E6CY253wPwCAZUmKXKO/3+dSr6uM8D8AQBVk40mhv/soTi+fe/A/AIDrgsBynr8ZjzWMtWrwPwCAUlLxVZq/LPnspe5Z8D8AgIHPYj2Wv5As0c1JSfA/AACqjPsokr+prfDGxjjwPwAA+SB7MYy/qTJ5E2Uo8D8AAKpdNRmEv0hz6ickGPA/AADswgMSeL+VsRQGBAjwPwAAJHkJBGC/Gvom9x/g7z8AAJCE8+9vP3TqYcIcoe8/AAA9NUHchz8umYGwEGPvPwCAwsSjzpM/za3uPPYl7z8AAIkUwZ+bP+cTkQPI6e4/AAARztiwoT+rsct4gK7uPwDAAdBbiqU/mwydohp07j8AgNhAg1ypP7WZCoOROu4/AIBX72onrT9WmmAJ4AHuPwDAmOWYdbA/mLt35QHK7T8AIA3j9VOyPwORfAvyku0/AAA4i90utD/OXPtmrFztPwDAV4dZBrY/nd5eqiwn7T8AAGo1dtq3P80saz5u8uw/AGAcTkOruT8Ceaeibb7sPwBgDbvHeLs/bQg3bSaL7D8AIOcyE0O9PwRYXb2UWOw/AGDecTEKvz+Mn7sztSbsPwBAkSsVZ8A/P+fs7oP16z8AsJKChUfBP8GW23X9xOs/ADDKzW4mwj8oSoYMHpXrPwBQxabXA8M/LD7vxeJl6z8AEDM8w9/DP4uIyWdIN+s/AIB6aza6xD9KMB0hSwnrPwDw0Sg5k8U/fu/yhejb6j8A8BgkzWrGP6I9YDEdr+o/AJBm7PhAxz+nWNM/5oLqPwDwGvXAFcg/i3MJ70BX6j8AgPZUKenIPydLq5AqLOo/AED4Aja7yT/R8pMToAHqPwAALBzti8o/GzzbJJ/X6T8A0AFcUVvLP5CxxwUlruk/AMC8zGcpzD8vzpfyLoXpPwBgSNU19sw/dUuk7rpc6T8AwEY0vcHNPzhI553GNOk/AODPuAGMzj/mUmcvTw3pPwCQF8AJVc8/ndf/jlLm6D8AuB8SbA7QP3wAzJ/Ov+g/ANCTDrhx0D8Ow77awJnoPwBwhp5r1NA/+xcjqid06D8A0EszhzbRPwias6wAT+g/AEgjZw2Y0T9VPmXoSSroPwCAzOD/+NE/YAL0lQEG6D8AaGPXX1nSPymj4GMl4uc/AKgUCTC50j+ttdx3s77nPwBgQxByGNM/wiWXZ6qb5z8AGOxtJnfTP1cGF/IHeec/ADCv+0/V0z8ME9bbylbnPwDgL+PuMtQ/a7ZPAQAQ5j88W0KRbAJ+PJW0TQMAMOY/QV0ASOq/jTx41JQNAFDmP7el1oanf448rW9OBwBw5j9MJVRr6vxhPK4P3/7/j+Y//Q5ZTCd+fLy8xWMHALDmPwHa3EhowYq89sFcHgDQ5j8Rk0mdHD+DPD72Bev/7+Y/Uy3iGgSAfryAl4YOABDnP1J5CXFm/3s8Euln/P8v5z8kh70m4gCMPGoRgd//T+c/0gHxbpECbryQnGcPAHDnP3ScVM1x/Ge8Nch++v+P5z+DBPWewb6BPObCIP7/r+c/ZWTMKRd+cLwAyT/t/8/nPxyLewhygIC8dhom6f/v5z+u+Z1tKMCNPOijnAQAEOg/M0zlUdJ/iTyPLJMXADDoP4HzMLbp/oq8nHMzBgBQ6D+8NWVrv7+JPMaJQiAAcOg/dXsR82W/i7wEefXr/4/oP1fLPaJuAIm83wS8IgCw6D8KS+A43wB9vIobDOX/z+g/BZ//RnEAiLxDjpH8/+/oPzhwetB7gYM8x1/6HgAQ6T8DtN92kT6JPLl7RhMAMOk/dgKYS06AfzxvB+7m/0/pPy5i/9nwfo+80RI83v9v6T+6OCaWqoJwvA2KRfT/j+k/76hkkRuAh7w+Lpjd/6/pPzeTWorgQIe8ZvtJ7f/P6T8A4JvBCM4/PFGc8SAA8Ok/CluIJ6o/irwGsEURABDqP1baWJlI/3Q8+va7BwAw6j8YbSuKq76MPHkdlxAAUOo/MHl43cr+iDxILvUdAHDqP9ur2D12QY+8UjNZHACQ6j8SdsKEAr+OvEs+TyoAsOo/Xz//PAT9abzRHq7X/8/qP7RwkBLnPoK8eARR7v/v6j+j3g7gPgZqPFsNZdv/D+s/uQofOMgGWjxXyqr+/y/rPx08I3QeAXm83LqV2f9P6z+fKoZoEP95vJxlniQAcOs/Pk+G0EX/ijxAFof5/4/rP/nDwpZ3/nw8T8sE0v+v6z/EK/LuJ/9jvEVcQdL/z+s/Ieo77rf/bLzfCWP4/+/rP1wLLpcDQYG8U3a14f8P7D8ZareUZMGLPONX+vH/L+w/7cYwje/+ZLwk5L/c/0/sP3VH7LxoP4S897lU7f9v7D/s4FPwo36EPNWPmev/j+w/8ZL5jQaDczyaISUhALDsPwQOGGSO/Wi8nEaU3f/P7D9y6sccvn6OPHbE/er/7+w//oifrTm+jjwr+JoWABDtP3FauaiRfXU8HfcPDQAw7T/ax3BpkMGJPMQPeer/T+0/DP5YxTcOWLzlh9wuAHDtP0QPwU3WgH+8qoLcIQCQ7T9cXP2Uj3x0vIMCa9j/r+0/fmEhxR1/jDw5R2wpANDtP1Ox/7KeAYg89ZBE5f/v7T+JzFLG0gBuPJT2q83/D+4/0mktIECDf7zdyFLb/y/uP2QIG8rBAHs87xZC8v9P7j9Rq5SwqP9yPBFeiuj/b+4/Wb7vsXP2V7wN/54RAJDuPwHIC16NgIS8RBel3/+v7j+1IEPVBgB4PKF/EhoA0O4/klxWYPgCULzEvLoHAPDuPxHmNV1EQIW8Ao169f8P7z8Fke85MftPvMeK5R4AMO8/VRFz8qyBijyUNIL1/0/vP0PH19RBP4o8a0yp/P9v7z91eJgc9AJivEHE+eH/j+8/S+d39NF9dzx+4+DS/6/vPzGjfJoZAW+8nuR3HADQ7z+xrM5L7oFxPDHD4Pf/7+8/WodwATcFbrxuYGX0/w/wP9oKHEmtfoq8WHqG8/8v8D/gsvzDaX+XvBcN/P3/T/A/W5TLNP6/lzyCTc0DAHDwP8tW5MCDAII86Mvy+f+P8D8adTe+3/9tvGXaDAEAsPA/6ybmrn8/kbw406QBANDwP/efSHn6fYA8/f3a+v/v8D/Aa9ZwBQR3vJb9ugsAEPE/YgtthNSAjjxd9OX6/y/xP+82/WT6v5082ZrVDQBQ8T+uUBJwdwCaPJpVIQ8AcPE/7t7j4vn9jTwmVCf8/4/xP3NyO9wwAJE8WTw9EgCw8T+IAQOAeX+ZPLeeKfj/z/E/Z4yfqzL5ZbwA1Ir0/+/xP+tbp52/f5M8pIaLDAAQ8j8iW/2Ra4CfPANDhQMAMPI/M7+f68L/kzyE9rz//0/yP3IuLn7nAXY82SEp9f9v8j9hDH92u/x/PDw6kxQAkPI/K0ECPMoCcrwTY1UUALDyPwIf8jOCgJK8O1L+6//P8j/y3E84fv+IvJatuAsA8PI/xUEwUFH/hbyv4nr7/w/zP50oXohxAIG8f1+s/v8v8z8Vt7c/Xf+RvFZnpgwAUPM/vYKLIoJ/lTwh9/sRAHDzP8zVDcS6AIA8uS9Z+f+P8z9Rp7ItnT+UvELS3QQAsPM/4Th2cGt/hTxXybL1/8/zPzESvxA6Ano8GLSw6v/v8z+wUrFmbX+YPPSvMhUAEPQ/JIUZXzf4Zzwpi0cXADD0P0NR3HLmAYM8Y7SV5/9P9D9aibK4af+JPOB1BOj/b/Q/VPLCm7HAlbznwW/v/4/0P3IqOvIJQJs8BKe+5f+v9D9FfQ2/t/+UvN4nEBcA0PQ/PWrccWTAmbziPvAPAPD0PxxThQuJf5c80UvcEgAQ9T82pGZxZQRgPHonBRYAMPU/CTIjzs6/lrxMcNvs/0/1P9ehBQVyAom8qVRf7/9v9T8SZMkO5r+bPBIQ5hcAkPU/kO+vgcV+iDySPskDALD1P8AMvwoIQZ+8vBlJHQDQ9T8pRyX7KoGYvIl6uOf/7/U/BGntgLd+lLwAQeCTAQsD4EsB";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["c"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["o"];addOnInit(Module["asm"]["d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}return null}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ASSERTIONS=false;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE=="boolean"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf["buffer"],buf["byteOffset"],buf["byteLength"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var asmLibraryArg={"b":_emscripten_memcpy_big,"a":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["e"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["f"]).apply(null,arguments)};var _shine_check_config=Module["_shine_check_config"]=function(){return(_shine_check_config=Module["_shine_check_config"]=Module["asm"]["g"]).apply(null,arguments)};var _shine_samples_per_pass=Module["_shine_samples_per_pass"]=function(){return(_shine_samples_per_pass=Module["_shine_samples_per_pass"]=Module["asm"]["h"]).apply(null,arguments)};var _shine_encode_buffer=Module["_shine_encode_buffer"]=function(){return(_shine_encode_buffer=Module["_shine_encode_buffer"]=Module["asm"]["i"]).apply(null,arguments)};var _shine_flush=Module["_shine_flush"]=function(){return(_shine_flush=Module["_shine_flush"]=Module["asm"]["j"]).apply(null,arguments)};var _shine_close=Module["_shine_close"]=function(){return(_shine_close=Module["_shine_close"]=Module["asm"]["k"]).apply(null,arguments)};var _shine_js_int16_len=Module["_shine_js_int16_len"]=function(){return(_shine_js_int16_len=Module["_shine_js_int16_len"]=Module["asm"]["l"]).apply(null,arguments)};var _shine_js_ptr_len=Module["_shine_js_ptr_len"]=function(){return(_shine_js_ptr_len=Module["_shine_js_ptr_len"]=Module["asm"]["m"]).apply(null,arguments)};var _shine_js_init=Module["_shine_js_init"]=function(){return(_shine_js_init=Module["_shine_js_init"]=Module["asm"]["n"]).apply(null,arguments)};Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();var ShineModule;var int16Len;var ptrLen;function shineInit(){int16Len=ShineModule._shine_js_int16_len();ptrLen=ShineModule._shine_js_ptr_len()}function Shine(args){if(ShineModule._shine_check_config(args.samplerate,args.bitrate)<0)throw"Invalid configuration";var stereoMode;if(!args.stereoMode){if(args.channels===1){stereoMode=Shine.MONO}else{stereoMode=Shine.JOINT_STEREO}}else{stereoMode=args.stereoMode}this._handle=ShineModule._shine_js_init(args.channels,args.samplerate,stereoMode,args.bitrate);this._channels=args.channels;this._samples_per_pass=ShineModule._shine_samples_per_pass(this._handle);this._buffer=ShineModule._malloc(this._channels*ptrLen);this._pcm=new Array(this._channels);this._rem=new Array(this._channels);this._written=ShineModule._malloc(int16Len);var _tmp,chan;for(chan=0;chan<this._channels;chan++){this._rem[chan]=new Int16Array;_tmp=ShineModule._malloc(this._samples_per_pass*int16Len);ShineModule.setValue(this._buffer+chan*ptrLen,_tmp,"*");this._pcm[chan]=ShineModule.HEAP16.subarray(_tmp/int16Len,_tmp/int16Len+this._samples_per_pass)}return this}Shine.checkConfig=function(samplerate,bitrate){return ShineModule._shine_check_config(samplerate,bitrate)>=0};Shine.prototype._encodePass=function(data){if(!this._handle)throw"Closed";var chan;for(chan=0;chan<this._channels;chan++)this._pcm[chan].set(data[chan]);var _buf=ShineModule._shine_encode_buffer(this._handle,this._buffer,this._written);var written=ShineModule.getValue(this._written,"i16");return ShineModule.HEAPU8.subarray(_buf,_buf+written)};function concat(ctr,a,b){if(typeof b==="undefined"){return a}var ret=new ctr(a.length+b.length);ret.set(a);ret.subarray(a.length).set(b);return ret}function clip(x){return x>1?1:x<-1?-1:x}function convertFloat32(buf){var ret=new Array(buf.length);var samples=buf[0].length;var chan,i;for(chan=0;chan<buf.length;chan++){ret[chan]=new Int16Array(samples);for(i=0;i<samples;i++){ret[chan][i]=parseInt(clip(buf[chan][i])*32767)}}return ret}Shine.prototype.encode=function(data){if(data.length!=this._channels)throw"Invalid data";var encoded=new Uint8Array;var tmp=new Array(this._channels);if(data[0]instanceof Float32Array){data=convertFloat32(data)}var chan;for(chan=0;chan<this._channels;chan++){tmp[chan]=new Float32Array;this._rem[chan]=concat(Int16Array,this._rem[chan],data[chan])}var i,enc;for(i=0;i<this._rem[0].length;i+=this._samples_per_pass){for(chan=0;chan<this._channels;chan++){tmp[chan]=this._rem[chan].subarray(i,i+this._samples_per_pass)}if(tmp[0].length<this._samples_per_pass){break}else{enc=this._encodePass(tmp);if(enc.length>0){encoded=concat(Uint8Array,encoded,enc)}}}if(tmp[0].length<this._samples_per_pass){this._rem=tmp}else{for(chan=0;chan<this._channels;chan++){this._rem[chan]=new Int16Array}}return encoded};Shine.prototype.close=function(){if(!this._handle){throw"Closed"}var _buf=ShineModule._shine_flush(this._handle,this._written);var written=ShineModule.getValue(this._written,"i16");var encoded=new Uint8Array(written);encoded.set(ShineModule.HEAPU8.subarray(_buf,_buf+written));ShineModule._free(this._written);ShineModule._shine_close(this._handle);this._handle=null;var chan;for(chan=0;chan<this._channels;chan++){ShineModule._free(ShineModule.getValue(this._buffer+chan*ptrLen,"*"))}ShineModule._free(this._buffer);return encoded};Shine.initialized=new Promise(function(resolve){Module["onRuntimeInitialized"]=function(){ShineModule=Module;shineInit();resolve()}});Module["Shine"]=Shine;Module["StereoMode"]={0:"STEREO",1:"JOINT_STEREO",2:"DUAL_CHANNEL",3:"MONO",STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3};
-diff --git a/js/libshine.d.ts b/js/libshine.d.ts
-new file mode 100644
-index 0000000..8f00edc
---- /dev/null
-+++ b/js/libshine.d.ts
-@@ -0,0 +1,19 @@
-+export type Data = Int16Array | Float32Array;
-+export declare enum StereoMode {
-+ STEREO = 0,
-+ JOINT_STEREO = 1,
-+ DUAL_CHANNEL = 2,
-+ MONO = 3
-+}
-+export class Shine {
-+ static initialized: Promise<void>;
-+ static checkConfig(samplerate: number, bitrate: number): boolean;
-+ constructor(args: {
-+ samplerate: number;
-+ bitrate: number;
-+ channels: number;
-+ stereoMode?: StereoMode;
-+ });
-+ encode(data: Data[]): Uint8Array;
-+ close(): Uint8Array;
-+}
-diff --git a/js/package-lock.json b/js/package-lock.json
-new file mode 100644
-index 0000000..38b374d
---- /dev/null
-+++ b/js/package-lock.json
-@@ -0,0 +1,18 @@
-+{
-+ "name": "@toots/shine.js",
-+ "version": "1.0.1",
-+ "lockfileVersion": 3,
-+ "requires": true,
-+ "packages": {
-+ "": {
-+ "name": "@toots/shine.js",
-+ "version": "1.0.1",
-+ "license": "LGPL-2.0-only"
-+ },
-+ "stubs": {
-+ "version": "1.0.0",
-+ "extraneous": true,
-+ "license": "ISC"
-+ }
-+ }
-+}
-diff --git a/js/package.json b/js/package.json
-new file mode 100644
-index 0000000..0c83619
---- /dev/null
-+++ b/js/package.json
-@@ -0,0 +1,24 @@
-+{
-+ "name": "@toots/shine.js",
-+ "version": "1.0.3",
-+ "description": "Shine fixed-point mp3 encoder",
-+ "main": "dist/libshine_node.js",
-+ "browser": "dist/libshine_browser.js",
-+ "types": "libshine.d.ts",
-+ "repository": {
-+ "type": "git",
-+ "url": "git+https://github.com/toots/shine.git"
-+ },
-+ "keywords": [
-+ "mp3",
-+ "encoder",
-+ "wasm",
-+ "fixed-point"
-+ ],
-+ "author": "Romain Beauxis <toots@rastageeks.org>",
-+ "license": "LGPL-2.0-only",
-+ "bugs": {
-+ "url": "https://github.com/toots/shine/issues"
-+ },
-+ "homepage": "https://github.com/toots/shine#readme"
-+}
-diff --git a/js/src/libshine_browser_wrapper.js b/js/src/libshine_browser_wrapper.js
-new file mode 100644
-index 0000000..f0ef04e
---- /dev/null
-+++ b/js/src/libshine_browser_wrapper.js
-@@ -0,0 +1,10 @@
-+var createModule = require("./libshine_browser_stubs").default;
-+
-+Shine.initialized = (createModule()).then(function (Module) {
-+ ShineModule = Module;
-+ shineInit();
-+});
-+
-+module.exports.Shine = Shine;
-+
-+module.exports.StereoMode = StereoMode;
-diff --git a/js/src/post.js b/js/src/libshine_class.js
-similarity index 57%
-rename from js/src/post.js
-rename to js/src/libshine_class.js
-index f6a07e6..5d88d9e 100644
---- a/js/src/post.js
-+++ b/js/src/libshine_class.js
-@@ -1,50 +1,64 @@
- // libshine function wrappers
-
--var isNode = typeof process === "object" && typeof require === "function";
-+var StereoMode = {
-+ '0': 'STEREO',
-+ '1': 'JOINT_STEREO',
-+ '2': 'DUAL_CHANNEL',
-+ '3': 'MONO',
-+ STEREO: 0,
-+ JOINT_STEREO: 1,
-+ DUAL_CHANNEL: 2,
-+ MONO: 3
-+};
-+
-+var ShineModule;
-+var int16Len;
-+var ptrLen;
-
--var int16Len = Module.HEAP16.BYTES_PER_ELEMENT;
--var ptrLen = Module.HEAP32.BYTES_PER_ELEMENT;
-+function shineInit() {
-+ int16Len = ShineModule._shine_js_int16_len();
-+ ptrLen = ShineModule._shine_js_ptr_len();
-+};
-
- function Shine(args) {
-- if (_shine_check_config(args.samplerate, args.bitrate) < 0)
-+ if (ShineModule._shine_check_config(args.samplerate, args.bitrate) < 0)
- throw "Invalid configuration";
-
-- var mode;
-- if (!args.mode) {
-+ var stereoMode;
-+ if (!args.stereoMode) {
- if (args.channels === 1) {
-- mode = Shine.MONO;
-+ stereoMode = Shine.MONO;
- } else {
-- mode = Shine.JOINT_STEREO;
-+ stereoMode = Shine.JOINT_STEREO;
- }
- } else {
-- mode = args.mode;
-+ stereoMode = args.stereoMode;
- }
-
-- this._handle = _shine_js_init(args.channels, args.samplerate, mode, args.bitrate);
-+ this._handle = ShineModule._shine_js_init(args.channels, args.samplerate, stereoMode, args.bitrate);
-
- this._channels = args.channels;
-- this._samples_per_pass = _shine_samples_per_pass(this._handle);
-+ this._samples_per_pass = ShineModule._shine_samples_per_pass(this._handle);
-
-- this._buffer = _malloc(this._channels * ptrLen);
-+ this._buffer = ShineModule._malloc(this._channels * ptrLen);
- this._pcm = new Array(this._channels);
- this._rem = new Array(this._channels);
-- this._written = _malloc(int16Len);
-+ this._written = ShineModule._malloc(int16Len);
-
- var _tmp, chan;
- for (chan=0; chan<this._channels; chan++) {
- this._rem[chan] = new Int16Array;
-- _tmp = _malloc(this._samples_per_pass * int16Len);
-- setValue(this._buffer + chan*ptrLen, _tmp, "*")
-- this._pcm[chan] = Module.HEAP16.subarray(_tmp/int16Len, _tmp/int16Len+this._samples_per_pass)
-+ _tmp = ShineModule._malloc(this._samples_per_pass * int16Len);
-+ ShineModule.setValue(this._buffer + chan*ptrLen, _tmp, "*")
-+ this._pcm[chan] = ShineModule.HEAP16.subarray(_tmp/int16Len, _tmp/int16Len+this._samples_per_pass)
- }
-
- return this;
- };
-
--Shine.STEREO = 0;
--Shine.JOINT_STEREO = 1;
--Shine.DUAL_CHANNEL = 2;
--Shine.MONO = 3;
-+Shine.checkConfig = function (samplerate, bitrate) {
-+ return ShineModule._shine_check_config(samplerate, bitrate) >= 0;
-+};
-
- Shine.prototype._encodePass = function (data) {
- if (!this._handle)
-@@ -54,11 +68,11 @@ Shine.prototype._encodePass = function (data) {
- for (chan=0;chan<this._channels;chan++)
- this._pcm[chan].set(data[chan]);
-
-- var _buf = _shine_encode_buffer(this._handle, this._buffer, this._written);
-+ var _buf = ShineModule._shine_encode_buffer(this._handle, this._buffer, this._written);
-
-- var written = getValue(this._written, "i16");
-+ var written = ShineModule.getValue(this._written, "i16");
-
-- return Module.HEAPU8.subarray(_buf, _buf+written);
-+ return ShineModule.HEAPU8.subarray(_buf, _buf+written);
- };
-
- function concat(ctr, a, b) {
-@@ -138,30 +152,22 @@ Shine.prototype.close = function () {
- throw "Closed";
- }
-
-- var _buf = _shine_flush(this._handle, this._written);
-+ var _buf = ShineModule._shine_flush(this._handle, this._written);
-
-- var written = getValue(this._written, "i16");
-+ var written = ShineModule.getValue(this._written, "i16");
- var encoded = new Uint8Array(written);
-
-- encoded.set(Module.HEAPU8.subarray(_buf, _buf + written));
-+ encoded.set(ShineModule.HEAPU8.subarray(_buf, _buf + written));
-
-- _free(this._written);
-- _shine_close(this._handle);
-+ ShineModule._free(this._written);
-+ ShineModule._shine_close(this._handle);
- this._handle = null;
-
- var chan;
- for (chan=0; chan<this._channels; chan++) {
-- _free(getValue(this._buffer + chan*ptrLen, "*"));
-+ ShineModule._free(ShineModule.getValue(this._buffer + chan*ptrLen, "*"));
- }
-- _free(this._buffer);
-+ ShineModule._free(this._buffer);
-
- return encoded;
- };
--
--if (isNode) {
-- module.exports = Shine;
--}
--
--return Shine;
--
--}).call(context)})();
-diff --git a/js/src/libshine_node_wrapper.js b/js/src/libshine_node_wrapper.js
-new file mode 100644
-index 0000000..aaaf28c
---- /dev/null
-+++ b/js/src/libshine_node_wrapper.js
-@@ -0,0 +1,10 @@
-+Shine.initialized = new Promise(function (resolve) {
-+ Module['onRuntimeInitialized'] = function () {
-+ ShineModule = Module;
-+ shineInit();
-+ resolve();
-+ }
-+})
-+
-+Module["Shine"] = Shine;
-+Module["StereoMode"] = StereoMode;
-diff --git a/js/src/pre.js b/js/src/pre.js
-deleted file mode 100644
-index 8078b87..0000000
---- a/js/src/pre.js
-+++ /dev/null
-@@ -1,9 +0,0 @@
--// libshine.js - port of libshine to JavaScript using emscripten
--// by Romain Beauxis <toots@rastageeks.org> from code by
--// Andreas Krennmair <ak@synflood.at>
--
--
--var Shine = (function() {
-- var Module;
-- var context = {};
-- return (function() {
-diff --git a/js/src/wrapper.c b/js/src/wrapper.c
-index 506570d..375b35c 100644
---- a/js/src/wrapper.c
-+++ b/js/src/wrapper.c
-@@ -1,7 +1,16 @@
-+#include "layer3.h"
-+#include "types.h"
- #include <stdlib.h>
- #include <string.h>
--#include "types.h"
--#include "layer3.h"
-+#include <stdint.h>
-+
-+size_t shine_js_int16_len() {
-+ return sizeof(int16_t);
-+}
-+
-+size_t shine_js_ptr_len() {
-+ return sizeof(void*);
-+}
-
- shine_t shine_js_init(int channels, int samplerate, int mode, int bitr) {
- shine_config_t config;
-@@ -13,4 +22,4 @@ shine_t shine_js_init(int channels, int samplerate, int mode, int bitr) {
- config.mpeg.bitr = bitr;
-
- return shine_initialise(&config);
--}
-+}
-diff --git a/js/test/browser/Makefile b/js/test/browser/Makefile
-index b3eedc8..befc1ce 100644
---- a/js/test/browser/Makefile
-+++ b/js/test/browser/Makefile
-@@ -1,2 +1,2 @@
- all:
-- python -m SimpleHTTPServer
-+ python -m http.server
-diff --git a/js/test/browser/encode.js b/js/test/browser/encode.js
-index 65e009d..af17116 100644
---- a/js/test/browser/encode.js
-+++ b/js/test/browser/encode.js
-@@ -4,24 +4,22 @@ function runEncodeTest(log, callback) {
- var samplerate = 44100;
- var channels = 2;
- var bitrate = 128;
-- var mode = Shine.STEREO;
-
- var shine = new Shine({
- samplerate: samplerate,
- channels: channels,
- bitrate: bitrate,
-- mode: mode
- });
-
-- var started = new Date;
-+ var started = new Date();
- var duration = 0.0;
- var encoded = [];
-
- var xhr = new XMLHttpRequest();
- xhr.open("GET", "encode.wav", true);
- xhr.responseType = "arraybuffer";
-- xhr.onload = function() {
-- var samples = xhr.response.byteLength / (2*channels);
-+ xhr.onload = function () {
-+ var samples = xhr.response.byteLength / (2 * channels);
- var data = new Int16Array(xhr.response);
- var buf = convertInterleavedBuffer(data, channels, samples);
- duration += parseFloat(samples) / samplerate;
-@@ -33,12 +31,12 @@ function runEncodeTest(log, callback) {
- xhr.addEventListener("load", function () {
- encoded.push(shine.close());
-
-- var ended = new Date
-- var encodingTime = (ended.getTime() - started.getTime())/1000
-+ var ended = new Date();
-+ var encodingTime = (ended.getTime() - started.getTime()) / 1000;
- log("Done encoding.");
- log("File duration: " + duration.toFixed(2) + " seconds");
- log("Encoding time: " + encodingTime.toFixed(2) + " seconds");
-- log("Encoding rate: " + (duration/encodingTime).toFixed(2) + "X");
-+ log("Encoding rate: " + (duration / encodingTime).toFixed(2) + "X");
- callback(new Blob(encoded));
- });
-
-@@ -48,10 +46,10 @@ function runEncodeTest(log, callback) {
- function convertInterleavedBuffer(buf, channels, samples) {
- var chan, i;
- ret = new Array(channels);
-- for (chan=0; chan<channels; chan++) {
-+ for (chan = 0; chan < channels; chan++) {
- ret[chan] = new Int16Array(samples);
-- for (i=0; i<samples; i++) {
-- ret[chan][i] = buf[i*channels + chan];
-+ for (i = 0; i < samples; i++) {
-+ ret[chan][i] = buf[i * channels + chan];
- }
- }
- return ret;
-diff --git a/js/test/browser/index.html b/js/test/browser/index.html
-index b3a4ee3..6496e46 100644
---- a/js/test/browser/index.html
-+++ b/js/test/browser/index.html
-@@ -1,4 +1,4 @@
--<script src="libshine.js"></script>
-+<script src="libshine_node.js"></script>
- <script src="encode.js"></script>
- <script src="rounds.js"></script>
- <script>
-@@ -7,20 +7,21 @@
- el.innerHTML = el.innerHTML + "<br>" + msg;
- };
-
-- var load = function() {
-- runEncodeTest(log, function (blob) {
-- if (typeof window.URL !== "undefined") {
-- var link = document.getElementById("download-link");
-- link.href = URL.createObjectURL(blob);
-- link.download = "encoded.mp3";
-- }
-+ function onLoad() {
-+ Shine.initialized.then(function () {
-+ runEncodeTest(log, function (blob) {
-+ if (typeof window.URL !== "undefined") {
-+ var link = document.getElementById("download-link");
-+ link.href = URL.createObjectURL(blob);
-+ link.download = "encoded.mp3";
-+ }
-
-- log("");
-- runRoundsTest(Shine, log);
-+ log("");
-+ runRoundsTest(Shine, log);
-+ });
- });
- };
--
-- window.addEventListener("load", load, false);
-+ window.addEventListener("load", onLoad, false);
- </script>
- <a href="#" id="download-link">Download encoded file</a>
- <div id="output"></div>
-diff --git a/js/test/browser/libshine.js b/js/test/browser/libshine.js
-deleted file mode 120000
-index fb57470..0000000
---- a/js/test/browser/libshine.js
-+++ /dev/null
-@@ -1 +0,0 @@
--../../dist/libshine.js
-\ No newline at end of file
-diff --git a/js/test/browser/libshine_node.js b/js/test/browser/libshine_node.js
-new file mode 120000
-index 0000000..07f07a4
---- /dev/null
-+++ b/js/test/browser/libshine_node.js
-@@ -0,0 +1 @@
-+../../dist/libshine_node.js
-\ No newline at end of file
-diff --git a/js/test/lib/rounds.js b/js/test/lib/rounds.js
-index f76410a..1b388b5 100644
---- a/js/test/lib/rounds.js
-+++ b/js/test/lib/rounds.js
-@@ -1,39 +1,35 @@
- var channels = 2; // test.wav is stereo
- var samplerate = 44100; // ditto
-
--var runRoundsTest = function(Shine, log) {
-+var runRoundsTest = function (Shine, log) {
- log("Executing rounds test");
-
- var nPasses = 50;
- var frameSize = 4096;
- var data = new Array(channels);
- var chan;
-- for (chan=0; chan<channels; chan++)
-- data[chan] = new Int16Array(frameSize);
-+ for (chan = 0; chan < channels; chan++) data[chan] = new Int16Array(frameSize);
-
- log("Encoding " + nPasses + " buffers of " + frameSize + " samples");
-- var started = new Date;
-+ var started = new Date();
-
- var shine = new Shine({
- samplerate: samplerate,
- bitrate: 128,
- channels: channels,
-- model: Shine.STEREO
- });
-
- var i;
-- for (i=0; i < nPasses; i++)
-- shine.encode(data);
-+ for (i = 0; i < nPasses; i++) shine.encode(data);
- shine.close();
-
-- var ended = new Date;
-- var duration = (parseFloat(nPasses*frameSize) / parseFloat(samplerate)).toFixed(2);
-- var encodingTime = (ended.getTime() - started.getTime())/1000;
-+ var ended = new Date();
-+ var duration = (parseFloat(nPasses * frameSize) / parseFloat(samplerate)).toFixed(2);
-+ var encodingTime = (ended.getTime() - started.getTime()) / 1000;
- log("Done encoding");
- log("Total duration: " + duration);
- log("Encoding time: " + encodingTime.toFixed(2));
-- log("Encoding rate: " + (duration/encodingTime).toFixed(2) + "X");
-+ log("Encoding rate: " + (duration / encodingTime).toFixed(2) + "X");
- };
-
--if (typeof process === "object" && typeof require === "function")
-- module.exports = runRoundsTest;
-+if (typeof process === "object" && typeof require === "function") module.exports = runRoundsTest;
-diff --git a/js/test/nextjs/.eslintrc.json b/js/test/nextjs/.eslintrc.json
-new file mode 100644
-index 0000000..bffb357
---- /dev/null
-+++ b/js/test/nextjs/.eslintrc.json
-@@ -0,0 +1,3 @@
-+{
-+ "extends": "next/core-web-vitals"
-+}
-diff --git a/js/test/nextjs/.gitignore b/js/test/nextjs/.gitignore
-new file mode 100644
-index 0000000..c87c9b3
---- /dev/null
-+++ b/js/test/nextjs/.gitignore
-@@ -0,0 +1,36 @@
-+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-+
-+# dependencies
-+/node_modules
-+/.pnp
-+.pnp.js
-+
-+# testing
-+/coverage
-+
-+# next.js
-+/.next/
-+/out/
-+
-+# production
-+/build
-+
-+# misc
-+.DS_Store
-+*.pem
-+
-+# debug
-+npm-debug.log*
-+yarn-debug.log*
-+yarn-error.log*
-+.pnpm-debug.log*
-+
-+# local env files
-+.env*.local
-+
-+# vercel
-+.vercel
-+
-+# typescript
-+*.tsbuildinfo
-+next-env.d.ts
-diff --git a/js/test/nextjs/.prettierignore b/js/test/nextjs/.prettierignore
-new file mode 100644
-index 0000000..799a1ca
---- /dev/null
-+++ b/js/test/nextjs/.prettierignore
-@@ -0,0 +1,4 @@
-+.next/
-+out/
-+public/audio
-+__ENV.js
-diff --git a/js/test/nextjs/.prettierrc b/js/test/nextjs/.prettierrc
-new file mode 100644
-index 0000000..a36a92f
---- /dev/null
-+++ b/js/test/nextjs/.prettierrc
-@@ -0,0 +1,12 @@
-+{
-+ "singleQuote": false,
-+ "quoteProps": "as-needed",
-+ "arrowParens": "avoid",
-+ "tabWidth": 2,
-+ "trailingComma": "es5",
-+ "semi": false,
-+ "jsxSingleQuote": true,
-+ "bracketSameLine": false,
-+ "printWidth": 120,
-+ "parser": "typescript"
-+}
-diff --git a/js/test/nextjs/README.md b/js/test/nextjs/README.md
-new file mode 100644
-index 0000000..fb9bcc9
---- /dev/null
-+++ b/js/test/nextjs/README.md
-@@ -0,0 +1,36 @@
-+This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
-+
-+## Getting Started
-+
-+First, run the development server:
-+
-+```bash
-+npm run dev
-+# or
-+yarn dev
-+```
-+
-+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
-+
-+You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
-+
-+[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
-+
-+The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
-+
-+This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
-+
-+## Learn More
-+
-+To learn more about Next.js, take a look at the following resources:
-+
-+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
-+
-+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-+
-+## Deploy on Vercel
-+
-+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
-+
-+Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
-diff --git a/js/test/nextjs/lib/encode.ts b/js/test/nextjs/lib/encode.ts
-new file mode 100644
-index 0000000..6e1ef2d
---- /dev/null
-+++ b/js/test/nextjs/lib/encode.ts
-@@ -0,0 +1,59 @@
-+import { Shine } from "@toots/shine.js"
-+
-+const convertInterleavedBuffer = (buf: Int16Array, channels: number, samples: number) => {
-+ const ret = new Array(channels)
-+ for (let chan = 0; chan < channels; chan++) {
-+ ret[chan] = new Int16Array(samples)
-+ for (let i = 0; i < samples; i++) {
-+ ret[chan][i] = buf[i * channels + chan]
-+ }
-+ }
-+ return ret
-+}
-+
-+export const runEncodeTest = (log: (_: string) => void, callback: (_: Blob) => void) => {
-+ log("Executing encoding test")
-+
-+ const samplerate = 44100
-+ const channels = 2
-+ const bitrate = 128
-+ //const stereoMode = StereoMode.STEREO
-+
-+ const shine = new Shine({
-+ samplerate: samplerate,
-+ channels: channels,
-+ bitrate: bitrate,
-+ // stereoMode: stereoMode,
-+ })
-+
-+ const started = new Date()
-+ let duration = 0.0
-+ const encoded: Uint8Array[] = []
-+
-+ const xhr = new XMLHttpRequest()
-+ xhr.open("GET", "encode.wav", true)
-+ xhr.responseType = "arraybuffer"
-+ xhr.onload = () => {
-+ const samples = xhr.response.byteLength / (2 * channels)
-+ const data = new Int16Array(xhr.response)
-+ const buf = convertInterleavedBuffer(data, channels, samples)
-+ duration += samples / samplerate
-+ encoded.push(shine.encode(buf))
-+ }
-+
-+ log("Got WAV file.")
-+ log("Encoding..")
-+ xhr.addEventListener("load", () => {
-+ encoded.push(shine.close())
-+
-+ const ended = new Date()
-+ const encodingTime = (ended.getTime() - started.getTime()) / 1000
-+ log("Done encoding.")
-+ log("File duration: " + duration.toFixed(2) + " seconds")
-+ log("Encoding time: " + encodingTime.toFixed(2) + " seconds")
-+ log("Encoding rate: " + (duration / encodingTime).toFixed(2) + "X")
-+ callback(new Blob(encoded))
-+ })
-+
-+ xhr.send()
-+}
-diff --git a/js/test/nextjs/lib/encode.wav b/js/test/nextjs/lib/encode.wav
-new file mode 100644
-index 0000000..c8cd595
-Binary files /dev/null and b/js/test/nextjs/lib/encode.wav differ
-diff --git a/js/test/nextjs/lib/rounds.ts b/js/test/nextjs/lib/rounds.ts
-new file mode 100644
-index 0000000..fab9b7c
---- /dev/null
-+++ b/js/test/nextjs/lib/rounds.ts
-@@ -0,0 +1,34 @@
-+import { Shine, StereoMode } from "@toots/shine.js"
-+
-+const channels = 2 // test.wav is stereo
-+const samplerate = 44100 // ditto
-+
-+export const runRoundsTest = (log: (_: string) => void) => {
-+ log("Executing rounds test")
-+
-+ const nPasses = 50
-+ const frameSize = 4096
-+ const data = new Array(channels)
-+ for (let chan = 0; chan < channels; chan++) data[chan] = new Int16Array(frameSize)
-+
-+ log("Encoding " + nPasses + " buffers of " + frameSize + " samples")
-+ const started = new Date()
-+
-+ const shine = new Shine({
-+ samplerate: samplerate,
-+ bitrate: 128,
-+ channels: channels,
-+ stereoMode: StereoMode.STEREO,
-+ })
-+
-+ for (let i = 0; i < nPasses; i++) shine.encode(data)
-+ shine.close()
-+
-+ const ended = new Date()
-+ const duration = (nPasses * frameSize) / samplerate
-+ const encodingTime = (ended.getTime() - started.getTime()) / 1000
-+ log("Done encoding")
-+ log("Total duration: " + duration.toFixed(2))
-+ log("Encoding time: " + encodingTime.toFixed(2))
-+ log("Encoding rate: " + (duration / encodingTime).toFixed(2) + "X")
-+}
-diff --git a/js/test/nextjs/next.config.js b/js/test/nextjs/next.config.js
-new file mode 100644
-index 0000000..a843cbe
---- /dev/null
-+++ b/js/test/nextjs/next.config.js
-@@ -0,0 +1,6 @@
-+/** @type {import('next').NextConfig} */
-+const nextConfig = {
-+ reactStrictMode: true,
-+}
-+
-+module.exports = nextConfig
-diff --git a/js/test/nextjs/package-lock.json b/js/test/nextjs/package-lock.json
-new file mode 100644
-index 0000000..02208b0
---- /dev/null
-+++ b/js/test/nextjs/package-lock.json
-@@ -0,0 +1,3084 @@
-+{
-+ "name": "shine-nextjs-test-app",
-+ "version": "0.1.0",
-+ "lockfileVersion": 3,
-+ "requires": true,
-+ "packages": {
-+ "": {
-+ "name": "shine-nextjs-test-app",
-+ "version": "0.1.0",
-+ "dependencies": {
-+ "@next/font": "13.1.1",
-+ "@toots/shine.js": "file:../..",
-+ "@types/node": "18.11.18",
-+ "@types/react": "18.0.26",
-+ "@types/react-dom": "18.0.10",
-+ "eslint": "8.31.0",
-+ "eslint-config-next": "13.1.1",
-+ "next": "13.1.1",
-+ "react": "18.2.0",
-+ "react-dom": "18.2.0",
-+ "typescript": "4.9.4"
-+ },
-+ "devDependencies": {
-+ "prettier": "^2.8.1"
-+ }
-+ },
-+ "node_modules/@babel/runtime": {
-+ "version": "7.20.7",
-+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz",
-+ "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==",
-+ "dependencies": {
-+ "regenerator-runtime": "^0.13.11"
-+ },
-+ "engines": {
-+ "node": ">=6.9.0"
-+ }
-+ },
-+ "node_modules/@babel/runtime-corejs3": {
-+ "version": "7.20.7",
-+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.7.tgz",
-+ "integrity": "sha512-jr9lCZ4RbRQmCR28Q8U8Fu49zvFqLxTY9AMOUz+iyMohMoAgpEcVxY+wJNay99oXOpOcCTODkk70NDN2aaJEeg==",
-+ "dependencies": {
-+ "core-js-pure": "^3.25.1",
-+ "regenerator-runtime": "^0.13.11"
-+ },
-+ "engines": {
-+ "node": ">=6.9.0"
-+ }
-+ },
-+ "node_modules/@eslint/eslintrc": {
-+ "version": "1.4.1",
-+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
-+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
-+ "dependencies": {
-+ "ajv": "^6.12.4",
-+ "debug": "^4.3.2",
-+ "espree": "^9.4.0",
-+ "globals": "^13.19.0",
-+ "ignore": "^5.2.0",
-+ "import-fresh": "^3.2.1",
-+ "js-yaml": "^4.1.0",
-+ "minimatch": "^3.1.2",
-+ "strip-json-comments": "^3.1.1"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/eslint"
-+ }
-+ },
-+ "node_modules/@humanwhocodes/config-array": {
-+ "version": "0.11.8",
-+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
-+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
-+ "dependencies": {
-+ "@humanwhocodes/object-schema": "^1.2.1",
-+ "debug": "^4.1.1",
-+ "minimatch": "^3.0.5"
-+ },
-+ "engines": {
-+ "node": ">=10.10.0"
-+ }
-+ },
-+ "node_modules/@humanwhocodes/module-importer": {
-+ "version": "1.0.1",
-+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
-+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
-+ "engines": {
-+ "node": ">=12.22"
-+ },
-+ "funding": {
-+ "type": "github",
-+ "url": "https://github.com/sponsors/nzakas"
-+ }
-+ },
-+ "node_modules/@humanwhocodes/object-schema": {
-+ "version": "1.2.1",
-+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
-+ },
-+ "node_modules/@next/env": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.1.tgz",
-+ "integrity": "sha512-vFMyXtPjSAiOXOywMojxfKIqE3VWN5RCAx+tT3AS3pcKjMLFTCJFUWsKv8hC+87Z1F4W3r68qTwDFZIFmd5Xkw=="
-+ },
-+ "node_modules/@next/eslint-plugin-next": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.1.tgz",
-+ "integrity": "sha512-SBrOFS8PC3nQ5aeZmawJkjKkWjwK9RoxvBSv/86nZp0ubdoVQoko8r8htALd9ufp16NhacCdqhu9bzZLDWtALQ==",
-+ "dependencies": {
-+ "glob": "7.1.7"
-+ }
-+ },
-+ "node_modules/@next/font": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.1.tgz",
-+ "integrity": "sha512-amygRorS05hYK1/XQRZo5qBl7l2fpHnezeKU/cNveWU5QJg+sg8gMGkUXHtvesNKpiKIJshBRH1TzvO+2sKpvQ=="
-+ },
-+ "node_modules/@next/swc-android-arm-eabi": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.1.tgz",
-+ "integrity": "sha512-qnFCx1kT3JTWhWve4VkeWuZiyjG0b5T6J2iWuin74lORCupdrNukxkq9Pm+Z7PsatxuwVJMhjUoYz7H4cWzx2A==",
-+ "cpu": [
-+ "arm"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "android"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-android-arm64": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.1.tgz",
-+ "integrity": "sha512-eCiZhTzjySubNqUnNkQCjU3Fh+ep3C6b5DCM5FKzsTH/3Gr/4Y7EiaPZKILbvnXmhWtKPIdcY6Zjx51t4VeTfA==",
-+ "cpu": [
-+ "arm64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "android"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-darwin-arm64": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.1.tgz",
-+ "integrity": "sha512-9zRJSSIwER5tu9ADDkPw5rIZ+Np44HTXpYMr0rkM656IvssowPxmhK0rTreC1gpUCYwFsRbxarUJnJsTWiutPg==",
-+ "cpu": [
-+ "arm64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "darwin"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-darwin-x64": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.1.tgz",
-+ "integrity": "sha512-qWr9qEn5nrnlhB0rtjSdR00RRZEtxg4EGvicIipqZWEyayPxhUu6NwKiG8wZiYZCLfJ5KWr66PGSNeDMGlNaiA==",
-+ "cpu": [
-+ "x64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "darwin"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-freebsd-x64": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.1.tgz",
-+ "integrity": "sha512-UwP4w/NcQ7V/VJEj3tGVszgb4pyUCt3lzJfUhjDMUmQbzG9LDvgiZgAGMYH6L21MoyAATJQPDGiAMWAPKsmumA==",
-+ "cpu": [
-+ "x64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "freebsd"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-linux-arm-gnueabihf": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.1.tgz",
-+ "integrity": "sha512-CnsxmKHco9sosBs1XcvCXP845Db+Wx1G0qouV5+Gr+HT/ZlDYEWKoHVDgnJXLVEQzq4FmHddBNGbXvgqM1Gfkg==",
-+ "cpu": [
-+ "arm"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "linux"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-linux-arm64-gnu": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.1.tgz",
-+ "integrity": "sha512-JfDq1eri5Dif+VDpTkONRd083780nsMCOKoFG87wA0sa4xL8LGcXIBAkUGIC1uVy9SMsr2scA9CySLD/i+Oqiw==",
-+ "cpu": [
-+ "arm64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "linux"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-linux-arm64-musl": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.1.tgz",
-+ "integrity": "sha512-GA67ZbDq2AW0CY07zzGt07M5b5Yaq5qUpFIoW3UFfjOPgb0Sqf3DAW7GtFMK1sF4ROHsRDMGQ9rnT0VM2dVfKA==",
-+ "cpu": [
-+ "arm64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "linux"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-linux-x64-gnu": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.1.tgz",
-+ "integrity": "sha512-nnjuBrbzvqaOJaV+XgT8/+lmXrSCOt1YYZn/irbDb2fR2QprL6Q7WJNgwsZNxiLSfLdv+2RJGGegBx9sLBEzGA==",
-+ "cpu": [
-+ "x64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "linux"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-linux-x64-musl": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.1.tgz",
-+ "integrity": "sha512-CM9xnAQNIZ8zf/igbIT/i3xWbQZYaF397H+JroF5VMOCUleElaMdQLL5riJml8wUfPoN3dtfn2s4peSr3azz/g==",
-+ "cpu": [
-+ "x64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "linux"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-win32-arm64-msvc": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.1.tgz",
-+ "integrity": "sha512-pzUHOGrbgfGgPlOMx9xk3QdPJoRPU+om84hqVoe6u+E0RdwOG0Ho/2UxCgDqmvpUrMab1Deltlt6RqcXFpnigQ==",
-+ "cpu": [
-+ "arm64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "win32"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-win32-ia32-msvc": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.1.tgz",
-+ "integrity": "sha512-WeX8kVS46aobM9a7Xr/kEPcrTyiwJqQv/tbw6nhJ4fH9xNZ+cEcyPoQkwPo570dCOLz3Zo9S2q0E6lJ/EAUOBg==",
-+ "cpu": [
-+ "ia32"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "win32"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@next/swc-win32-x64-msvc": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.1.tgz",
-+ "integrity": "sha512-mVF0/3/5QAc5EGVnb8ll31nNvf3BWpPY4pBb84tk+BfQglWLqc5AC9q1Ht/YMWiEgs8ALNKEQ3GQnbY0bJF2Gg==",
-+ "cpu": [
-+ "x64"
-+ ],
-+ "optional": true,
-+ "os": [
-+ "win32"
-+ ],
-+ "engines": {
-+ "node": ">= 10"
-+ }
-+ },
-+ "node_modules/@nodelib/fs.scandir": {
-+ "version": "2.1.5",
-+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-+ "dependencies": {
-+ "@nodelib/fs.stat": "2.0.5",
-+ "run-parallel": "^1.1.9"
-+ },
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/@nodelib/fs.stat": {
-+ "version": "2.0.5",
-+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/@nodelib/fs.walk": {
-+ "version": "1.2.8",
-+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-+ "dependencies": {
-+ "@nodelib/fs.scandir": "2.1.5",
-+ "fastq": "^1.6.0"
-+ },
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/@pkgr/utils": {
-+ "version": "2.3.1",
-+ "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz",
-+ "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==",
-+ "dependencies": {
-+ "cross-spawn": "^7.0.3",
-+ "is-glob": "^4.0.3",
-+ "open": "^8.4.0",
-+ "picocolors": "^1.0.0",
-+ "tiny-glob": "^0.2.9",
-+ "tslib": "^2.4.0"
-+ },
-+ "engines": {
-+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/unts"
-+ }
-+ },
-+ "node_modules/@rushstack/eslint-patch": {
-+ "version": "1.2.0",
-+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
-+ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
-+ },
-+ "node_modules/@swc/helpers": {
-+ "version": "0.4.14",
-+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
-+ "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
-+ "dependencies": {
-+ "tslib": "^2.4.0"
-+ }
-+ },
-+ "node_modules/@toots/shine.js": {
-+ "version": "1.0.1",
-+ "resolved": "file:../..",
-+ "license": "LGPL-2.0-only"
-+ },
-+ "node_modules/@types/json5": {
-+ "version": "0.0.29",
-+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
-+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
-+ },
-+ "node_modules/@types/node": {
-+ "version": "18.11.18",
-+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
-+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
-+ },
-+ "node_modules/@types/prop-types": {
-+ "version": "15.7.5",
-+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
-+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
-+ },
-+ "node_modules/@types/react": {
-+ "version": "18.0.26",
-+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz",
-+ "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==",
-+ "dependencies": {
-+ "@types/prop-types": "*",
-+ "@types/scheduler": "*",
-+ "csstype": "^3.0.2"
-+ }
-+ },
-+ "node_modules/@types/react-dom": {
-+ "version": "18.0.10",
-+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
-+ "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
-+ "dependencies": {
-+ "@types/react": "*"
-+ }
-+ },
-+ "node_modules/@types/scheduler": {
-+ "version": "0.16.2",
-+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
-+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
-+ },
-+ "node_modules/@typescript-eslint/parser": {
-+ "version": "5.47.1",
-+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz",
-+ "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==",
-+ "dependencies": {
-+ "@typescript-eslint/scope-manager": "5.47.1",
-+ "@typescript-eslint/types": "5.47.1",
-+ "@typescript-eslint/typescript-estree": "5.47.1",
-+ "debug": "^4.3.4"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/typescript-eslint"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
-+ },
-+ "peerDependenciesMeta": {
-+ "typescript": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/@typescript-eslint/scope-manager": {
-+ "version": "5.47.1",
-+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz",
-+ "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==",
-+ "dependencies": {
-+ "@typescript-eslint/types": "5.47.1",
-+ "@typescript-eslint/visitor-keys": "5.47.1"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/typescript-eslint"
-+ }
-+ },
-+ "node_modules/@typescript-eslint/types": {
-+ "version": "5.47.1",
-+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz",
-+ "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==",
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/typescript-eslint"
-+ }
-+ },
-+ "node_modules/@typescript-eslint/typescript-estree": {
-+ "version": "5.47.1",
-+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz",
-+ "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==",
-+ "dependencies": {
-+ "@typescript-eslint/types": "5.47.1",
-+ "@typescript-eslint/visitor-keys": "5.47.1",
-+ "debug": "^4.3.4",
-+ "globby": "^11.1.0",
-+ "is-glob": "^4.0.3",
-+ "semver": "^7.3.7",
-+ "tsutils": "^3.21.0"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/typescript-eslint"
-+ },
-+ "peerDependenciesMeta": {
-+ "typescript": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/@typescript-eslint/visitor-keys": {
-+ "version": "5.47.1",
-+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz",
-+ "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==",
-+ "dependencies": {
-+ "@typescript-eslint/types": "5.47.1",
-+ "eslint-visitor-keys": "^3.3.0"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/typescript-eslint"
-+ }
-+ },
-+ "node_modules/acorn": {
-+ "version": "8.8.1",
-+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
-+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
-+ "bin": {
-+ "acorn": "bin/acorn"
-+ },
-+ "engines": {
-+ "node": ">=0.4.0"
-+ }
-+ },
-+ "node_modules/acorn-jsx": {
-+ "version": "5.3.2",
-+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-+ "peerDependencies": {
-+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
-+ }
-+ },
-+ "node_modules/ajv": {
-+ "version": "6.12.6",
-+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
-+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-+ "dependencies": {
-+ "fast-deep-equal": "^3.1.1",
-+ "fast-json-stable-stringify": "^2.0.0",
-+ "json-schema-traverse": "^0.4.1",
-+ "uri-js": "^4.2.2"
-+ },
-+ "funding": {
-+ "type": "github",
-+ "url": "https://github.com/sponsors/epoberezkin"
-+ }
-+ },
-+ "node_modules/ansi-regex": {
-+ "version": "5.0.1",
-+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/ansi-styles": {
-+ "version": "4.3.0",
-+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-+ "dependencies": {
-+ "color-convert": "^2.0.1"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ },
-+ "funding": {
-+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-+ }
-+ },
-+ "node_modules/argparse": {
-+ "version": "2.0.1",
-+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-+ },
-+ "node_modules/aria-query": {
-+ "version": "4.2.2",
-+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
-+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
-+ "dependencies": {
-+ "@babel/runtime": "^7.10.2",
-+ "@babel/runtime-corejs3": "^7.10.2"
-+ },
-+ "engines": {
-+ "node": ">=6.0"
-+ }
-+ },
-+ "node_modules/array-includes": {
-+ "version": "3.1.6",
-+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
-+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4",
-+ "get-intrinsic": "^1.1.3",
-+ "is-string": "^1.0.7"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/array-union": {
-+ "version": "2.1.0",
-+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
-+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/array.prototype.flat": {
-+ "version": "1.3.1",
-+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
-+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4",
-+ "es-shim-unscopables": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/array.prototype.flatmap": {
-+ "version": "1.3.1",
-+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
-+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4",
-+ "es-shim-unscopables": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/array.prototype.tosorted": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
-+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4",
-+ "es-shim-unscopables": "^1.0.0",
-+ "get-intrinsic": "^1.1.3"
-+ }
-+ },
-+ "node_modules/ast-types-flow": {
-+ "version": "0.0.7",
-+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
-+ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
-+ },
-+ "node_modules/axe-core": {
-+ "version": "4.6.1",
-+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz",
-+ "integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==",
-+ "engines": {
-+ "node": ">=4"
-+ }
-+ },
-+ "node_modules/axobject-query": {
-+ "version": "2.2.0",
-+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
-+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
-+ },
-+ "node_modules/balanced-match": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-+ },
-+ "node_modules/brace-expansion": {
-+ "version": "1.1.11",
-+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-+ "dependencies": {
-+ "balanced-match": "^1.0.0",
-+ "concat-map": "0.0.1"
-+ }
-+ },
-+ "node_modules/braces": {
-+ "version": "3.0.2",
-+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-+ "dependencies": {
-+ "fill-range": "^7.0.1"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/call-bind": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
-+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
-+ "dependencies": {
-+ "function-bind": "^1.1.1",
-+ "get-intrinsic": "^1.0.2"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/callsites": {
-+ "version": "3.1.0",
-+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-+ "engines": {
-+ "node": ">=6"
-+ }
-+ },
-+ "node_modules/caniuse-lite": {
-+ "version": "1.0.30001441",
-+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz",
-+ "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==",
-+ "funding": [
-+ {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/browserslist"
-+ },
-+ {
-+ "type": "tidelift",
-+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-+ }
-+ ]
-+ },
-+ "node_modules/chalk": {
-+ "version": "4.1.2",
-+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-+ "dependencies": {
-+ "ansi-styles": "^4.1.0",
-+ "supports-color": "^7.1.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/chalk/chalk?sponsor=1"
-+ }
-+ },
-+ "node_modules/client-only": {
-+ "version": "0.0.1",
-+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
-+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
-+ },
-+ "node_modules/color-convert": {
-+ "version": "2.0.1",
-+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-+ "dependencies": {
-+ "color-name": "~1.1.4"
-+ },
-+ "engines": {
-+ "node": ">=7.0.0"
-+ }
-+ },
-+ "node_modules/color-name": {
-+ "version": "1.1.4",
-+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-+ },
-+ "node_modules/concat-map": {
-+ "version": "0.0.1",
-+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
-+ },
-+ "node_modules/core-js-pure": {
-+ "version": "3.27.1",
-+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.27.1.tgz",
-+ "integrity": "sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw==",
-+ "hasInstallScript": true,
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/core-js"
-+ }
-+ },
-+ "node_modules/cross-spawn": {
-+ "version": "7.0.3",
-+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-+ "dependencies": {
-+ "path-key": "^3.1.0",
-+ "shebang-command": "^2.0.0",
-+ "which": "^2.0.1"
-+ },
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/csstype": {
-+ "version": "3.1.1",
-+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
-+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
-+ },
-+ "node_modules/damerau-levenshtein": {
-+ "version": "1.0.8",
-+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
-+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
-+ },
-+ "node_modules/debug": {
-+ "version": "4.3.4",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-+ "dependencies": {
-+ "ms": "2.1.2"
-+ },
-+ "engines": {
-+ "node": ">=6.0"
-+ },
-+ "peerDependenciesMeta": {
-+ "supports-color": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/deep-is": {
-+ "version": "0.1.4",
-+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
-+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
-+ },
-+ "node_modules/define-lazy-prop": {
-+ "version": "2.0.0",
-+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
-+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/define-properties": {
-+ "version": "1.1.4",
-+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
-+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
-+ "dependencies": {
-+ "has-property-descriptors": "^1.0.0",
-+ "object-keys": "^1.1.1"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/dir-glob": {
-+ "version": "3.0.1",
-+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
-+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
-+ "dependencies": {
-+ "path-type": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/doctrine": {
-+ "version": "3.0.0",
-+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-+ "dependencies": {
-+ "esutils": "^2.0.2"
-+ },
-+ "engines": {
-+ "node": ">=6.0.0"
-+ }
-+ },
-+ "node_modules/emoji-regex": {
-+ "version": "9.2.2",
-+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
-+ },
-+ "node_modules/enhanced-resolve": {
-+ "version": "5.12.0",
-+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
-+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
-+ "dependencies": {
-+ "graceful-fs": "^4.2.4",
-+ "tapable": "^2.2.0"
-+ },
-+ "engines": {
-+ "node": ">=10.13.0"
-+ }
-+ },
-+ "node_modules/es-abstract": {
-+ "version": "1.20.5",
-+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
-+ "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "es-to-primitive": "^1.2.1",
-+ "function-bind": "^1.1.1",
-+ "function.prototype.name": "^1.1.5",
-+ "get-intrinsic": "^1.1.3",
-+ "get-symbol-description": "^1.0.0",
-+ "gopd": "^1.0.1",
-+ "has": "^1.0.3",
-+ "has-property-descriptors": "^1.0.0",
-+ "has-symbols": "^1.0.3",
-+ "internal-slot": "^1.0.3",
-+ "is-callable": "^1.2.7",
-+ "is-negative-zero": "^2.0.2",
-+ "is-regex": "^1.1.4",
-+ "is-shared-array-buffer": "^1.0.2",
-+ "is-string": "^1.0.7",
-+ "is-weakref": "^1.0.2",
-+ "object-inspect": "^1.12.2",
-+ "object-keys": "^1.1.1",
-+ "object.assign": "^4.1.4",
-+ "regexp.prototype.flags": "^1.4.3",
-+ "safe-regex-test": "^1.0.0",
-+ "string.prototype.trimend": "^1.0.6",
-+ "string.prototype.trimstart": "^1.0.6",
-+ "unbox-primitive": "^1.0.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/es-shim-unscopables": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
-+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
-+ "dependencies": {
-+ "has": "^1.0.3"
-+ }
-+ },
-+ "node_modules/es-to-primitive": {
-+ "version": "1.2.1",
-+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-+ "dependencies": {
-+ "is-callable": "^1.1.4",
-+ "is-date-object": "^1.0.1",
-+ "is-symbol": "^1.0.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/escape-string-regexp": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/eslint": {
-+ "version": "8.31.0",
-+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
-+ "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
-+ "dependencies": {
-+ "@eslint/eslintrc": "^1.4.1",
-+ "@humanwhocodes/config-array": "^0.11.8",
-+ "@humanwhocodes/module-importer": "^1.0.1",
-+ "@nodelib/fs.walk": "^1.2.8",
-+ "ajv": "^6.10.0",
-+ "chalk": "^4.0.0",
-+ "cross-spawn": "^7.0.2",
-+ "debug": "^4.3.2",
-+ "doctrine": "^3.0.0",
-+ "escape-string-regexp": "^4.0.0",
-+ "eslint-scope": "^7.1.1",
-+ "eslint-utils": "^3.0.0",
-+ "eslint-visitor-keys": "^3.3.0",
-+ "espree": "^9.4.0",
-+ "esquery": "^1.4.0",
-+ "esutils": "^2.0.2",
-+ "fast-deep-equal": "^3.1.3",
-+ "file-entry-cache": "^6.0.1",
-+ "find-up": "^5.0.0",
-+ "glob-parent": "^6.0.2",
-+ "globals": "^13.19.0",
-+ "grapheme-splitter": "^1.0.4",
-+ "ignore": "^5.2.0",
-+ "import-fresh": "^3.0.0",
-+ "imurmurhash": "^0.1.4",
-+ "is-glob": "^4.0.0",
-+ "is-path-inside": "^3.0.3",
-+ "js-sdsl": "^4.1.4",
-+ "js-yaml": "^4.1.0",
-+ "json-stable-stringify-without-jsonify": "^1.0.1",
-+ "levn": "^0.4.1",
-+ "lodash.merge": "^4.6.2",
-+ "minimatch": "^3.1.2",
-+ "natural-compare": "^1.4.0",
-+ "optionator": "^0.9.1",
-+ "regexpp": "^3.2.0",
-+ "strip-ansi": "^6.0.1",
-+ "strip-json-comments": "^3.1.0",
-+ "text-table": "^0.2.0"
-+ },
-+ "bin": {
-+ "eslint": "bin/eslint.js"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/eslint"
-+ }
-+ },
-+ "node_modules/eslint-config-next": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.1.1.tgz",
-+ "integrity": "sha512-/5S2XGWlGaiqrRhzpn51ux5JUSLwx8PVK2keLi5xk7QmhfYB8PqE6R6SlVw6hgnf/VexvUXSrlNJ/su00NhtHQ==",
-+ "dependencies": {
-+ "@next/eslint-plugin-next": "13.1.1",
-+ "@rushstack/eslint-patch": "^1.1.3",
-+ "@typescript-eslint/parser": "^5.42.0",
-+ "eslint-import-resolver-node": "^0.3.6",
-+ "eslint-import-resolver-typescript": "^3.5.2",
-+ "eslint-plugin-import": "^2.26.0",
-+ "eslint-plugin-jsx-a11y": "^6.5.1",
-+ "eslint-plugin-react": "^7.31.7",
-+ "eslint-plugin-react-hooks": "^4.5.0"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^7.23.0 || ^8.0.0",
-+ "typescript": ">=3.3.1"
-+ },
-+ "peerDependenciesMeta": {
-+ "typescript": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/eslint-import-resolver-node": {
-+ "version": "0.3.6",
-+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
-+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
-+ "dependencies": {
-+ "debug": "^3.2.7",
-+ "resolve": "^1.20.0"
-+ }
-+ },
-+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
-+ "version": "3.2.7",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-+ "dependencies": {
-+ "ms": "^2.1.1"
-+ }
-+ },
-+ "node_modules/eslint-import-resolver-typescript": {
-+ "version": "3.5.2",
-+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz",
-+ "integrity": "sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==",
-+ "dependencies": {
-+ "debug": "^4.3.4",
-+ "enhanced-resolve": "^5.10.0",
-+ "get-tsconfig": "^4.2.0",
-+ "globby": "^13.1.2",
-+ "is-core-module": "^2.10.0",
-+ "is-glob": "^4.0.3",
-+ "synckit": "^0.8.4"
-+ },
-+ "engines": {
-+ "node": "^14.18.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
-+ },
-+ "peerDependencies": {
-+ "eslint": "*",
-+ "eslint-plugin-import": "*"
-+ }
-+ },
-+ "node_modules/eslint-import-resolver-typescript/node_modules/globby": {
-+ "version": "13.1.3",
-+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz",
-+ "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==",
-+ "dependencies": {
-+ "dir-glob": "^3.0.1",
-+ "fast-glob": "^3.2.11",
-+ "ignore": "^5.2.0",
-+ "merge2": "^1.4.1",
-+ "slash": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/eslint-import-resolver-typescript/node_modules/slash": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
-+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
-+ "engines": {
-+ "node": ">=12"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/eslint-module-utils": {
-+ "version": "2.7.4",
-+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
-+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
-+ "dependencies": {
-+ "debug": "^3.2.7"
-+ },
-+ "engines": {
-+ "node": ">=4"
-+ },
-+ "peerDependenciesMeta": {
-+ "eslint": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/eslint-module-utils/node_modules/debug": {
-+ "version": "3.2.7",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-+ "dependencies": {
-+ "ms": "^2.1.1"
-+ }
-+ },
-+ "node_modules/eslint-plugin-import": {
-+ "version": "2.26.0",
-+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
-+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
-+ "dependencies": {
-+ "array-includes": "^3.1.4",
-+ "array.prototype.flat": "^1.2.5",
-+ "debug": "^2.6.9",
-+ "doctrine": "^2.1.0",
-+ "eslint-import-resolver-node": "^0.3.6",
-+ "eslint-module-utils": "^2.7.3",
-+ "has": "^1.0.3",
-+ "is-core-module": "^2.8.1",
-+ "is-glob": "^4.0.3",
-+ "minimatch": "^3.1.2",
-+ "object.values": "^1.1.5",
-+ "resolve": "^1.22.0",
-+ "tsconfig-paths": "^3.14.1"
-+ },
-+ "engines": {
-+ "node": ">=4"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
-+ }
-+ },
-+ "node_modules/eslint-plugin-import/node_modules/debug": {
-+ "version": "2.6.9",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-+ "dependencies": {
-+ "ms": "2.0.0"
-+ }
-+ },
-+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
-+ "version": "2.1.0",
-+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-+ "dependencies": {
-+ "esutils": "^2.0.2"
-+ },
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/eslint-plugin-import/node_modules/ms": {
-+ "version": "2.0.0",
-+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
-+ },
-+ "node_modules/eslint-plugin-jsx-a11y": {
-+ "version": "6.6.1",
-+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
-+ "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
-+ "dependencies": {
-+ "@babel/runtime": "^7.18.9",
-+ "aria-query": "^4.2.2",
-+ "array-includes": "^3.1.5",
-+ "ast-types-flow": "^0.0.7",
-+ "axe-core": "^4.4.3",
-+ "axobject-query": "^2.2.0",
-+ "damerau-levenshtein": "^1.0.8",
-+ "emoji-regex": "^9.2.2",
-+ "has": "^1.0.3",
-+ "jsx-ast-utils": "^3.3.2",
-+ "language-tags": "^1.0.5",
-+ "minimatch": "^3.1.2",
-+ "semver": "^6.3.0"
-+ },
-+ "engines": {
-+ "node": ">=4.0"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
-+ }
-+ },
-+ "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
-+ "version": "6.3.0",
-+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-+ "bin": {
-+ "semver": "bin/semver.js"
-+ }
-+ },
-+ "node_modules/eslint-plugin-react": {
-+ "version": "7.31.11",
-+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz",
-+ "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==",
-+ "dependencies": {
-+ "array-includes": "^3.1.6",
-+ "array.prototype.flatmap": "^1.3.1",
-+ "array.prototype.tosorted": "^1.1.1",
-+ "doctrine": "^2.1.0",
-+ "estraverse": "^5.3.0",
-+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
-+ "minimatch": "^3.1.2",
-+ "object.entries": "^1.1.6",
-+ "object.fromentries": "^2.0.6",
-+ "object.hasown": "^1.1.2",
-+ "object.values": "^1.1.6",
-+ "prop-types": "^15.8.1",
-+ "resolve": "^2.0.0-next.3",
-+ "semver": "^6.3.0",
-+ "string.prototype.matchall": "^4.0.8"
-+ },
-+ "engines": {
-+ "node": ">=4"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
-+ }
-+ },
-+ "node_modules/eslint-plugin-react-hooks": {
-+ "version": "4.6.0",
-+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
-+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "peerDependencies": {
-+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
-+ }
-+ },
-+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
-+ "version": "2.1.0",
-+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-+ "dependencies": {
-+ "esutils": "^2.0.2"
-+ },
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/eslint-plugin-react/node_modules/resolve": {
-+ "version": "2.0.0-next.4",
-+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
-+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
-+ "dependencies": {
-+ "is-core-module": "^2.9.0",
-+ "path-parse": "^1.0.7",
-+ "supports-preserve-symlinks-flag": "^1.0.0"
-+ },
-+ "bin": {
-+ "resolve": "bin/resolve"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/eslint-plugin-react/node_modules/semver": {
-+ "version": "6.3.0",
-+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-+ "bin": {
-+ "semver": "bin/semver.js"
-+ }
-+ },
-+ "node_modules/eslint-scope": {
-+ "version": "7.1.1",
-+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
-+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
-+ "dependencies": {
-+ "esrecurse": "^4.3.0",
-+ "estraverse": "^5.2.0"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ }
-+ },
-+ "node_modules/eslint-utils": {
-+ "version": "3.0.0",
-+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-+ "dependencies": {
-+ "eslint-visitor-keys": "^2.0.0"
-+ },
-+ "engines": {
-+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/mysticatea"
-+ },
-+ "peerDependencies": {
-+ "eslint": ">=5"
-+ }
-+ },
-+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
-+ "version": "2.1.0",
-+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
-+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
-+ "engines": {
-+ "node": ">=10"
-+ }
-+ },
-+ "node_modules/eslint-visitor-keys": {
-+ "version": "3.3.0",
-+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
-+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ }
-+ },
-+ "node_modules/espree": {
-+ "version": "9.4.1",
-+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
-+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
-+ "dependencies": {
-+ "acorn": "^8.8.0",
-+ "acorn-jsx": "^5.3.2",
-+ "eslint-visitor-keys": "^3.3.0"
-+ },
-+ "engines": {
-+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/eslint"
-+ }
-+ },
-+ "node_modules/esquery": {
-+ "version": "1.4.0",
-+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
-+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
-+ "dependencies": {
-+ "estraverse": "^5.1.0"
-+ },
-+ "engines": {
-+ "node": ">=0.10"
-+ }
-+ },
-+ "node_modules/esrecurse": {
-+ "version": "4.3.0",
-+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-+ "dependencies": {
-+ "estraverse": "^5.2.0"
-+ },
-+ "engines": {
-+ "node": ">=4.0"
-+ }
-+ },
-+ "node_modules/estraverse": {
-+ "version": "5.3.0",
-+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-+ "engines": {
-+ "node": ">=4.0"
-+ }
-+ },
-+ "node_modules/esutils": {
-+ "version": "2.0.3",
-+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/fast-deep-equal": {
-+ "version": "3.1.3",
-+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-+ },
-+ "node_modules/fast-glob": {
-+ "version": "3.2.12",
-+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
-+ "dependencies": {
-+ "@nodelib/fs.stat": "^2.0.2",
-+ "@nodelib/fs.walk": "^1.2.3",
-+ "glob-parent": "^5.1.2",
-+ "merge2": "^1.3.0",
-+ "micromatch": "^4.0.4"
-+ },
-+ "engines": {
-+ "node": ">=8.6.0"
-+ }
-+ },
-+ "node_modules/fast-glob/node_modules/glob-parent": {
-+ "version": "5.1.2",
-+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-+ "dependencies": {
-+ "is-glob": "^4.0.1"
-+ },
-+ "engines": {
-+ "node": ">= 6"
-+ }
-+ },
-+ "node_modules/fast-json-stable-stringify": {
-+ "version": "2.1.0",
-+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-+ },
-+ "node_modules/fast-levenshtein": {
-+ "version": "2.0.6",
-+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-+ },
-+ "node_modules/fastq": {
-+ "version": "1.14.0",
-+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
-+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
-+ "dependencies": {
-+ "reusify": "^1.0.4"
-+ }
-+ },
-+ "node_modules/file-entry-cache": {
-+ "version": "6.0.1",
-+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-+ "dependencies": {
-+ "flat-cache": "^3.0.4"
-+ },
-+ "engines": {
-+ "node": "^10.12.0 || >=12.0.0"
-+ }
-+ },
-+ "node_modules/fill-range": {
-+ "version": "7.0.1",
-+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-+ "dependencies": {
-+ "to-regex-range": "^5.0.1"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/find-up": {
-+ "version": "5.0.0",
-+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
-+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
-+ "dependencies": {
-+ "locate-path": "^6.0.0",
-+ "path-exists": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/flat-cache": {
-+ "version": "3.0.4",
-+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
-+ "dependencies": {
-+ "flatted": "^3.1.0",
-+ "rimraf": "^3.0.2"
-+ },
-+ "engines": {
-+ "node": "^10.12.0 || >=12.0.0"
-+ }
-+ },
-+ "node_modules/flatted": {
-+ "version": "3.2.7",
-+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
-+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
-+ },
-+ "node_modules/fs.realpath": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-+ },
-+ "node_modules/function-bind": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-+ },
-+ "node_modules/function.prototype.name": {
-+ "version": "1.1.5",
-+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
-+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.3",
-+ "es-abstract": "^1.19.0",
-+ "functions-have-names": "^1.2.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/functions-have-names": {
-+ "version": "1.2.3",
-+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
-+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/get-intrinsic": {
-+ "version": "1.1.3",
-+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
-+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
-+ "dependencies": {
-+ "function-bind": "^1.1.1",
-+ "has": "^1.0.3",
-+ "has-symbols": "^1.0.3"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/get-symbol-description": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
-+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "get-intrinsic": "^1.1.1"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/get-tsconfig": {
-+ "version": "4.2.0",
-+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.2.0.tgz",
-+ "integrity": "sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==",
-+ "funding": {
-+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
-+ }
-+ },
-+ "node_modules/glob": {
-+ "version": "7.1.7",
-+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
-+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
-+ "dependencies": {
-+ "fs.realpath": "^1.0.0",
-+ "inflight": "^1.0.4",
-+ "inherits": "2",
-+ "minimatch": "^3.0.4",
-+ "once": "^1.3.0",
-+ "path-is-absolute": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": "*"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/isaacs"
-+ }
-+ },
-+ "node_modules/glob-parent": {
-+ "version": "6.0.2",
-+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-+ "dependencies": {
-+ "is-glob": "^4.0.3"
-+ },
-+ "engines": {
-+ "node": ">=10.13.0"
-+ }
-+ },
-+ "node_modules/globals": {
-+ "version": "13.19.0",
-+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
-+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
-+ "dependencies": {
-+ "type-fest": "^0.20.2"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/globalyzer": {
-+ "version": "0.1.0",
-+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
-+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
-+ },
-+ "node_modules/globby": {
-+ "version": "11.1.0",
-+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-+ "dependencies": {
-+ "array-union": "^2.1.0",
-+ "dir-glob": "^3.0.1",
-+ "fast-glob": "^3.2.9",
-+ "ignore": "^5.2.0",
-+ "merge2": "^1.4.1",
-+ "slash": "^3.0.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/globrex": {
-+ "version": "0.1.2",
-+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
-+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
-+ },
-+ "node_modules/gopd": {
-+ "version": "1.0.1",
-+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
-+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-+ "dependencies": {
-+ "get-intrinsic": "^1.1.3"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/graceful-fs": {
-+ "version": "4.2.10",
-+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
-+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
-+ },
-+ "node_modules/grapheme-splitter": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
-+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
-+ },
-+ "node_modules/has": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-+ "dependencies": {
-+ "function-bind": "^1.1.1"
-+ },
-+ "engines": {
-+ "node": ">= 0.4.0"
-+ }
-+ },
-+ "node_modules/has-bigints": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
-+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/has-flag": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/has-property-descriptors": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
-+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
-+ "dependencies": {
-+ "get-intrinsic": "^1.1.1"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/has-symbols": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
-+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/has-tostringtag": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
-+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
-+ "dependencies": {
-+ "has-symbols": "^1.0.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/ignore": {
-+ "version": "5.2.4",
-+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
-+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
-+ "engines": {
-+ "node": ">= 4"
-+ }
-+ },
-+ "node_modules/import-fresh": {
-+ "version": "3.3.0",
-+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-+ "dependencies": {
-+ "parent-module": "^1.0.0",
-+ "resolve-from": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": ">=6"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/imurmurhash": {
-+ "version": "0.1.4",
-+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
-+ "engines": {
-+ "node": ">=0.8.19"
-+ }
-+ },
-+ "node_modules/inflight": {
-+ "version": "1.0.6",
-+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
-+ "dependencies": {
-+ "once": "^1.3.0",
-+ "wrappy": "1"
-+ }
-+ },
-+ "node_modules/inherits": {
-+ "version": "2.0.4",
-+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-+ },
-+ "node_modules/internal-slot": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
-+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
-+ "dependencies": {
-+ "get-intrinsic": "^1.1.3",
-+ "has": "^1.0.3",
-+ "side-channel": "^1.0.4"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ }
-+ },
-+ "node_modules/is-bigint": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
-+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
-+ "dependencies": {
-+ "has-bigints": "^1.0.1"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-boolean-object": {
-+ "version": "1.1.2",
-+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
-+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "has-tostringtag": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-callable": {
-+ "version": "1.2.7",
-+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
-+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-core-module": {
-+ "version": "2.11.0",
-+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
-+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
-+ "dependencies": {
-+ "has": "^1.0.3"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-date-object": {
-+ "version": "1.0.5",
-+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
-+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
-+ "dependencies": {
-+ "has-tostringtag": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-docker": {
-+ "version": "2.2.1",
-+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
-+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
-+ "bin": {
-+ "is-docker": "cli.js"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/is-extglob": {
-+ "version": "2.1.1",
-+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/is-glob": {
-+ "version": "4.0.3",
-+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
-+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-+ "dependencies": {
-+ "is-extglob": "^2.1.1"
-+ },
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/is-negative-zero": {
-+ "version": "2.0.2",
-+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-number": {
-+ "version": "7.0.0",
-+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-+ "engines": {
-+ "node": ">=0.12.0"
-+ }
-+ },
-+ "node_modules/is-number-object": {
-+ "version": "1.0.7",
-+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
-+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
-+ "dependencies": {
-+ "has-tostringtag": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-path-inside": {
-+ "version": "3.0.3",
-+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
-+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/is-regex": {
-+ "version": "1.1.4",
-+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
-+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "has-tostringtag": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-shared-array-buffer": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
-+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-string": {
-+ "version": "1.0.7",
-+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
-+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
-+ "dependencies": {
-+ "has-tostringtag": "^1.0.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-symbol": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
-+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
-+ "dependencies": {
-+ "has-symbols": "^1.0.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-weakref": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
-+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/is-wsl": {
-+ "version": "2.2.0",
-+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
-+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
-+ "dependencies": {
-+ "is-docker": "^2.0.0"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/isexe": {
-+ "version": "2.0.0",
-+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
-+ },
-+ "node_modules/js-sdsl": {
-+ "version": "4.2.0",
-+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
-+ "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
-+ "funding": {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/js-sdsl"
-+ }
-+ },
-+ "node_modules/js-tokens": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-+ },
-+ "node_modules/js-yaml": {
-+ "version": "4.1.0",
-+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-+ "dependencies": {
-+ "argparse": "^2.0.1"
-+ },
-+ "bin": {
-+ "js-yaml": "bin/js-yaml.js"
-+ }
-+ },
-+ "node_modules/json-schema-traverse": {
-+ "version": "0.4.1",
-+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-+ },
-+ "node_modules/json-stable-stringify-without-jsonify": {
-+ "version": "1.0.1",
-+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
-+ },
-+ "node_modules/json5": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-+ "dependencies": {
-+ "minimist": "^1.2.0"
-+ },
-+ "bin": {
-+ "json5": "lib/cli.js"
-+ }
-+ },
-+ "node_modules/jsx-ast-utils": {
-+ "version": "3.3.3",
-+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
-+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
-+ "dependencies": {
-+ "array-includes": "^3.1.5",
-+ "object.assign": "^4.1.3"
-+ },
-+ "engines": {
-+ "node": ">=4.0"
-+ }
-+ },
-+ "node_modules/language-subtag-registry": {
-+ "version": "0.3.22",
-+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
-+ "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
-+ },
-+ "node_modules/language-tags": {
-+ "version": "1.0.7",
-+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.7.tgz",
-+ "integrity": "sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==",
-+ "dependencies": {
-+ "language-subtag-registry": "^0.3.20"
-+ }
-+ },
-+ "node_modules/levn": {
-+ "version": "0.4.1",
-+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-+ "dependencies": {
-+ "prelude-ls": "^1.2.1",
-+ "type-check": "~0.4.0"
-+ },
-+ "engines": {
-+ "node": ">= 0.8.0"
-+ }
-+ },
-+ "node_modules/locate-path": {
-+ "version": "6.0.0",
-+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
-+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
-+ "dependencies": {
-+ "p-locate": "^5.0.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/lodash.merge": {
-+ "version": "4.6.2",
-+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
-+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
-+ },
-+ "node_modules/loose-envify": {
-+ "version": "1.4.0",
-+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
-+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-+ "dependencies": {
-+ "js-tokens": "^3.0.0 || ^4.0.0"
-+ },
-+ "bin": {
-+ "loose-envify": "cli.js"
-+ }
-+ },
-+ "node_modules/lru-cache": {
-+ "version": "6.0.0",
-+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-+ "dependencies": {
-+ "yallist": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ }
-+ },
-+ "node_modules/merge2": {
-+ "version": "1.4.1",
-+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/micromatch": {
-+ "version": "4.0.5",
-+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
-+ "dependencies": {
-+ "braces": "^3.0.2",
-+ "picomatch": "^2.3.1"
-+ },
-+ "engines": {
-+ "node": ">=8.6"
-+ }
-+ },
-+ "node_modules/minimatch": {
-+ "version": "3.1.2",
-+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-+ "dependencies": {
-+ "brace-expansion": "^1.1.7"
-+ },
-+ "engines": {
-+ "node": "*"
-+ }
-+ },
-+ "node_modules/minimist": {
-+ "version": "1.2.7",
-+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
-+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/ms": {
-+ "version": "2.1.2",
-+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-+ },
-+ "node_modules/nanoid": {
-+ "version": "3.3.4",
-+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
-+ "bin": {
-+ "nanoid": "bin/nanoid.cjs"
-+ },
-+ "engines": {
-+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-+ }
-+ },
-+ "node_modules/natural-compare": {
-+ "version": "1.4.0",
-+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
-+ },
-+ "node_modules/next": {
-+ "version": "13.1.1",
-+ "resolved": "https://registry.npmjs.org/next/-/next-13.1.1.tgz",
-+ "integrity": "sha512-R5eBAaIa3X7LJeYvv1bMdGnAVF4fVToEjim7MkflceFPuANY3YyvFxXee/A+acrSYwYPvOvf7f6v/BM/48ea5w==",
-+ "dependencies": {
-+ "@next/env": "13.1.1",
-+ "@swc/helpers": "0.4.14",
-+ "caniuse-lite": "^1.0.30001406",
-+ "postcss": "8.4.14",
-+ "styled-jsx": "5.1.1"
-+ },
-+ "bin": {
-+ "next": "dist/bin/next"
-+ },
-+ "engines": {
-+ "node": ">=14.6.0"
-+ },
-+ "optionalDependencies": {
-+ "@next/swc-android-arm-eabi": "13.1.1",
-+ "@next/swc-android-arm64": "13.1.1",
-+ "@next/swc-darwin-arm64": "13.1.1",
-+ "@next/swc-darwin-x64": "13.1.1",
-+ "@next/swc-freebsd-x64": "13.1.1",
-+ "@next/swc-linux-arm-gnueabihf": "13.1.1",
-+ "@next/swc-linux-arm64-gnu": "13.1.1",
-+ "@next/swc-linux-arm64-musl": "13.1.1",
-+ "@next/swc-linux-x64-gnu": "13.1.1",
-+ "@next/swc-linux-x64-musl": "13.1.1",
-+ "@next/swc-win32-arm64-msvc": "13.1.1",
-+ "@next/swc-win32-ia32-msvc": "13.1.1",
-+ "@next/swc-win32-x64-msvc": "13.1.1"
-+ },
-+ "peerDependencies": {
-+ "fibers": ">= 3.1.0",
-+ "node-sass": "^6.0.0 || ^7.0.0",
-+ "react": "^18.2.0",
-+ "react-dom": "^18.2.0",
-+ "sass": "^1.3.0"
-+ },
-+ "peerDependenciesMeta": {
-+ "fibers": {
-+ "optional": true
-+ },
-+ "node-sass": {
-+ "optional": true
-+ },
-+ "sass": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/object-assign": {
-+ "version": "4.1.1",
-+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/object-inspect": {
-+ "version": "1.12.2",
-+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
-+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/object-keys": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-+ "engines": {
-+ "node": ">= 0.4"
-+ }
-+ },
-+ "node_modules/object.assign": {
-+ "version": "4.1.4",
-+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
-+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "has-symbols": "^1.0.3",
-+ "object-keys": "^1.1.1"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/object.entries": {
-+ "version": "1.1.6",
-+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
-+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ }
-+ },
-+ "node_modules/object.fromentries": {
-+ "version": "2.0.6",
-+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
-+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/object.hasown": {
-+ "version": "1.1.2",
-+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
-+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
-+ "dependencies": {
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/object.values": {
-+ "version": "1.1.6",
-+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
-+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/once": {
-+ "version": "1.4.0",
-+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-+ "dependencies": {
-+ "wrappy": "1"
-+ }
-+ },
-+ "node_modules/open": {
-+ "version": "8.4.0",
-+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
-+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
-+ "dependencies": {
-+ "define-lazy-prop": "^2.0.0",
-+ "is-docker": "^2.1.1",
-+ "is-wsl": "^2.2.0"
-+ },
-+ "engines": {
-+ "node": ">=12"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/optionator": {
-+ "version": "0.9.1",
-+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
-+ "dependencies": {
-+ "deep-is": "^0.1.3",
-+ "fast-levenshtein": "^2.0.6",
-+ "levn": "^0.4.1",
-+ "prelude-ls": "^1.2.1",
-+ "type-check": "^0.4.0",
-+ "word-wrap": "^1.2.3"
-+ },
-+ "engines": {
-+ "node": ">= 0.8.0"
-+ }
-+ },
-+ "node_modules/p-limit": {
-+ "version": "3.1.0",
-+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
-+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-+ "dependencies": {
-+ "yocto-queue": "^0.1.0"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/p-locate": {
-+ "version": "5.0.0",
-+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
-+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
-+ "dependencies": {
-+ "p-limit": "^3.0.2"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/parent-module": {
-+ "version": "1.0.1",
-+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-+ "dependencies": {
-+ "callsites": "^3.0.0"
-+ },
-+ "engines": {
-+ "node": ">=6"
-+ }
-+ },
-+ "node_modules/path-exists": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/path-is-absolute": {
-+ "version": "1.0.1",
-+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/path-key": {
-+ "version": "3.1.1",
-+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
-+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/path-parse": {
-+ "version": "1.0.7",
-+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-+ },
-+ "node_modules/path-type": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
-+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/picocolors": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-+ },
-+ "node_modules/picomatch": {
-+ "version": "2.3.1",
-+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-+ "engines": {
-+ "node": ">=8.6"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/jonschlinkert"
-+ }
-+ },
-+ "node_modules/postcss": {
-+ "version": "8.4.14",
-+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
-+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
-+ "funding": [
-+ {
-+ "type": "opencollective",
-+ "url": "https://opencollective.com/postcss/"
-+ },
-+ {
-+ "type": "tidelift",
-+ "url": "https://tidelift.com/funding/github/npm/postcss"
-+ }
-+ ],
-+ "dependencies": {
-+ "nanoid": "^3.3.4",
-+ "picocolors": "^1.0.0",
-+ "source-map-js": "^1.0.2"
-+ },
-+ "engines": {
-+ "node": "^10 || ^12 || >=14"
-+ }
-+ },
-+ "node_modules/prelude-ls": {
-+ "version": "1.2.1",
-+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-+ "engines": {
-+ "node": ">= 0.8.0"
-+ }
-+ },
-+ "node_modules/prettier": {
-+ "version": "2.8.1",
-+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
-+ "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
-+ "dev": true,
-+ "bin": {
-+ "prettier": "bin-prettier.js"
-+ },
-+ "engines": {
-+ "node": ">=10.13.0"
-+ },
-+ "funding": {
-+ "url": "https://github.com/prettier/prettier?sponsor=1"
-+ }
-+ },
-+ "node_modules/prop-types": {
-+ "version": "15.8.1",
-+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
-+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
-+ "dependencies": {
-+ "loose-envify": "^1.4.0",
-+ "object-assign": "^4.1.1",
-+ "react-is": "^16.13.1"
-+ }
-+ },
-+ "node_modules/punycode": {
-+ "version": "2.1.1",
-+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-+ "engines": {
-+ "node": ">=6"
-+ }
-+ },
-+ "node_modules/queue-microtask": {
-+ "version": "1.2.3",
-+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-+ "funding": [
-+ {
-+ "type": "github",
-+ "url": "https://github.com/sponsors/feross"
-+ },
-+ {
-+ "type": "patreon",
-+ "url": "https://www.patreon.com/feross"
-+ },
-+ {
-+ "type": "consulting",
-+ "url": "https://feross.org/support"
-+ }
-+ ]
-+ },
-+ "node_modules/react": {
-+ "version": "18.2.0",
-+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
-+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
-+ "dependencies": {
-+ "loose-envify": "^1.1.0"
-+ },
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/react-dom": {
-+ "version": "18.2.0",
-+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
-+ "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
-+ "dependencies": {
-+ "loose-envify": "^1.1.0",
-+ "scheduler": "^0.23.0"
-+ },
-+ "peerDependencies": {
-+ "react": "^18.2.0"
-+ }
-+ },
-+ "node_modules/react-is": {
-+ "version": "16.13.1",
-+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
-+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
-+ },
-+ "node_modules/regenerator-runtime": {
-+ "version": "0.13.11",
-+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-+ },
-+ "node_modules/regexp.prototype.flags": {
-+ "version": "1.4.3",
-+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
-+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.3",
-+ "functions-have-names": "^1.2.2"
-+ },
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/regexpp": {
-+ "version": "3.2.0",
-+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
-+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
-+ "engines": {
-+ "node": ">=8"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/mysticatea"
-+ }
-+ },
-+ "node_modules/resolve": {
-+ "version": "1.22.1",
-+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
-+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
-+ "dependencies": {
-+ "is-core-module": "^2.9.0",
-+ "path-parse": "^1.0.7",
-+ "supports-preserve-symlinks-flag": "^1.0.0"
-+ },
-+ "bin": {
-+ "resolve": "bin/resolve"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/resolve-from": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-+ "engines": {
-+ "node": ">=4"
-+ }
-+ },
-+ "node_modules/reusify": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-+ "engines": {
-+ "iojs": ">=1.0.0",
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/rimraf": {
-+ "version": "3.0.2",
-+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-+ "dependencies": {
-+ "glob": "^7.1.3"
-+ },
-+ "bin": {
-+ "rimraf": "bin.js"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/isaacs"
-+ }
-+ },
-+ "node_modules/run-parallel": {
-+ "version": "1.2.0",
-+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-+ "funding": [
-+ {
-+ "type": "github",
-+ "url": "https://github.com/sponsors/feross"
-+ },
-+ {
-+ "type": "patreon",
-+ "url": "https://www.patreon.com/feross"
-+ },
-+ {
-+ "type": "consulting",
-+ "url": "https://feross.org/support"
-+ }
-+ ],
-+ "dependencies": {
-+ "queue-microtask": "^1.2.2"
-+ }
-+ },
-+ "node_modules/safe-regex-test": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
-+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "get-intrinsic": "^1.1.3",
-+ "is-regex": "^1.1.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/scheduler": {
-+ "version": "0.23.0",
-+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
-+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
-+ "dependencies": {
-+ "loose-envify": "^1.1.0"
-+ }
-+ },
-+ "node_modules/semver": {
-+ "version": "7.3.8",
-+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
-+ "dependencies": {
-+ "lru-cache": "^6.0.0"
-+ },
-+ "bin": {
-+ "semver": "bin/semver.js"
-+ },
-+ "engines": {
-+ "node": ">=10"
-+ }
-+ },
-+ "node_modules/shebang-command": {
-+ "version": "2.0.0",
-+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
-+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-+ "dependencies": {
-+ "shebang-regex": "^3.0.0"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/shebang-regex": {
-+ "version": "3.0.0",
-+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
-+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/side-channel": {
-+ "version": "1.0.4",
-+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
-+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
-+ "dependencies": {
-+ "call-bind": "^1.0.0",
-+ "get-intrinsic": "^1.0.2",
-+ "object-inspect": "^1.9.0"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/slash": {
-+ "version": "3.0.0",
-+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
-+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/source-map-js": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/string.prototype.matchall": {
-+ "version": "4.0.8",
-+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
-+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4",
-+ "get-intrinsic": "^1.1.3",
-+ "has-symbols": "^1.0.3",
-+ "internal-slot": "^1.0.3",
-+ "regexp.prototype.flags": "^1.4.3",
-+ "side-channel": "^1.0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/string.prototype.trimend": {
-+ "version": "1.0.6",
-+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
-+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/string.prototype.trimstart": {
-+ "version": "1.0.6",
-+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
-+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "define-properties": "^1.1.4",
-+ "es-abstract": "^1.20.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/strip-ansi": {
-+ "version": "6.0.1",
-+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-+ "dependencies": {
-+ "ansi-regex": "^5.0.1"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/strip-bom": {
-+ "version": "3.0.0",
-+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
-+ "engines": {
-+ "node": ">=4"
-+ }
-+ },
-+ "node_modules/strip-json-comments": {
-+ "version": "3.1.1",
-+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-+ "engines": {
-+ "node": ">=8"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/styled-jsx": {
-+ "version": "5.1.1",
-+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
-+ "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
-+ "dependencies": {
-+ "client-only": "0.0.1"
-+ },
-+ "engines": {
-+ "node": ">= 12.0.0"
-+ },
-+ "peerDependencies": {
-+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
-+ },
-+ "peerDependenciesMeta": {
-+ "@babel/core": {
-+ "optional": true
-+ },
-+ "babel-plugin-macros": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/supports-color": {
-+ "version": "7.2.0",
-+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-+ "dependencies": {
-+ "has-flag": "^4.0.0"
-+ },
-+ "engines": {
-+ "node": ">=8"
-+ }
-+ },
-+ "node_modules/supports-preserve-symlinks-flag": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-+ "engines": {
-+ "node": ">= 0.4"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/synckit": {
-+ "version": "0.8.4",
-+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz",
-+ "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==",
-+ "dependencies": {
-+ "@pkgr/utils": "^2.3.1",
-+ "tslib": "^2.4.0"
-+ },
-+ "engines": {
-+ "node": "^14.18.0 || >=16.0.0"
-+ },
-+ "funding": {
-+ "url": "https://opencollective.com/unts"
-+ }
-+ },
-+ "node_modules/tapable": {
-+ "version": "2.2.1",
-+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
-+ "engines": {
-+ "node": ">=6"
-+ }
-+ },
-+ "node_modules/text-table": {
-+ "version": "0.2.0",
-+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
-+ },
-+ "node_modules/tiny-glob": {
-+ "version": "0.2.9",
-+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
-+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
-+ "dependencies": {
-+ "globalyzer": "0.1.0",
-+ "globrex": "^0.1.2"
-+ }
-+ },
-+ "node_modules/to-regex-range": {
-+ "version": "5.0.1",
-+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-+ "dependencies": {
-+ "is-number": "^7.0.0"
-+ },
-+ "engines": {
-+ "node": ">=8.0"
-+ }
-+ },
-+ "node_modules/tsconfig-paths": {
-+ "version": "3.14.1",
-+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
-+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
-+ "dependencies": {
-+ "@types/json5": "^0.0.29",
-+ "json5": "^1.0.1",
-+ "minimist": "^1.2.6",
-+ "strip-bom": "^3.0.0"
-+ }
-+ },
-+ "node_modules/tslib": {
-+ "version": "2.4.1",
-+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
-+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
-+ },
-+ "node_modules/tsutils": {
-+ "version": "3.21.0",
-+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-+ "dependencies": {
-+ "tslib": "^1.8.1"
-+ },
-+ "engines": {
-+ "node": ">= 6"
-+ },
-+ "peerDependencies": {
-+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
-+ }
-+ },
-+ "node_modules/tsutils/node_modules/tslib": {
-+ "version": "1.14.1",
-+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
-+ },
-+ "node_modules/type-check": {
-+ "version": "0.4.0",
-+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-+ "dependencies": {
-+ "prelude-ls": "^1.2.1"
-+ },
-+ "engines": {
-+ "node": ">= 0.8.0"
-+ }
-+ },
-+ "node_modules/type-fest": {
-+ "version": "0.20.2",
-+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ },
-+ "node_modules/typescript": {
-+ "version": "4.9.4",
-+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
-+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
-+ "bin": {
-+ "tsc": "bin/tsc",
-+ "tsserver": "bin/tsserver"
-+ },
-+ "engines": {
-+ "node": ">=4.2.0"
-+ }
-+ },
-+ "node_modules/unbox-primitive": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
-+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
-+ "dependencies": {
-+ "call-bind": "^1.0.2",
-+ "has-bigints": "^1.0.2",
-+ "has-symbols": "^1.0.3",
-+ "which-boxed-primitive": "^1.0.2"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/uri-js": {
-+ "version": "4.4.1",
-+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
-+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-+ "dependencies": {
-+ "punycode": "^2.1.0"
-+ }
-+ },
-+ "node_modules/which": {
-+ "version": "2.0.2",
-+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
-+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-+ "dependencies": {
-+ "isexe": "^2.0.0"
-+ },
-+ "bin": {
-+ "node-which": "bin/node-which"
-+ },
-+ "engines": {
-+ "node": ">= 8"
-+ }
-+ },
-+ "node_modules/which-boxed-primitive": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
-+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
-+ "dependencies": {
-+ "is-bigint": "^1.0.1",
-+ "is-boolean-object": "^1.1.0",
-+ "is-number-object": "^1.0.4",
-+ "is-string": "^1.0.5",
-+ "is-symbol": "^1.0.3"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/ljharb"
-+ }
-+ },
-+ "node_modules/word-wrap": {
-+ "version": "1.2.3",
-+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-+ "engines": {
-+ "node": ">=0.10.0"
-+ }
-+ },
-+ "node_modules/wrappy": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-+ },
-+ "node_modules/yallist": {
-+ "version": "4.0.0",
-+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-+ },
-+ "node_modules/yocto-queue": {
-+ "version": "0.1.0",
-+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
-+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
-+ "engines": {
-+ "node": ">=10"
-+ },
-+ "funding": {
-+ "url": "https://github.com/sponsors/sindresorhus"
-+ }
-+ }
-+ }
-+}
-diff --git a/js/test/nextjs/package.json b/js/test/nextjs/package.json
-new file mode 100644
-index 0000000..f57e111
---- /dev/null
-+++ b/js/test/nextjs/package.json
-@@ -0,0 +1,28 @@
-+{
-+ "name": "shine-nextjs-test-app",
-+ "version": "0.1.0",
-+ "private": true,
-+ "scripts": {
-+ "dev": "next dev",
-+ "lint": "next lint --fix",
-+ "build": "next build && next export && touch out/.nojekyll",
-+ "format": "prettier '**/*.{ts,tsx,js,jsx}' --write",
-+ "typecheck": "tsc --noEmit"
-+ },
-+ "dependencies": {
-+ "@next/font": "13.1.1",
-+ "@toots/shine.js": "file:../..",
-+ "@types/node": "18.11.18",
-+ "@types/react": "18.0.26",
-+ "@types/react-dom": "18.0.10",
-+ "eslint": "8.31.0",
-+ "eslint-config-next": "13.1.1",
-+ "next": "13.1.1",
-+ "react": "18.2.0",
-+ "react-dom": "18.2.0",
-+ "typescript": "4.9.4"
-+ },
-+ "devDependencies": {
-+ "prettier": "^2.8.1"
-+ }
-+}
-diff --git a/js/test/nextjs/pages/index.tsx b/js/test/nextjs/pages/index.tsx
-new file mode 100644
-index 0000000..4bf771a
---- /dev/null
-+++ b/js/test/nextjs/pages/index.tsx
-@@ -0,0 +1,50 @@
-+import { Fragment, useEffect, useState, useCallback } from "react"
-+import { runEncodeTest } from "@shine/lib/encode"
-+import { runRoundsTest } from "@shine/lib/rounds"
-+
-+const logEntries: string[] = []
-+let encoderStarted = false
-+
-+export default function Home() {
-+ const [logs, setLogs] = useState(logEntries)
-+ const [encodedBlobUrl, setEncodedBlobUrl] = useState<string | undefined>()
-+
-+ const log = useCallback(
-+ (entry: string) => {
-+ logEntries.push(entry)
-+ setLogs(logEntries)
-+ },
-+ [setLogs]
-+ )
-+
-+ useEffect(() => {
-+ if (encoderStarted) return
-+
-+ runEncodeTest(log, blob => {
-+ if (!encodedBlobUrl) setEncodedBlobUrl(URL.createObjectURL(blob))
-+
-+ log("")
-+ runRoundsTest(log)
-+ })
-+
-+ encoderStarted = true
-+ }, [log, encodedBlobUrl, setEncodedBlobUrl])
-+
-+ return (
-+ <>
-+ {encodedBlobUrl && (
-+ <a href={encodedBlobUrl} download='encoded.mp3'>
-+ Download encoded file
-+ </a>
-+ )}
-+ <div>
-+ {logs.map(entry => (
-+ <Fragment key={entry}>
-+ {entry}
-+ <br />
-+ </Fragment>
-+ ))}
-+ </div>
-+ </>
-+ )
-+}
-diff --git a/js/test/nextjs/pnpm-lock.yaml b/js/test/nextjs/pnpm-lock.yaml
-new file mode 100644
-index 0000000..562cc68
---- /dev/null
-+++ b/js/test/nextjs/pnpm-lock.yaml
-@@ -0,0 +1,2032 @@
-+lockfileVersion: 5.4
-+
-+specifiers:
-+ '@next/font': 13.1.1
-+ '@toots/shine.js': file:../..
-+ '@types/node': 18.11.18
-+ '@types/react': 18.0.26
-+ '@types/react-dom': 18.0.10
-+ eslint: 8.31.0
-+ eslint-config-next: 13.1.1
-+ next: 13.1.1
-+ prettier: ^2.8.1
-+ react: 18.2.0
-+ react-dom: 18.2.0
-+ typescript: 4.9.4
-+
-+dependencies:
-+ '@next/font': 13.1.1
-+ '@toots/shine.js': file:../..
-+ '@types/node': 18.11.18
-+ '@types/react': 18.0.26
-+ '@types/react-dom': 18.0.10
-+ eslint: 8.31.0
-+ eslint-config-next: 13.1.1_iukboom6ndih5an6iafl45j2fe
-+ next: 13.1.1_biqbaboplfbrettd7655fr4n2y
-+ react: 18.2.0
-+ react-dom: 18.2.0_react@18.2.0
-+ typescript: 4.9.4
-+
-+devDependencies:
-+ prettier: 2.8.1
-+
-+packages:
-+
-+ /@babel/runtime-corejs3/7.20.7:
-+ resolution: {integrity: sha512-jr9lCZ4RbRQmCR28Q8U8Fu49zvFqLxTY9AMOUz+iyMohMoAgpEcVxY+wJNay99oXOpOcCTODkk70NDN2aaJEeg==}
-+ engines: {node: '>=6.9.0'}
-+ dependencies:
-+ core-js-pure: 3.27.1
-+ regenerator-runtime: 0.13.11
-+ dev: false
-+
-+ /@babel/runtime/7.20.7:
-+ resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==}
-+ engines: {node: '>=6.9.0'}
-+ dependencies:
-+ regenerator-runtime: 0.13.11
-+ dev: false
-+
-+ /@eslint/eslintrc/1.4.1:
-+ resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dependencies:
-+ ajv: 6.12.6
-+ debug: 4.3.4
-+ espree: 9.4.1
-+ globals: 13.19.0
-+ ignore: 5.2.4
-+ import-fresh: 3.3.0
-+ js-yaml: 4.1.0
-+ minimatch: 3.1.2
-+ strip-json-comments: 3.1.1
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /@humanwhocodes/config-array/0.11.8:
-+ resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
-+ engines: {node: '>=10.10.0'}
-+ dependencies:
-+ '@humanwhocodes/object-schema': 1.2.1
-+ debug: 4.3.4
-+ minimatch: 3.1.2
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /@humanwhocodes/module-importer/1.0.1:
-+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
-+ engines: {node: '>=12.22'}
-+ dev: false
-+
-+ /@humanwhocodes/object-schema/1.2.1:
-+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
-+ dev: false
-+
-+ /@next/env/13.1.1:
-+ resolution: {integrity: sha512-vFMyXtPjSAiOXOywMojxfKIqE3VWN5RCAx+tT3AS3pcKjMLFTCJFUWsKv8hC+87Z1F4W3r68qTwDFZIFmd5Xkw==}
-+ dev: false
-+
-+ /@next/eslint-plugin-next/13.1.1:
-+ resolution: {integrity: sha512-SBrOFS8PC3nQ5aeZmawJkjKkWjwK9RoxvBSv/86nZp0ubdoVQoko8r8htALd9ufp16NhacCdqhu9bzZLDWtALQ==}
-+ dependencies:
-+ glob: 7.1.7
-+ dev: false
-+
-+ /@next/font/13.1.1:
-+ resolution: {integrity: sha512-amygRorS05hYK1/XQRZo5qBl7l2fpHnezeKU/cNveWU5QJg+sg8gMGkUXHtvesNKpiKIJshBRH1TzvO+2sKpvQ==}
-+ dev: false
-+
-+ /@next/swc-android-arm-eabi/13.1.1:
-+ resolution: {integrity: sha512-qnFCx1kT3JTWhWve4VkeWuZiyjG0b5T6J2iWuin74lORCupdrNukxkq9Pm+Z7PsatxuwVJMhjUoYz7H4cWzx2A==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm]
-+ os: [android]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-android-arm64/13.1.1:
-+ resolution: {integrity: sha512-eCiZhTzjySubNqUnNkQCjU3Fh+ep3C6b5DCM5FKzsTH/3Gr/4Y7EiaPZKILbvnXmhWtKPIdcY6Zjx51t4VeTfA==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm64]
-+ os: [android]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-darwin-arm64/13.1.1:
-+ resolution: {integrity: sha512-9zRJSSIwER5tu9ADDkPw5rIZ+Np44HTXpYMr0rkM656IvssowPxmhK0rTreC1gpUCYwFsRbxarUJnJsTWiutPg==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm64]
-+ os: [darwin]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-darwin-x64/13.1.1:
-+ resolution: {integrity: sha512-qWr9qEn5nrnlhB0rtjSdR00RRZEtxg4EGvicIipqZWEyayPxhUu6NwKiG8wZiYZCLfJ5KWr66PGSNeDMGlNaiA==}
-+ engines: {node: '>= 10'}
-+ cpu: [x64]
-+ os: [darwin]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-freebsd-x64/13.1.1:
-+ resolution: {integrity: sha512-UwP4w/NcQ7V/VJEj3tGVszgb4pyUCt3lzJfUhjDMUmQbzG9LDvgiZgAGMYH6L21MoyAATJQPDGiAMWAPKsmumA==}
-+ engines: {node: '>= 10'}
-+ cpu: [x64]
-+ os: [freebsd]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-linux-arm-gnueabihf/13.1.1:
-+ resolution: {integrity: sha512-CnsxmKHco9sosBs1XcvCXP845Db+Wx1G0qouV5+Gr+HT/ZlDYEWKoHVDgnJXLVEQzq4FmHddBNGbXvgqM1Gfkg==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm]
-+ os: [linux]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-linux-arm64-gnu/13.1.1:
-+ resolution: {integrity: sha512-JfDq1eri5Dif+VDpTkONRd083780nsMCOKoFG87wA0sa4xL8LGcXIBAkUGIC1uVy9SMsr2scA9CySLD/i+Oqiw==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm64]
-+ os: [linux]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-linux-arm64-musl/13.1.1:
-+ resolution: {integrity: sha512-GA67ZbDq2AW0CY07zzGt07M5b5Yaq5qUpFIoW3UFfjOPgb0Sqf3DAW7GtFMK1sF4ROHsRDMGQ9rnT0VM2dVfKA==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm64]
-+ os: [linux]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-linux-x64-gnu/13.1.1:
-+ resolution: {integrity: sha512-nnjuBrbzvqaOJaV+XgT8/+lmXrSCOt1YYZn/irbDb2fR2QprL6Q7WJNgwsZNxiLSfLdv+2RJGGegBx9sLBEzGA==}
-+ engines: {node: '>= 10'}
-+ cpu: [x64]
-+ os: [linux]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-linux-x64-musl/13.1.1:
-+ resolution: {integrity: sha512-CM9xnAQNIZ8zf/igbIT/i3xWbQZYaF397H+JroF5VMOCUleElaMdQLL5riJml8wUfPoN3dtfn2s4peSr3azz/g==}
-+ engines: {node: '>= 10'}
-+ cpu: [x64]
-+ os: [linux]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-win32-arm64-msvc/13.1.1:
-+ resolution: {integrity: sha512-pzUHOGrbgfGgPlOMx9xk3QdPJoRPU+om84hqVoe6u+E0RdwOG0Ho/2UxCgDqmvpUrMab1Deltlt6RqcXFpnigQ==}
-+ engines: {node: '>= 10'}
-+ cpu: [arm64]
-+ os: [win32]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-win32-ia32-msvc/13.1.1:
-+ resolution: {integrity: sha512-WeX8kVS46aobM9a7Xr/kEPcrTyiwJqQv/tbw6nhJ4fH9xNZ+cEcyPoQkwPo570dCOLz3Zo9S2q0E6lJ/EAUOBg==}
-+ engines: {node: '>= 10'}
-+ cpu: [ia32]
-+ os: [win32]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@next/swc-win32-x64-msvc/13.1.1:
-+ resolution: {integrity: sha512-mVF0/3/5QAc5EGVnb8ll31nNvf3BWpPY4pBb84tk+BfQglWLqc5AC9q1Ht/YMWiEgs8ALNKEQ3GQnbY0bJF2Gg==}
-+ engines: {node: '>= 10'}
-+ cpu: [x64]
-+ os: [win32]
-+ requiresBuild: true
-+ dev: false
-+ optional: true
-+
-+ /@nodelib/fs.scandir/2.1.5:
-+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
-+ engines: {node: '>= 8'}
-+ dependencies:
-+ '@nodelib/fs.stat': 2.0.5
-+ run-parallel: 1.2.0
-+ dev: false
-+
-+ /@nodelib/fs.stat/2.0.5:
-+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
-+ engines: {node: '>= 8'}
-+ dev: false
-+
-+ /@nodelib/fs.walk/1.2.8:
-+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
-+ engines: {node: '>= 8'}
-+ dependencies:
-+ '@nodelib/fs.scandir': 2.1.5
-+ fastq: 1.14.0
-+ dev: false
-+
-+ /@pkgr/utils/2.3.1:
-+ resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==}
-+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-+ dependencies:
-+ cross-spawn: 7.0.3
-+ is-glob: 4.0.3
-+ open: 8.4.0
-+ picocolors: 1.0.0
-+ tiny-glob: 0.2.9
-+ tslib: 2.4.1
-+ dev: false
-+
-+ /@rushstack/eslint-patch/1.2.0:
-+ resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
-+ dev: false
-+
-+ /@swc/helpers/0.4.14:
-+ resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
-+ dependencies:
-+ tslib: 2.4.1
-+ dev: false
-+
-+ /@types/json5/0.0.29:
-+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
-+ dev: false
-+
-+ /@types/node/18.11.18:
-+ resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
-+ dev: false
-+
-+ /@types/prop-types/15.7.5:
-+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
-+ dev: false
-+
-+ /@types/react-dom/18.0.10:
-+ resolution: {integrity: sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==}
-+ dependencies:
-+ '@types/react': 18.0.26
-+ dev: false
-+
-+ /@types/react/18.0.26:
-+ resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==}
-+ dependencies:
-+ '@types/prop-types': 15.7.5
-+ '@types/scheduler': 0.16.2
-+ csstype: 3.1.1
-+ dev: false
-+
-+ /@types/scheduler/0.16.2:
-+ resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
-+ dev: false
-+
-+ /@typescript-eslint/parser/5.47.1_iukboom6ndih5an6iafl45j2fe:
-+ resolution: {integrity: sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ peerDependencies:
-+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
-+ typescript: '*'
-+ peerDependenciesMeta:
-+ typescript:
-+ optional: true
-+ dependencies:
-+ '@typescript-eslint/scope-manager': 5.47.1
-+ '@typescript-eslint/types': 5.47.1
-+ '@typescript-eslint/typescript-estree': 5.47.1_typescript@4.9.4
-+ debug: 4.3.4
-+ eslint: 8.31.0
-+ typescript: 4.9.4
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /@typescript-eslint/scope-manager/5.47.1:
-+ resolution: {integrity: sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dependencies:
-+ '@typescript-eslint/types': 5.47.1
-+ '@typescript-eslint/visitor-keys': 5.47.1
-+ dev: false
-+
-+ /@typescript-eslint/types/5.47.1:
-+ resolution: {integrity: sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dev: false
-+
-+ /@typescript-eslint/typescript-estree/5.47.1_typescript@4.9.4:
-+ resolution: {integrity: sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ peerDependencies:
-+ typescript: '*'
-+ peerDependenciesMeta:
-+ typescript:
-+ optional: true
-+ dependencies:
-+ '@typescript-eslint/types': 5.47.1
-+ '@typescript-eslint/visitor-keys': 5.47.1
-+ debug: 4.3.4
-+ globby: 11.1.0
-+ is-glob: 4.0.3
-+ semver: 7.3.8
-+ tsutils: 3.21.0_typescript@4.9.4
-+ typescript: 4.9.4
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /@typescript-eslint/visitor-keys/5.47.1:
-+ resolution: {integrity: sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dependencies:
-+ '@typescript-eslint/types': 5.47.1
-+ eslint-visitor-keys: 3.3.0
-+ dev: false
-+
-+ /acorn-jsx/5.3.2_acorn@8.8.1:
-+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
-+ peerDependencies:
-+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-+ dependencies:
-+ acorn: 8.8.1
-+ dev: false
-+
-+ /acorn/8.8.1:
-+ resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
-+ engines: {node: '>=0.4.0'}
-+ hasBin: true
-+ dev: false
-+
-+ /ajv/6.12.6:
-+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-+ dependencies:
-+ fast-deep-equal: 3.1.3
-+ fast-json-stable-stringify: 2.1.0
-+ json-schema-traverse: 0.4.1
-+ uri-js: 4.4.1
-+ dev: false
-+
-+ /ansi-regex/5.0.1:
-+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /ansi-styles/4.3.0:
-+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ color-convert: 2.0.1
-+ dev: false
-+
-+ /argparse/2.0.1:
-+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-+ dev: false
-+
-+ /aria-query/4.2.2:
-+ resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==}
-+ engines: {node: '>=6.0'}
-+ dependencies:
-+ '@babel/runtime': 7.20.7
-+ '@babel/runtime-corejs3': 7.20.7
-+ dev: false
-+
-+ /array-includes/3.1.6:
-+ resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ get-intrinsic: 1.1.3
-+ is-string: 1.0.7
-+ dev: false
-+
-+ /array-union/2.1.0:
-+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /array.prototype.flat/1.3.1:
-+ resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ es-shim-unscopables: 1.0.0
-+ dev: false
-+
-+ /array.prototype.flatmap/1.3.1:
-+ resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ es-shim-unscopables: 1.0.0
-+ dev: false
-+
-+ /array.prototype.tosorted/1.1.1:
-+ resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ es-shim-unscopables: 1.0.0
-+ get-intrinsic: 1.1.3
-+ dev: false
-+
-+ /ast-types-flow/0.0.7:
-+ resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
-+ dev: false
-+
-+ /axe-core/4.6.1:
-+ resolution: {integrity: sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==}
-+ engines: {node: '>=4'}
-+ dev: false
-+
-+ /axobject-query/2.2.0:
-+ resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==}
-+ dev: false
-+
-+ /balanced-match/1.0.2:
-+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-+ dev: false
-+
-+ /brace-expansion/1.1.11:
-+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
-+ dependencies:
-+ balanced-match: 1.0.2
-+ concat-map: 0.0.1
-+ dev: false
-+
-+ /braces/3.0.2:
-+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ fill-range: 7.0.1
-+ dev: false
-+
-+ /call-bind/1.0.2:
-+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
-+ dependencies:
-+ function-bind: 1.1.1
-+ get-intrinsic: 1.1.3
-+ dev: false
-+
-+ /callsites/3.1.0:
-+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
-+ engines: {node: '>=6'}
-+ dev: false
-+
-+ /caniuse-lite/1.0.30001441:
-+ resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==}
-+ dev: false
-+
-+ /chalk/4.1.2:
-+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ ansi-styles: 4.3.0
-+ supports-color: 7.2.0
-+ dev: false
-+
-+ /client-only/0.0.1:
-+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
-+ dev: false
-+
-+ /color-convert/2.0.1:
-+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
-+ engines: {node: '>=7.0.0'}
-+ dependencies:
-+ color-name: 1.1.4
-+ dev: false
-+
-+ /color-name/1.1.4:
-+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-+ dev: false
-+
-+ /concat-map/0.0.1:
-+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-+ dev: false
-+
-+ /core-js-pure/3.27.1:
-+ resolution: {integrity: sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw==}
-+ requiresBuild: true
-+ dev: false
-+
-+ /cross-spawn/7.0.3:
-+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
-+ engines: {node: '>= 8'}
-+ dependencies:
-+ path-key: 3.1.1
-+ shebang-command: 2.0.0
-+ which: 2.0.2
-+ dev: false
-+
-+ /csstype/3.1.1:
-+ resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
-+ dev: false
-+
-+ /damerau-levenshtein/1.0.8:
-+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
-+ dev: false
-+
-+ /debug/2.6.9:
-+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
-+ peerDependencies:
-+ supports-color: '*'
-+ peerDependenciesMeta:
-+ supports-color:
-+ optional: true
-+ dependencies:
-+ ms: 2.0.0
-+ dev: false
-+
-+ /debug/3.2.7:
-+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
-+ peerDependencies:
-+ supports-color: '*'
-+ peerDependenciesMeta:
-+ supports-color:
-+ optional: true
-+ dependencies:
-+ ms: 2.1.3
-+ dev: false
-+
-+ /debug/4.3.4:
-+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
-+ engines: {node: '>=6.0'}
-+ peerDependencies:
-+ supports-color: '*'
-+ peerDependenciesMeta:
-+ supports-color:
-+ optional: true
-+ dependencies:
-+ ms: 2.1.2
-+ dev: false
-+
-+ /deep-is/0.1.4:
-+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-+ dev: false
-+
-+ /define-lazy-prop/2.0.0:
-+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /define-properties/1.1.4:
-+ resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-property-descriptors: 1.0.0
-+ object-keys: 1.1.1
-+ dev: false
-+
-+ /dir-glob/3.0.1:
-+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ path-type: 4.0.0
-+ dev: false
-+
-+ /doctrine/2.1.0:
-+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
-+ engines: {node: '>=0.10.0'}
-+ dependencies:
-+ esutils: 2.0.3
-+ dev: false
-+
-+ /doctrine/3.0.0:
-+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
-+ engines: {node: '>=6.0.0'}
-+ dependencies:
-+ esutils: 2.0.3
-+ dev: false
-+
-+ /emoji-regex/9.2.2:
-+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-+ dev: false
-+
-+ /enhanced-resolve/5.12.0:
-+ resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==}
-+ engines: {node: '>=10.13.0'}
-+ dependencies:
-+ graceful-fs: 4.2.10
-+ tapable: 2.2.1
-+ dev: false
-+
-+ /es-abstract/1.20.5:
-+ resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ es-to-primitive: 1.2.1
-+ function-bind: 1.1.1
-+ function.prototype.name: 1.1.5
-+ get-intrinsic: 1.1.3
-+ get-symbol-description: 1.0.0
-+ gopd: 1.0.1
-+ has: 1.0.3
-+ has-property-descriptors: 1.0.0
-+ has-symbols: 1.0.3
-+ internal-slot: 1.0.4
-+ is-callable: 1.2.7
-+ is-negative-zero: 2.0.2
-+ is-regex: 1.1.4
-+ is-shared-array-buffer: 1.0.2
-+ is-string: 1.0.7
-+ is-weakref: 1.0.2
-+ object-inspect: 1.12.2
-+ object-keys: 1.1.1
-+ object.assign: 4.1.4
-+ regexp.prototype.flags: 1.4.3
-+ safe-regex-test: 1.0.0
-+ string.prototype.trimend: 1.0.6
-+ string.prototype.trimstart: 1.0.6
-+ unbox-primitive: 1.0.2
-+ dev: false
-+
-+ /es-shim-unscopables/1.0.0:
-+ resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
-+ dependencies:
-+ has: 1.0.3
-+ dev: false
-+
-+ /es-to-primitive/1.2.1:
-+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ is-callable: 1.2.7
-+ is-date-object: 1.0.5
-+ is-symbol: 1.0.4
-+ dev: false
-+
-+ /escape-string-regexp/4.0.0:
-+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
-+ engines: {node: '>=10'}
-+ dev: false
-+
-+ /eslint-config-next/13.1.1_iukboom6ndih5an6iafl45j2fe:
-+ resolution: {integrity: sha512-/5S2XGWlGaiqrRhzpn51ux5JUSLwx8PVK2keLi5xk7QmhfYB8PqE6R6SlVw6hgnf/VexvUXSrlNJ/su00NhtHQ==}
-+ peerDependencies:
-+ eslint: ^7.23.0 || ^8.0.0
-+ typescript: '>=3.3.1'
-+ peerDependenciesMeta:
-+ typescript:
-+ optional: true
-+ dependencies:
-+ '@next/eslint-plugin-next': 13.1.1
-+ '@rushstack/eslint-patch': 1.2.0
-+ '@typescript-eslint/parser': 5.47.1_iukboom6ndih5an6iafl45j2fe
-+ eslint: 8.31.0
-+ eslint-import-resolver-node: 0.3.6
-+ eslint-import-resolver-typescript: 3.5.2_ol7jqilc3wemtdbq3nzhywgxq4
-+ eslint-plugin-import: 2.26.0_bpx4furzt4ibermwbsj75osuwi
-+ eslint-plugin-jsx-a11y: 6.6.1_eslint@8.31.0
-+ eslint-plugin-react: 7.31.11_eslint@8.31.0
-+ eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0
-+ typescript: 4.9.4
-+ transitivePeerDependencies:
-+ - eslint-import-resolver-webpack
-+ - supports-color
-+ dev: false
-+
-+ /eslint-import-resolver-node/0.3.6:
-+ resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
-+ dependencies:
-+ debug: 3.2.7
-+ resolve: 1.22.1
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /eslint-import-resolver-typescript/3.5.2_ol7jqilc3wemtdbq3nzhywgxq4:
-+ resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==}
-+ engines: {node: ^14.18.0 || >=16.0.0}
-+ peerDependencies:
-+ eslint: '*'
-+ eslint-plugin-import: '*'
-+ dependencies:
-+ debug: 4.3.4
-+ enhanced-resolve: 5.12.0
-+ eslint: 8.31.0
-+ eslint-plugin-import: 2.26.0_bpx4furzt4ibermwbsj75osuwi
-+ get-tsconfig: 4.2.0
-+ globby: 13.1.3
-+ is-core-module: 2.11.0
-+ is-glob: 4.0.3
-+ synckit: 0.8.4
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /eslint-module-utils/2.7.4_of6uaipqaoaobv57tu2gvxhnhu:
-+ resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
-+ engines: {node: '>=4'}
-+ peerDependencies:
-+ '@typescript-eslint/parser': '*'
-+ eslint: '*'
-+ eslint-import-resolver-node: '*'
-+ eslint-import-resolver-typescript: '*'
-+ eslint-import-resolver-webpack: '*'
-+ peerDependenciesMeta:
-+ '@typescript-eslint/parser':
-+ optional: true
-+ eslint:
-+ optional: true
-+ eslint-import-resolver-node:
-+ optional: true
-+ eslint-import-resolver-typescript:
-+ optional: true
-+ eslint-import-resolver-webpack:
-+ optional: true
-+ dependencies:
-+ '@typescript-eslint/parser': 5.47.1_iukboom6ndih5an6iafl45j2fe
-+ debug: 3.2.7
-+ eslint: 8.31.0
-+ eslint-import-resolver-node: 0.3.6
-+ eslint-import-resolver-typescript: 3.5.2_ol7jqilc3wemtdbq3nzhywgxq4
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /eslint-plugin-import/2.26.0_bpx4furzt4ibermwbsj75osuwi:
-+ resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
-+ engines: {node: '>=4'}
-+ peerDependencies:
-+ '@typescript-eslint/parser': '*'
-+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
-+ peerDependenciesMeta:
-+ '@typescript-eslint/parser':
-+ optional: true
-+ dependencies:
-+ '@typescript-eslint/parser': 5.47.1_iukboom6ndih5an6iafl45j2fe
-+ array-includes: 3.1.6
-+ array.prototype.flat: 1.3.1
-+ debug: 2.6.9
-+ doctrine: 2.1.0
-+ eslint: 8.31.0
-+ eslint-import-resolver-node: 0.3.6
-+ eslint-module-utils: 2.7.4_of6uaipqaoaobv57tu2gvxhnhu
-+ has: 1.0.3
-+ is-core-module: 2.11.0
-+ is-glob: 4.0.3
-+ minimatch: 3.1.2
-+ object.values: 1.1.6
-+ resolve: 1.22.1
-+ tsconfig-paths: 3.14.1
-+ transitivePeerDependencies:
-+ - eslint-import-resolver-typescript
-+ - eslint-import-resolver-webpack
-+ - supports-color
-+ dev: false
-+
-+ /eslint-plugin-jsx-a11y/6.6.1_eslint@8.31.0:
-+ resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==}
-+ engines: {node: '>=4.0'}
-+ peerDependencies:
-+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
-+ dependencies:
-+ '@babel/runtime': 7.20.7
-+ aria-query: 4.2.2
-+ array-includes: 3.1.6
-+ ast-types-flow: 0.0.7
-+ axe-core: 4.6.1
-+ axobject-query: 2.2.0
-+ damerau-levenshtein: 1.0.8
-+ emoji-regex: 9.2.2
-+ eslint: 8.31.0
-+ has: 1.0.3
-+ jsx-ast-utils: 3.3.3
-+ language-tags: 1.0.7
-+ minimatch: 3.1.2
-+ semver: 6.3.0
-+ dev: false
-+
-+ /eslint-plugin-react-hooks/4.6.0_eslint@8.31.0:
-+ resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
-+ engines: {node: '>=10'}
-+ peerDependencies:
-+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
-+ dependencies:
-+ eslint: 8.31.0
-+ dev: false
-+
-+ /eslint-plugin-react/7.31.11_eslint@8.31.0:
-+ resolution: {integrity: sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==}
-+ engines: {node: '>=4'}
-+ peerDependencies:
-+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
-+ dependencies:
-+ array-includes: 3.1.6
-+ array.prototype.flatmap: 1.3.1
-+ array.prototype.tosorted: 1.1.1
-+ doctrine: 2.1.0
-+ eslint: 8.31.0
-+ estraverse: 5.3.0
-+ jsx-ast-utils: 3.3.3
-+ minimatch: 3.1.2
-+ object.entries: 1.1.6
-+ object.fromentries: 2.0.6
-+ object.hasown: 1.1.2
-+ object.values: 1.1.6
-+ prop-types: 15.8.1
-+ resolve: 2.0.0-next.4
-+ semver: 6.3.0
-+ string.prototype.matchall: 4.0.8
-+ dev: false
-+
-+ /eslint-scope/7.1.1:
-+ resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dependencies:
-+ esrecurse: 4.3.0
-+ estraverse: 5.3.0
-+ dev: false
-+
-+ /eslint-utils/3.0.0_eslint@8.31.0:
-+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
-+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
-+ peerDependencies:
-+ eslint: '>=5'
-+ dependencies:
-+ eslint: 8.31.0
-+ eslint-visitor-keys: 2.1.0
-+ dev: false
-+
-+ /eslint-visitor-keys/2.1.0:
-+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
-+ engines: {node: '>=10'}
-+ dev: false
-+
-+ /eslint-visitor-keys/3.3.0:
-+ resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dev: false
-+
-+ /eslint/8.31.0:
-+ resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ hasBin: true
-+ dependencies:
-+ '@eslint/eslintrc': 1.4.1
-+ '@humanwhocodes/config-array': 0.11.8
-+ '@humanwhocodes/module-importer': 1.0.1
-+ '@nodelib/fs.walk': 1.2.8
-+ ajv: 6.12.6
-+ chalk: 4.1.2
-+ cross-spawn: 7.0.3
-+ debug: 4.3.4
-+ doctrine: 3.0.0
-+ escape-string-regexp: 4.0.0
-+ eslint-scope: 7.1.1
-+ eslint-utils: 3.0.0_eslint@8.31.0
-+ eslint-visitor-keys: 3.3.0
-+ espree: 9.4.1
-+ esquery: 1.4.0
-+ esutils: 2.0.3
-+ fast-deep-equal: 3.1.3
-+ file-entry-cache: 6.0.1
-+ find-up: 5.0.0
-+ glob-parent: 6.0.2
-+ globals: 13.19.0
-+ grapheme-splitter: 1.0.4
-+ ignore: 5.2.4
-+ import-fresh: 3.3.0
-+ imurmurhash: 0.1.4
-+ is-glob: 4.0.3
-+ is-path-inside: 3.0.3
-+ js-sdsl: 4.2.0
-+ js-yaml: 4.1.0
-+ json-stable-stringify-without-jsonify: 1.0.1
-+ levn: 0.4.1
-+ lodash.merge: 4.6.2
-+ minimatch: 3.1.2
-+ natural-compare: 1.4.0
-+ optionator: 0.9.1
-+ regexpp: 3.2.0
-+ strip-ansi: 6.0.1
-+ strip-json-comments: 3.1.1
-+ text-table: 0.2.0
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /espree/9.4.1:
-+ resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
-+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-+ dependencies:
-+ acorn: 8.8.1
-+ acorn-jsx: 5.3.2_acorn@8.8.1
-+ eslint-visitor-keys: 3.3.0
-+ dev: false
-+
-+ /esquery/1.4.0:
-+ resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
-+ engines: {node: '>=0.10'}
-+ dependencies:
-+ estraverse: 5.3.0
-+ dev: false
-+
-+ /esrecurse/4.3.0:
-+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
-+ engines: {node: '>=4.0'}
-+ dependencies:
-+ estraverse: 5.3.0
-+ dev: false
-+
-+ /estraverse/5.3.0:
-+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
-+ engines: {node: '>=4.0'}
-+ dev: false
-+
-+ /esutils/2.0.3:
-+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /fast-deep-equal/3.1.3:
-+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-+ dev: false
-+
-+ /fast-glob/3.2.12:
-+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
-+ engines: {node: '>=8.6.0'}
-+ dependencies:
-+ '@nodelib/fs.stat': 2.0.5
-+ '@nodelib/fs.walk': 1.2.8
-+ glob-parent: 5.1.2
-+ merge2: 1.4.1
-+ micromatch: 4.0.5
-+ dev: false
-+
-+ /fast-json-stable-stringify/2.1.0:
-+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-+ dev: false
-+
-+ /fast-levenshtein/2.0.6:
-+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-+ dev: false
-+
-+ /fastq/1.14.0:
-+ resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==}
-+ dependencies:
-+ reusify: 1.0.4
-+ dev: false
-+
-+ /file-entry-cache/6.0.1:
-+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
-+ engines: {node: ^10.12.0 || >=12.0.0}
-+ dependencies:
-+ flat-cache: 3.0.4
-+ dev: false
-+
-+ /fill-range/7.0.1:
-+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ to-regex-range: 5.0.1
-+ dev: false
-+
-+ /find-up/5.0.0:
-+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ locate-path: 6.0.0
-+ path-exists: 4.0.0
-+ dev: false
-+
-+ /flat-cache/3.0.4:
-+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
-+ engines: {node: ^10.12.0 || >=12.0.0}
-+ dependencies:
-+ flatted: 3.2.7
-+ rimraf: 3.0.2
-+ dev: false
-+
-+ /flatted/3.2.7:
-+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
-+ dev: false
-+
-+ /fs.realpath/1.0.0:
-+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-+ dev: false
-+
-+ /function-bind/1.1.1:
-+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
-+ dev: false
-+
-+ /function.prototype.name/1.1.5:
-+ resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ functions-have-names: 1.2.3
-+ dev: false
-+
-+ /functions-have-names/1.2.3:
-+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-+ dev: false
-+
-+ /get-intrinsic/1.1.3:
-+ resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
-+ dependencies:
-+ function-bind: 1.1.1
-+ has: 1.0.3
-+ has-symbols: 1.0.3
-+ dev: false
-+
-+ /get-symbol-description/1.0.0:
-+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ get-intrinsic: 1.1.3
-+ dev: false
-+
-+ /get-tsconfig/4.2.0:
-+ resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==}
-+ dev: false
-+
-+ /glob-parent/5.1.2:
-+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
-+ engines: {node: '>= 6'}
-+ dependencies:
-+ is-glob: 4.0.3
-+ dev: false
-+
-+ /glob-parent/6.0.2:
-+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
-+ engines: {node: '>=10.13.0'}
-+ dependencies:
-+ is-glob: 4.0.3
-+ dev: false
-+
-+ /glob/7.1.7:
-+ resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
-+ dependencies:
-+ fs.realpath: 1.0.0
-+ inflight: 1.0.6
-+ inherits: 2.0.4
-+ minimatch: 3.1.2
-+ once: 1.4.0
-+ path-is-absolute: 1.0.1
-+ dev: false
-+
-+ /glob/7.2.3:
-+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
-+ dependencies:
-+ fs.realpath: 1.0.0
-+ inflight: 1.0.6
-+ inherits: 2.0.4
-+ minimatch: 3.1.2
-+ once: 1.4.0
-+ path-is-absolute: 1.0.1
-+ dev: false
-+
-+ /globals/13.19.0:
-+ resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ type-fest: 0.20.2
-+ dev: false
-+
-+ /globalyzer/0.1.0:
-+ resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
-+ dev: false
-+
-+ /globby/11.1.0:
-+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ array-union: 2.1.0
-+ dir-glob: 3.0.1
-+ fast-glob: 3.2.12
-+ ignore: 5.2.4
-+ merge2: 1.4.1
-+ slash: 3.0.0
-+ dev: false
-+
-+ /globby/13.1.3:
-+ resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==}
-+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-+ dependencies:
-+ dir-glob: 3.0.1
-+ fast-glob: 3.2.12
-+ ignore: 5.2.4
-+ merge2: 1.4.1
-+ slash: 4.0.0
-+ dev: false
-+
-+ /globrex/0.1.2:
-+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
-+ dev: false
-+
-+ /gopd/1.0.1:
-+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
-+ dependencies:
-+ get-intrinsic: 1.1.3
-+ dev: false
-+
-+ /graceful-fs/4.2.10:
-+ resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
-+ dev: false
-+
-+ /grapheme-splitter/1.0.4:
-+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
-+ dev: false
-+
-+ /has-bigints/1.0.2:
-+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
-+ dev: false
-+
-+ /has-flag/4.0.0:
-+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /has-property-descriptors/1.0.0:
-+ resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
-+ dependencies:
-+ get-intrinsic: 1.1.3
-+ dev: false
-+
-+ /has-symbols/1.0.3:
-+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
-+ engines: {node: '>= 0.4'}
-+ dev: false
-+
-+ /has-tostringtag/1.0.0:
-+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-symbols: 1.0.3
-+ dev: false
-+
-+ /has/1.0.3:
-+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
-+ engines: {node: '>= 0.4.0'}
-+ dependencies:
-+ function-bind: 1.1.1
-+ dev: false
-+
-+ /ignore/5.2.4:
-+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
-+ engines: {node: '>= 4'}
-+ dev: false
-+
-+ /import-fresh/3.3.0:
-+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
-+ engines: {node: '>=6'}
-+ dependencies:
-+ parent-module: 1.0.1
-+ resolve-from: 4.0.0
-+ dev: false
-+
-+ /imurmurhash/0.1.4:
-+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
-+ engines: {node: '>=0.8.19'}
-+ dev: false
-+
-+ /inflight/1.0.6:
-+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
-+ dependencies:
-+ once: 1.4.0
-+ wrappy: 1.0.2
-+ dev: false
-+
-+ /inherits/2.0.4:
-+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-+ dev: false
-+
-+ /internal-slot/1.0.4:
-+ resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ get-intrinsic: 1.1.3
-+ has: 1.0.3
-+ side-channel: 1.0.4
-+ dev: false
-+
-+ /is-bigint/1.0.4:
-+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
-+ dependencies:
-+ has-bigints: 1.0.2
-+ dev: false
-+
-+ /is-boolean-object/1.1.2:
-+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ has-tostringtag: 1.0.0
-+ dev: false
-+
-+ /is-callable/1.2.7:
-+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
-+ engines: {node: '>= 0.4'}
-+ dev: false
-+
-+ /is-core-module/2.11.0:
-+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
-+ dependencies:
-+ has: 1.0.3
-+ dev: false
-+
-+ /is-date-object/1.0.5:
-+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-tostringtag: 1.0.0
-+ dev: false
-+
-+ /is-docker/2.2.1:
-+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
-+ engines: {node: '>=8'}
-+ hasBin: true
-+ dev: false
-+
-+ /is-extglob/2.1.1:
-+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /is-glob/4.0.3:
-+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
-+ engines: {node: '>=0.10.0'}
-+ dependencies:
-+ is-extglob: 2.1.1
-+ dev: false
-+
-+ /is-negative-zero/2.0.2:
-+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
-+ engines: {node: '>= 0.4'}
-+ dev: false
-+
-+ /is-number-object/1.0.7:
-+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-tostringtag: 1.0.0
-+ dev: false
-+
-+ /is-number/7.0.0:
-+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
-+ engines: {node: '>=0.12.0'}
-+ dev: false
-+
-+ /is-path-inside/3.0.3:
-+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /is-regex/1.1.4:
-+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ has-tostringtag: 1.0.0
-+ dev: false
-+
-+ /is-shared-array-buffer/1.0.2:
-+ resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ dev: false
-+
-+ /is-string/1.0.7:
-+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-tostringtag: 1.0.0
-+ dev: false
-+
-+ /is-symbol/1.0.4:
-+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ has-symbols: 1.0.3
-+ dev: false
-+
-+ /is-weakref/1.0.2:
-+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ dev: false
-+
-+ /is-wsl/2.2.0:
-+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ is-docker: 2.2.1
-+ dev: false
-+
-+ /isexe/2.0.0:
-+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-+ dev: false
-+
-+ /js-sdsl/4.2.0:
-+ resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
-+ dev: false
-+
-+ /js-tokens/4.0.0:
-+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-+ dev: false
-+
-+ /js-yaml/4.1.0:
-+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
-+ hasBin: true
-+ dependencies:
-+ argparse: 2.0.1
-+ dev: false
-+
-+ /json-schema-traverse/0.4.1:
-+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-+ dev: false
-+
-+ /json-stable-stringify-without-jsonify/1.0.1:
-+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-+ dev: false
-+
-+ /json5/1.0.2:
-+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
-+ hasBin: true
-+ dependencies:
-+ minimist: 1.2.7
-+ dev: false
-+
-+ /jsx-ast-utils/3.3.3:
-+ resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
-+ engines: {node: '>=4.0'}
-+ dependencies:
-+ array-includes: 3.1.6
-+ object.assign: 4.1.4
-+ dev: false
-+
-+ /language-subtag-registry/0.3.22:
-+ resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
-+ dev: false
-+
-+ /language-tags/1.0.7:
-+ resolution: {integrity: sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==}
-+ dependencies:
-+ language-subtag-registry: 0.3.22
-+ dev: false
-+
-+ /levn/0.4.1:
-+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
-+ engines: {node: '>= 0.8.0'}
-+ dependencies:
-+ prelude-ls: 1.2.1
-+ type-check: 0.4.0
-+ dev: false
-+
-+ /locate-path/6.0.0:
-+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ p-locate: 5.0.0
-+ dev: false
-+
-+ /lodash.merge/4.6.2:
-+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-+ dev: false
-+
-+ /loose-envify/1.4.0:
-+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
-+ hasBin: true
-+ dependencies:
-+ js-tokens: 4.0.0
-+ dev: false
-+
-+ /lru-cache/6.0.0:
-+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ yallist: 4.0.0
-+ dev: false
-+
-+ /merge2/1.4.1:
-+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
-+ engines: {node: '>= 8'}
-+ dev: false
-+
-+ /micromatch/4.0.5:
-+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
-+ engines: {node: '>=8.6'}
-+ dependencies:
-+ braces: 3.0.2
-+ picomatch: 2.3.1
-+ dev: false
-+
-+ /minimatch/3.1.2:
-+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-+ dependencies:
-+ brace-expansion: 1.1.11
-+ dev: false
-+
-+ /minimist/1.2.7:
-+ resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
-+ dev: false
-+
-+ /ms/2.0.0:
-+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-+ dev: false
-+
-+ /ms/2.1.2:
-+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-+ dev: false
-+
-+ /ms/2.1.3:
-+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-+ dev: false
-+
-+ /nanoid/3.3.4:
-+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
-+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
-+ hasBin: true
-+ dev: false
-+
-+ /natural-compare/1.4.0:
-+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-+ dev: false
-+
-+ /next/13.1.1_biqbaboplfbrettd7655fr4n2y:
-+ resolution: {integrity: sha512-R5eBAaIa3X7LJeYvv1bMdGnAVF4fVToEjim7MkflceFPuANY3YyvFxXee/A+acrSYwYPvOvf7f6v/BM/48ea5w==}
-+ engines: {node: '>=14.6.0'}
-+ hasBin: true
-+ peerDependencies:
-+ fibers: '>= 3.1.0'
-+ node-sass: ^6.0.0 || ^7.0.0
-+ react: ^18.2.0
-+ react-dom: ^18.2.0
-+ sass: ^1.3.0
-+ peerDependenciesMeta:
-+ fibers:
-+ optional: true
-+ node-sass:
-+ optional: true
-+ sass:
-+ optional: true
-+ dependencies:
-+ '@next/env': 13.1.1
-+ '@swc/helpers': 0.4.14
-+ caniuse-lite: 1.0.30001441
-+ postcss: 8.4.14
-+ react: 18.2.0
-+ react-dom: 18.2.0_react@18.2.0
-+ styled-jsx: 5.1.1_react@18.2.0
-+ optionalDependencies:
-+ '@next/swc-android-arm-eabi': 13.1.1
-+ '@next/swc-android-arm64': 13.1.1
-+ '@next/swc-darwin-arm64': 13.1.1
-+ '@next/swc-darwin-x64': 13.1.1
-+ '@next/swc-freebsd-x64': 13.1.1
-+ '@next/swc-linux-arm-gnueabihf': 13.1.1
-+ '@next/swc-linux-arm64-gnu': 13.1.1
-+ '@next/swc-linux-arm64-musl': 13.1.1
-+ '@next/swc-linux-x64-gnu': 13.1.1
-+ '@next/swc-linux-x64-musl': 13.1.1
-+ '@next/swc-win32-arm64-msvc': 13.1.1
-+ '@next/swc-win32-ia32-msvc': 13.1.1
-+ '@next/swc-win32-x64-msvc': 13.1.1
-+ transitivePeerDependencies:
-+ - '@babel/core'
-+ - babel-plugin-macros
-+ dev: false
-+
-+ /object-assign/4.1.1:
-+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /object-inspect/1.12.2:
-+ resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
-+ dev: false
-+
-+ /object-keys/1.1.1:
-+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
-+ engines: {node: '>= 0.4'}
-+ dev: false
-+
-+ /object.assign/4.1.4:
-+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ has-symbols: 1.0.3
-+ object-keys: 1.1.1
-+ dev: false
-+
-+ /object.entries/1.1.6:
-+ resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /object.fromentries/2.0.6:
-+ resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /object.hasown/1.1.2:
-+ resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
-+ dependencies:
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /object.values/1.1.6:
-+ resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /once/1.4.0:
-+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-+ dependencies:
-+ wrappy: 1.0.2
-+ dev: false
-+
-+ /open/8.4.0:
-+ resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
-+ engines: {node: '>=12'}
-+ dependencies:
-+ define-lazy-prop: 2.0.0
-+ is-docker: 2.2.1
-+ is-wsl: 2.2.0
-+ dev: false
-+
-+ /optionator/0.9.1:
-+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
-+ engines: {node: '>= 0.8.0'}
-+ dependencies:
-+ deep-is: 0.1.4
-+ fast-levenshtein: 2.0.6
-+ levn: 0.4.1
-+ prelude-ls: 1.2.1
-+ type-check: 0.4.0
-+ word-wrap: 1.2.3
-+ dev: false
-+
-+ /p-limit/3.1.0:
-+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ yocto-queue: 0.1.0
-+ dev: false
-+
-+ /p-locate/5.0.0:
-+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
-+ engines: {node: '>=10'}
-+ dependencies:
-+ p-limit: 3.1.0
-+ dev: false
-+
-+ /parent-module/1.0.1:
-+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
-+ engines: {node: '>=6'}
-+ dependencies:
-+ callsites: 3.1.0
-+ dev: false
-+
-+ /path-exists/4.0.0:
-+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /path-is-absolute/1.0.1:
-+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /path-key/3.1.1:
-+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /path-parse/1.0.7:
-+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-+ dev: false
-+
-+ /path-type/4.0.0:
-+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /picocolors/1.0.0:
-+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
-+ dev: false
-+
-+ /picomatch/2.3.1:
-+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
-+ engines: {node: '>=8.6'}
-+ dev: false
-+
-+ /postcss/8.4.14:
-+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
-+ engines: {node: ^10 || ^12 || >=14}
-+ dependencies:
-+ nanoid: 3.3.4
-+ picocolors: 1.0.0
-+ source-map-js: 1.0.2
-+ dev: false
-+
-+ /prelude-ls/1.2.1:
-+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
-+ engines: {node: '>= 0.8.0'}
-+ dev: false
-+
-+ /prettier/2.8.1:
-+ resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==}
-+ engines: {node: '>=10.13.0'}
-+ hasBin: true
-+ dev: true
-+
-+ /prop-types/15.8.1:
-+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
-+ dependencies:
-+ loose-envify: 1.4.0
-+ object-assign: 4.1.1
-+ react-is: 16.13.1
-+ dev: false
-+
-+ /punycode/2.1.1:
-+ resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
-+ engines: {node: '>=6'}
-+ dev: false
-+
-+ /queue-microtask/1.2.3:
-+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-+ dev: false
-+
-+ /react-dom/18.2.0_react@18.2.0:
-+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
-+ peerDependencies:
-+ react: ^18.2.0
-+ dependencies:
-+ loose-envify: 1.4.0
-+ react: 18.2.0
-+ scheduler: 0.23.0
-+ dev: false
-+
-+ /react-is/16.13.1:
-+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
-+ dev: false
-+
-+ /react/18.2.0:
-+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
-+ engines: {node: '>=0.10.0'}
-+ dependencies:
-+ loose-envify: 1.4.0
-+ dev: false
-+
-+ /regenerator-runtime/0.13.11:
-+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
-+ dev: false
-+
-+ /regexp.prototype.flags/1.4.3:
-+ resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
-+ engines: {node: '>= 0.4'}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ functions-have-names: 1.2.3
-+ dev: false
-+
-+ /regexpp/3.2.0:
-+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /resolve-from/4.0.0:
-+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
-+ engines: {node: '>=4'}
-+ dev: false
-+
-+ /resolve/1.22.1:
-+ resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
-+ hasBin: true
-+ dependencies:
-+ is-core-module: 2.11.0
-+ path-parse: 1.0.7
-+ supports-preserve-symlinks-flag: 1.0.0
-+ dev: false
-+
-+ /resolve/2.0.0-next.4:
-+ resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
-+ hasBin: true
-+ dependencies:
-+ is-core-module: 2.11.0
-+ path-parse: 1.0.7
-+ supports-preserve-symlinks-flag: 1.0.0
-+ dev: false
-+
-+ /reusify/1.0.4:
-+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
-+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-+ dev: false
-+
-+ /rimraf/3.0.2:
-+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
-+ hasBin: true
-+ dependencies:
-+ glob: 7.2.3
-+ dev: false
-+
-+ /run-parallel/1.2.0:
-+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-+ dependencies:
-+ queue-microtask: 1.2.3
-+ dev: false
-+
-+ /safe-regex-test/1.0.0:
-+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ get-intrinsic: 1.1.3
-+ is-regex: 1.1.4
-+ dev: false
-+
-+ /scheduler/0.23.0:
-+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
-+ dependencies:
-+ loose-envify: 1.4.0
-+ dev: false
-+
-+ /semver/6.3.0:
-+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
-+ hasBin: true
-+ dev: false
-+
-+ /semver/7.3.8:
-+ resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
-+ engines: {node: '>=10'}
-+ hasBin: true
-+ dependencies:
-+ lru-cache: 6.0.0
-+ dev: false
-+
-+ /shebang-command/2.0.0:
-+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ shebang-regex: 3.0.0
-+ dev: false
-+
-+ /shebang-regex/3.0.0:
-+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /side-channel/1.0.4:
-+ resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ get-intrinsic: 1.1.3
-+ object-inspect: 1.12.2
-+ dev: false
-+
-+ /slash/3.0.0:
-+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /slash/4.0.0:
-+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
-+ engines: {node: '>=12'}
-+ dev: false
-+
-+ /source-map-js/1.0.2:
-+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /string.prototype.matchall/4.0.8:
-+ resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ get-intrinsic: 1.1.3
-+ has-symbols: 1.0.3
-+ internal-slot: 1.0.4
-+ regexp.prototype.flags: 1.4.3
-+ side-channel: 1.0.4
-+ dev: false
-+
-+ /string.prototype.trimend/1.0.6:
-+ resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /string.prototype.trimstart/1.0.6:
-+ resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ define-properties: 1.1.4
-+ es-abstract: 1.20.5
-+ dev: false
-+
-+ /strip-ansi/6.0.1:
-+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ ansi-regex: 5.0.1
-+ dev: false
-+
-+ /strip-bom/3.0.0:
-+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
-+ engines: {node: '>=4'}
-+ dev: false
-+
-+ /strip-json-comments/3.1.1:
-+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
-+ engines: {node: '>=8'}
-+ dev: false
-+
-+ /styled-jsx/5.1.1_react@18.2.0:
-+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
-+ engines: {node: '>= 12.0.0'}
-+ peerDependencies:
-+ '@babel/core': '*'
-+ babel-plugin-macros: '*'
-+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
-+ peerDependenciesMeta:
-+ '@babel/core':
-+ optional: true
-+ babel-plugin-macros:
-+ optional: true
-+ dependencies:
-+ client-only: 0.0.1
-+ react: 18.2.0
-+ dev: false
-+
-+ /supports-color/7.2.0:
-+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
-+ engines: {node: '>=8'}
-+ dependencies:
-+ has-flag: 4.0.0
-+ dev: false
-+
-+ /supports-preserve-symlinks-flag/1.0.0:
-+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
-+ engines: {node: '>= 0.4'}
-+ dev: false
-+
-+ /synckit/0.8.4:
-+ resolution: {integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==}
-+ engines: {node: ^14.18.0 || >=16.0.0}
-+ dependencies:
-+ '@pkgr/utils': 2.3.1
-+ tslib: 2.4.1
-+ dev: false
-+
-+ /tapable/2.2.1:
-+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
-+ engines: {node: '>=6'}
-+ dev: false
-+
-+ /text-table/0.2.0:
-+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-+ dev: false
-+
-+ /tiny-glob/0.2.9:
-+ resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
-+ dependencies:
-+ globalyzer: 0.1.0
-+ globrex: 0.1.2
-+ dev: false
-+
-+ /to-regex-range/5.0.1:
-+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
-+ engines: {node: '>=8.0'}
-+ dependencies:
-+ is-number: 7.0.0
-+ dev: false
-+
-+ /tsconfig-paths/3.14.1:
-+ resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
-+ dependencies:
-+ '@types/json5': 0.0.29
-+ json5: 1.0.2
-+ minimist: 1.2.7
-+ strip-bom: 3.0.0
-+ dev: false
-+
-+ /tslib/1.14.1:
-+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-+ dev: false
-+
-+ /tslib/2.4.1:
-+ resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
-+ dev: false
-+
-+ /tsutils/3.21.0_typescript@4.9.4:
-+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
-+ engines: {node: '>= 6'}
-+ peerDependencies:
-+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
-+ dependencies:
-+ tslib: 1.14.1
-+ typescript: 4.9.4
-+ dev: false
-+
-+ /type-check/0.4.0:
-+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
-+ engines: {node: '>= 0.8.0'}
-+ dependencies:
-+ prelude-ls: 1.2.1
-+ dev: false
-+
-+ /type-fest/0.20.2:
-+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
-+ engines: {node: '>=10'}
-+ dev: false
-+
-+ /typescript/4.9.4:
-+ resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
-+ engines: {node: '>=4.2.0'}
-+ hasBin: true
-+ dev: false
-+
-+ /unbox-primitive/1.0.2:
-+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
-+ dependencies:
-+ call-bind: 1.0.2
-+ has-bigints: 1.0.2
-+ has-symbols: 1.0.3
-+ which-boxed-primitive: 1.0.2
-+ dev: false
-+
-+ /uri-js/4.4.1:
-+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-+ dependencies:
-+ punycode: 2.1.1
-+ dev: false
-+
-+ /which-boxed-primitive/1.0.2:
-+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
-+ dependencies:
-+ is-bigint: 1.0.4
-+ is-boolean-object: 1.1.2
-+ is-number-object: 1.0.7
-+ is-string: 1.0.7
-+ is-symbol: 1.0.4
-+ dev: false
-+
-+ /which/2.0.2:
-+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
-+ engines: {node: '>= 8'}
-+ hasBin: true
-+ dependencies:
-+ isexe: 2.0.0
-+ dev: false
-+
-+ /word-wrap/1.2.3:
-+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
-+ engines: {node: '>=0.10.0'}
-+ dev: false
-+
-+ /wrappy/1.0.2:
-+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-+ dev: false
-+
-+ /yallist/4.0.0:
-+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-+ dev: false
-+
-+ /yocto-queue/0.1.0:
-+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
-+ engines: {node: '>=10'}
-+ dev: false
-+
-+ file:../..:
-+ resolution: {directory: ../.., type: directory}
-+ name: '@toots/shine.js'
-+ version: 1.0.1
-+ dev: false
-diff --git a/js/test/nextjs/public/encode.wav b/js/test/nextjs/public/encode.wav
-new file mode 120000
-index 0000000..0f5f127
---- /dev/null
-+++ b/js/test/nextjs/public/encode.wav
-@@ -0,0 +1 @@
-+../lib/encode.wav
-\ No newline at end of file
-diff --git a/js/test/nextjs/tsconfig.json b/js/test/nextjs/tsconfig.json
-new file mode 100644
-index 0000000..66151f2
---- /dev/null
-+++ b/js/test/nextjs/tsconfig.json
-@@ -0,0 +1,23 @@
-+{
-+ "compilerOptions": {
-+ "target": "es5",
-+ "lib": ["dom", "dom.iterable", "esnext"],
-+ "allowJs": true,
-+ "skipLibCheck": true,
-+ "strict": true,
-+ "forceConsistentCasingInFileNames": true,
-+ "noEmit": true,
-+ "esModuleInterop": true,
-+ "module": "esnext",
-+ "moduleResolution": "node",
-+ "resolveJsonModule": true,
-+ "isolatedModules": true,
-+ "jsx": "preserve",
-+ "incremental": true,
-+ "paths": {
-+ "@shine/*": ["./*"]
-+ }
-+ },
-+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
-+ "exclude": ["node_modules"]
-+}
-diff --git a/js/test/node/encode.coffee b/js/test/node/encode.coffee
-deleted file mode 100644
-index 3e1ba72..0000000
---- a/js/test/node/encode.coffee
-+++ /dev/null
-@@ -1,58 +0,0 @@
--Shine = require "../../dist/libshine.js"
--{Reader} = require "wav"
--fs = require "fs"
--
--console.log ""
--console.log "Executing encoding test"
--
--bitrate = 128
--str = fs.createReadStream "../lib/encode.wav"
--fd = fs.openSync "./encode.mp3", "w"
--reader = new Reader
--
--str.pipe reader
--
--write = (encoded) ->
-- return unless encoded.length > 0
-- buf = new Buffer encoded
-- fs.writeSync fd, buf, 0, buf.length
--
--reader.on "format", (format) ->
-- console.log "Got WAV file."
--
-- shine = new Shine
-- bitrate: bitrate
-- samplerate: format.sampleRate
-- channels: format.channels
--
-- console.log "Encoding.."
-- started = new Date
-- duration = 0.0
-- samplerate = parseFloat format.sampleRate
--
-- reader.on "data", (buf) ->
-- samples = buf.length/(2*format.channels)
--
-- duration += parseFloat(samples) / samplerate
--
-- write shine.encode(convertInterleavedBuffer(buf, format.channels, samples))
--
-- reader.on "end", ->
-- write shine.close()
--
-- ended = new Date
-- encodingTime = (ended.getTime() - started.getTime())/1000
-- console.log "Done encoding."
-- console.log "File duration: #{duration.toFixed(2)} seconds"
-- console.log "Encoding time: #{encodingTime.toFixed(2)} seconds"
-- console.log "Encoding rate: #{(duration/encodingTime).toFixed(2)}X"
-- process.exit 0
--
--convertInterleavedBuffer = (buf, channels, samples) ->
-- ret = new Array channels
-- for chan in [0..channels-1]
-- ret[chan] = new Int16Array samples
-- for i in [0..samples-1]
-- ret[chan][i] = buf.readInt16LE 2*(i*channels + chan)
--
-- ret
-diff --git a/js/test/node/encode.ts b/js/test/node/encode.ts
-new file mode 100644
-index 0000000..cc971e1
---- /dev/null
-+++ b/js/test/node/encode.ts
-@@ -0,0 +1,73 @@
-+import { Shine } from "@toots/shine.js";
-+import { Reader } from "wav";
-+import fs from "fs";
-+
-+const convertInterleavedBuffer = (buf, channels, samples) => {
-+ const ret = new Array(channels);
-+ for (let chan = 0; chan < channels; chan++) {
-+ ret[chan] = new Int16Array(samples);
-+ for (let i = 0; i < samples; i++) {
-+ ret[chan][i] = buf.readInt16LE(2 * (i * channels + chan));
-+ }
-+ }
-+
-+ return ret;
-+};
-+
-+const exec = async () => {
-+ await Shine.initialized;
-+
-+ console.log("");
-+ console.log("Executing encoding test");
-+
-+ const bitrate = 128;
-+ const str = fs.createReadStream("../lib/encode.wav");
-+ const fd = fs.openSync("./encode.mp3", "w");
-+ const reader = new Reader();
-+
-+ str.pipe(reader);
-+
-+ const write = encoded => {
-+ if (encoded.length <= 0) return;
-+
-+ const buf = Buffer.from(encoded);
-+ fs.writeSync(fd, buf, 0, buf.length);
-+ };
-+
-+ reader.on("format", format => {
-+ console.log("Got WAV file.");
-+
-+ const shine = new Shine({
-+ bitrate: bitrate,
-+ samplerate: format.sampleRate,
-+ channels: format.channels,
-+ });
-+
-+ console.log("Encoding..");
-+ const started = new Date();
-+ let duration = 0.0;
-+ const samplerate = format.sampleRate;
-+
-+ reader.on("data", buf => {
-+ const samples = buf.length / (2 * format.channels);
-+
-+ duration += samples / samplerate;
-+
-+ write(shine.encode(convertInterleavedBuffer(buf, format.channels, samples)));
-+ });
-+
-+ reader.on("end", () => {
-+ write(shine.close());
-+
-+ const ended = new Date();
-+ const encodingTime = (ended.getTime() - started.getTime()) / 1000;
-+ console.log("Done encoding.");
-+ console.log(`File duration: ${duration.toFixed(2)} seconds`);
-+ console.log(`Encoding time: ${encodingTime.toFixed(2)} seconds`);
-+ console.log(`Encoding rate: ${(duration / encodingTime).toFixed(2)}X`);
-+ process.exit(0);
-+ });
-+ });
-+};
-+
-+exec();
-diff --git a/js/test/node/package-lock.json b/js/test/node/package-lock.json
-index 0096742..752a7c7 100644
---- a/js/test/node/package-lock.json
-+++ b/js/test/node/package-lock.json
-@@ -1,49 +1,493 @@
- {
- "name": "shine-js-test",
- "version": "0.0.1",
-- "lockfileVersion": 1,
-+ "lockfileVersion": 2,
- "requires": true,
-+ "packages": {
-+ "": {
-+ "name": "shine-js-test",
-+ "version": "0.0.1",
-+ "dependencies": {
-+ "@toots/shine.js": "file:../..",
-+ "@types/node": "^18.11.18",
-+ "ts-node": "^10.9.1",
-+ "typescript": "^4.9.4",
-+ "wav": "^1.0.2"
-+ }
-+ },
-+ "../..": {
-+ "name": "@toots/shine.js",
-+ "version": "1.0.1",
-+ "license": "LGPL-2.0-only"
-+ },
-+ "node_modules/@cspotcode/source-map-support": {
-+ "version": "0.8.1",
-+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
-+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
-+ "dependencies": {
-+ "@jridgewell/trace-mapping": "0.3.9"
-+ },
-+ "engines": {
-+ "node": ">=12"
-+ }
-+ },
-+ "node_modules/@jridgewell/resolve-uri": {
-+ "version": "3.1.0",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
-+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
-+ "engines": {
-+ "node": ">=6.0.0"
-+ }
-+ },
-+ "node_modules/@jridgewell/sourcemap-codec": {
-+ "version": "1.4.14",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
-+ },
-+ "node_modules/@jridgewell/trace-mapping": {
-+ "version": "0.3.9",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
-+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
-+ "dependencies": {
-+ "@jridgewell/resolve-uri": "^3.0.3",
-+ "@jridgewell/sourcemap-codec": "^1.4.10"
-+ }
-+ },
-+ "node_modules/@toots/shine.js": {
-+ "resolved": "../..",
-+ "link": true
-+ },
-+ "node_modules/@tsconfig/node10": {
-+ "version": "1.0.9",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
-+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
-+ },
-+ "node_modules/@tsconfig/node12": {
-+ "version": "1.0.11",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
-+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
-+ },
-+ "node_modules/@tsconfig/node14": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
-+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
-+ },
-+ "node_modules/@tsconfig/node16": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
-+ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
-+ },
-+ "node_modules/@types/node": {
-+ "version": "18.11.18",
-+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
-+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
-+ },
-+ "node_modules/acorn": {
-+ "version": "8.8.1",
-+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
-+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
-+ "bin": {
-+ "acorn": "bin/acorn"
-+ },
-+ "engines": {
-+ "node": ">=0.4.0"
-+ }
-+ },
-+ "node_modules/acorn-walk": {
-+ "version": "8.2.0",
-+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
-+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
-+ "engines": {
-+ "node": ">=0.4.0"
-+ }
-+ },
-+ "node_modules/arg": {
-+ "version": "4.1.3",
-+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
-+ },
-+ "node_modules/buffer-alloc": {
-+ "version": "1.2.0",
-+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
-+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
-+ "dependencies": {
-+ "buffer-alloc-unsafe": "^1.1.0",
-+ "buffer-fill": "^1.0.0"
-+ }
-+ },
-+ "node_modules/buffer-alloc-unsafe": {
-+ "version": "1.1.0",
-+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
-+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
-+ },
-+ "node_modules/buffer-fill": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
-+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
-+ },
-+ "node_modules/buffer-from": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
-+ },
-+ "node_modules/core-util-is": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-+ },
-+ "node_modules/create-require": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
-+ },
-+ "node_modules/debug": {
-+ "version": "2.6.9",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-+ "dependencies": {
-+ "ms": "2.0.0"
-+ }
-+ },
-+ "node_modules/diff": {
-+ "version": "4.0.2",
-+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
-+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
-+ "engines": {
-+ "node": ">=0.3.1"
-+ }
-+ },
-+ "node_modules/inherits": {
-+ "version": "2.0.3",
-+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
-+ },
-+ "node_modules/isarray": {
-+ "version": "0.0.1",
-+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
-+ },
-+ "node_modules/make-error": {
-+ "version": "1.3.6",
-+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
-+ },
-+ "node_modules/ms": {
-+ "version": "2.0.0",
-+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-+ },
-+ "node_modules/readable-stream": {
-+ "version": "1.1.14",
-+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-+ "dependencies": {
-+ "core-util-is": "~1.0.0",
-+ "inherits": "~2.0.1",
-+ "isarray": "0.0.1",
-+ "string_decoder": "~0.10.x"
-+ }
-+ },
-+ "node_modules/stream-parser": {
-+ "version": "0.3.1",
-+ "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
-+ "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
-+ "dependencies": {
-+ "debug": "2"
-+ }
-+ },
-+ "node_modules/string_decoder": {
-+ "version": "0.10.31",
-+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-+ },
-+ "node_modules/ts-node": {
-+ "version": "10.9.1",
-+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
-+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
-+ "dependencies": {
-+ "@cspotcode/source-map-support": "^0.8.0",
-+ "@tsconfig/node10": "^1.0.7",
-+ "@tsconfig/node12": "^1.0.7",
-+ "@tsconfig/node14": "^1.0.0",
-+ "@tsconfig/node16": "^1.0.2",
-+ "acorn": "^8.4.1",
-+ "acorn-walk": "^8.1.1",
-+ "arg": "^4.1.0",
-+ "create-require": "^1.1.0",
-+ "diff": "^4.0.1",
-+ "make-error": "^1.1.1",
-+ "v8-compile-cache-lib": "^3.0.1",
-+ "yn": "3.1.1"
-+ },
-+ "bin": {
-+ "ts-node": "dist/bin.js",
-+ "ts-node-cwd": "dist/bin-cwd.js",
-+ "ts-node-esm": "dist/bin-esm.js",
-+ "ts-node-script": "dist/bin-script.js",
-+ "ts-node-transpile-only": "dist/bin-transpile.js",
-+ "ts-script": "dist/bin-script-deprecated.js"
-+ },
-+ "peerDependencies": {
-+ "@swc/core": ">=1.2.50",
-+ "@swc/wasm": ">=1.2.50",
-+ "@types/node": "*",
-+ "typescript": ">=2.7"
-+ },
-+ "peerDependenciesMeta": {
-+ "@swc/core": {
-+ "optional": true
-+ },
-+ "@swc/wasm": {
-+ "optional": true
-+ }
-+ }
-+ },
-+ "node_modules/typescript": {
-+ "version": "4.9.4",
-+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
-+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
-+ "bin": {
-+ "tsc": "bin/tsc",
-+ "tsserver": "bin/tsserver"
-+ },
-+ "engines": {
-+ "node": ">=4.2.0"
-+ }
-+ },
-+ "node_modules/v8-compile-cache-lib": {
-+ "version": "3.0.1",
-+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
-+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
-+ },
-+ "node_modules/wav": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/wav/-/wav-1.0.2.tgz",
-+ "integrity": "sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==",
-+ "dependencies": {
-+ "buffer-alloc": "^1.1.0",
-+ "buffer-from": "^1.0.0",
-+ "debug": "^2.2.0",
-+ "readable-stream": "^1.1.14",
-+ "stream-parser": "^0.3.1"
-+ }
-+ },
-+ "node_modules/yn": {
-+ "version": "3.1.1",
-+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
-+ "engines": {
-+ "node": ">=6"
-+ }
-+ }
-+ },
- "dependencies": {
-- "coffee-script": {
-- "version": "1.6.3",
-- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz",
-- "integrity": "sha1-Y1XTLPGwTN/2tITl5xF4Ky8MOb4="
-+ "@cspotcode/source-map-support": {
-+ "version": "0.8.1",
-+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
-+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
-+ "requires": {
-+ "@jridgewell/trace-mapping": "0.3.9"
-+ }
-+ },
-+ "@jridgewell/resolve-uri": {
-+ "version": "3.1.0",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
-+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
-+ },
-+ "@jridgewell/sourcemap-codec": {
-+ "version": "1.4.14",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
-+ },
-+ "@jridgewell/trace-mapping": {
-+ "version": "0.3.9",
-+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
-+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
-+ "requires": {
-+ "@jridgewell/resolve-uri": "^3.0.3",
-+ "@jridgewell/sourcemap-codec": "^1.4.10"
-+ }
-+ },
-+ "@toots/shine.js": {
-+ "version": "file:../.."
-+ },
-+ "@tsconfig/node10": {
-+ "version": "1.0.9",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
-+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
-+ },
-+ "@tsconfig/node12": {
-+ "version": "1.0.11",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
-+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
-+ },
-+ "@tsconfig/node14": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
-+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
-+ },
-+ "@tsconfig/node16": {
-+ "version": "1.0.3",
-+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
-+ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
-+ },
-+ "@types/node": {
-+ "version": "18.11.18",
-+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
-+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
-+ },
-+ "acorn": {
-+ "version": "8.8.1",
-+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
-+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
-+ },
-+ "acorn-walk": {
-+ "version": "8.2.0",
-+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
-+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
-+ },
-+ "arg": {
-+ "version": "4.1.3",
-+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
-+ },
-+ "buffer-alloc": {
-+ "version": "1.2.0",
-+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
-+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
-+ "requires": {
-+ "buffer-alloc-unsafe": "^1.1.0",
-+ "buffer-fill": "^1.0.0"
-+ }
-+ },
-+ "buffer-alloc-unsafe": {
-+ "version": "1.1.0",
-+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
-+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
-+ },
-+ "buffer-fill": {
-+ "version": "1.0.0",
-+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
-+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
-+ },
-+ "buffer-from": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
-+ },
-+ "core-util-is": {
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-+ },
-+ "create-require": {
-+ "version": "1.1.1",
-+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
- },
- "debug": {
-- "version": "2.6.8",
-- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
-- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
-+ "version": "2.6.9",
-+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
-+ "diff": {
-+ "version": "4.0.2",
-+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
-+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
-+ },
-+ "inherits": {
-+ "version": "2.0.3",
-+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
-+ },
-+ "isarray": {
-+ "version": "0.0.1",
-+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
-+ },
-+ "make-error": {
-+ "version": "1.3.6",
-+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
-+ },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "readable-stream": {
-- "version": "0.0.4",
-- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz",
-- "integrity": "sha1-8y124/uGM0SlSNeZIwBxc2ZbO40="
-+ "version": "1.1.14",
-+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-+ "requires": {
-+ "core-util-is": "~1.0.0",
-+ "inherits": "~2.0.1",
-+ "isarray": "0.0.1",
-+ "string_decoder": "~0.10.x"
-+ }
- },
- "stream-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
- "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
- "requires": {
-- "debug": "2.6.8"
-+ "debug": "2"
- }
- },
-+ "string_decoder": {
-+ "version": "0.10.31",
-+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-+ },
-+ "ts-node": {
-+ "version": "10.9.1",
-+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
-+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
-+ "requires": {
-+ "@cspotcode/source-map-support": "^0.8.0",
-+ "@tsconfig/node10": "^1.0.7",
-+ "@tsconfig/node12": "^1.0.7",
-+ "@tsconfig/node14": "^1.0.0",
-+ "@tsconfig/node16": "^1.0.2",
-+ "acorn": "^8.4.1",
-+ "acorn-walk": "^8.1.1",
-+ "arg": "^4.1.0",
-+ "create-require": "^1.1.0",
-+ "diff": "^4.0.1",
-+ "make-error": "^1.1.1",
-+ "v8-compile-cache-lib": "^3.0.1",
-+ "yn": "3.1.1"
-+ }
-+ },
-+ "typescript": {
-+ "version": "4.9.4",
-+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
-+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg=="
-+ },
-+ "v8-compile-cache-lib": {
-+ "version": "3.0.1",
-+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
-+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
-+ },
- "wav": {
-- "version": "0.1.0",
-- "resolved": "https://registry.npmjs.org/wav/-/wav-0.1.0.tgz",
-- "integrity": "sha1-5wTSp2nqIz858tZ5Xout1l9YsAk=",
-+ "version": "1.0.2",
-+ "resolved": "https://registry.npmjs.org/wav/-/wav-1.0.2.tgz",
-+ "integrity": "sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==",
- "requires": {
-- "debug": "2.6.8",
-- "readable-stream": "0.0.4",
-- "stream-parser": "0.3.1"
-+ "buffer-alloc": "^1.1.0",
-+ "buffer-from": "^1.0.0",
-+ "debug": "^2.2.0",
-+ "readable-stream": "^1.1.14",
-+ "stream-parser": "^0.3.1"
- }
-+ },
-+ "yn": {
-+ "version": "3.1.1",
-+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
- }
- }
- }
-diff --git a/js/test/node/package.json b/js/test/node/package.json
-index 5160dab..650299c 100644
---- a/js/test/node/package.json
-+++ b/js/test/node/package.json
-@@ -2,26 +2,16 @@
- "name": "shine-js-test",
- "description": "Test encoder for libshine.js",
- "version": "0.0.1",
-- "homepage": "https://github.com/savonet/shine",
- "author": "Romain Beauxis <toots@rastageeks.org",
-- "repository": {
-- "type": "git",
-- "url": "git://github.com/savonet/shine"
-- },
-- "bugs": {
-- "mail": "toots@rastageeks.org",
-- "url": "http://github.com/savonet/shine/issues"
-- },
-- "main": "test.coffee",
- "scripts": {
-- "test": "coffee ./encode.coffee && coffee ./rounds.coffee"
-- },
-- "engine": {
-- "node": ">= 0.10.7",
-- "npm": "1"
-+ "test": "ts-node ./encode.ts && ts-node ./rounds.ts"
- },
- "dependencies": {
-- "coffee-script": "1.6.3",
-- "wav": "0.1.0"
-+ "@toots/shine.js": "file:../..",
-+ "@types/node": "^18.11.18",
-+ "@types/wav": "^1.0.1",
-+ "ts-node": "^10.9.1",
-+ "typescript": "^4.9.4",
-+ "wav": "^1.0.2"
- }
- }
-diff --git a/js/test/node/pnpm-lock.yaml b/js/test/node/pnpm-lock.yaml
-new file mode 100644
-index 0000000..58a8b69
---- /dev/null
-+++ b/js/test/node/pnpm-lock.yaml
-@@ -0,0 +1,227 @@
-+lockfileVersion: 5.4
-+
-+specifiers:
-+ '@toots/shine.js': file:../..
-+ '@types/node': ^18.11.18
-+ '@types/wav': ^1.0.1
-+ ts-node: ^10.9.1
-+ typescript: ^4.9.4
-+ wav: ^1.0.2
-+
-+dependencies:
-+ '@toots/shine.js': file:../..
-+ '@types/node': 18.11.18
-+ '@types/wav': 1.0.1
-+ ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq
-+ typescript: 4.9.4
-+ wav: 1.0.2
-+
-+packages:
-+
-+ /@cspotcode/source-map-support/0.8.1:
-+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
-+ engines: {node: '>=12'}
-+ dependencies:
-+ '@jridgewell/trace-mapping': 0.3.9
-+ dev: false
-+
-+ /@jridgewell/resolve-uri/3.1.0:
-+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
-+ engines: {node: '>=6.0.0'}
-+ dev: false
-+
-+ /@jridgewell/sourcemap-codec/1.4.14:
-+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
-+ dev: false
-+
-+ /@jridgewell/trace-mapping/0.3.9:
-+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
-+ dependencies:
-+ '@jridgewell/resolve-uri': 3.1.0
-+ '@jridgewell/sourcemap-codec': 1.4.14
-+ dev: false
-+
-+ /@tsconfig/node10/1.0.9:
-+ resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
-+ dev: false
-+
-+ /@tsconfig/node12/1.0.11:
-+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
-+ dev: false
-+
-+ /@tsconfig/node14/1.0.3:
-+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
-+ dev: false
-+
-+ /@tsconfig/node16/1.0.3:
-+ resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
-+ dev: false
-+
-+ /@types/node/18.11.18:
-+ resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
-+ dev: false
-+
-+ /@types/wav/1.0.1:
-+ resolution: {integrity: sha512-AKJeM5mqO1pdR2/HaTUQzSCm12No36KUM1larivXUmsLx+4JmMuC2Tv0kCdZzTx66h7IH2Xr92DGc9NQsXxa9Q==}
-+ dependencies:
-+ '@types/node': 18.11.18
-+ dev: false
-+
-+ /acorn-walk/8.2.0:
-+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
-+ engines: {node: '>=0.4.0'}
-+ dev: false
-+
-+ /acorn/8.8.1:
-+ resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
-+ engines: {node: '>=0.4.0'}
-+ hasBin: true
-+ dev: false
-+
-+ /arg/4.1.3:
-+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
-+ dev: false
-+
-+ /buffer-alloc-unsafe/1.1.0:
-+ resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
-+ dev: false
-+
-+ /buffer-alloc/1.2.0:
-+ resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==}
-+ dependencies:
-+ buffer-alloc-unsafe: 1.1.0
-+ buffer-fill: 1.0.0
-+ dev: false
-+
-+ /buffer-fill/1.0.0:
-+ resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==}
-+ dev: false
-+
-+ /buffer-from/1.1.2:
-+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-+ dev: false
-+
-+ /core-util-is/1.0.3:
-+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
-+ dev: false
-+
-+ /create-require/1.1.1:
-+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
-+ dev: false
-+
-+ /debug/2.6.9:
-+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
-+ peerDependencies:
-+ supports-color: '*'
-+ peerDependenciesMeta:
-+ supports-color:
-+ optional: true
-+ dependencies:
-+ ms: 2.0.0
-+ dev: false
-+
-+ /diff/4.0.2:
-+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
-+ engines: {node: '>=0.3.1'}
-+ dev: false
-+
-+ /inherits/2.0.4:
-+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-+ dev: false
-+
-+ /isarray/0.0.1:
-+ resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
-+ dev: false
-+
-+ /make-error/1.3.6:
-+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-+ dev: false
-+
-+ /ms/2.0.0:
-+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-+ dev: false
-+
-+ /readable-stream/1.1.14:
-+ resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==}
-+ dependencies:
-+ core-util-is: 1.0.3
-+ inherits: 2.0.4
-+ isarray: 0.0.1
-+ string_decoder: 0.10.31
-+ dev: false
-+
-+ /stream-parser/0.3.1:
-+ resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==}
-+ dependencies:
-+ debug: 2.6.9
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /string_decoder/0.10.31:
-+ resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
-+ dev: false
-+
-+ /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq:
-+ resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
-+ hasBin: true
-+ peerDependencies:
-+ '@swc/core': '>=1.2.50'
-+ '@swc/wasm': '>=1.2.50'
-+ '@types/node': '*'
-+ typescript: '>=2.7'
-+ peerDependenciesMeta:
-+ '@swc/core':
-+ optional: true
-+ '@swc/wasm':
-+ optional: true
-+ dependencies:
-+ '@cspotcode/source-map-support': 0.8.1
-+ '@tsconfig/node10': 1.0.9
-+ '@tsconfig/node12': 1.0.11
-+ '@tsconfig/node14': 1.0.3
-+ '@tsconfig/node16': 1.0.3
-+ '@types/node': 18.11.18
-+ acorn: 8.8.1
-+ acorn-walk: 8.2.0
-+ arg: 4.1.3
-+ create-require: 1.1.1
-+ diff: 4.0.2
-+ make-error: 1.3.6
-+ typescript: 4.9.4
-+ v8-compile-cache-lib: 3.0.1
-+ yn: 3.1.1
-+ dev: false
-+
-+ /typescript/4.9.4:
-+ resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
-+ engines: {node: '>=4.2.0'}
-+ hasBin: true
-+ dev: false
-+
-+ /v8-compile-cache-lib/3.0.1:
-+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
-+ dev: false
-+
-+ /wav/1.0.2:
-+ resolution: {integrity: sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==}
-+ dependencies:
-+ buffer-alloc: 1.2.0
-+ buffer-from: 1.1.2
-+ debug: 2.6.9
-+ readable-stream: 1.1.14
-+ stream-parser: 0.3.1
-+ transitivePeerDependencies:
-+ - supports-color
-+ dev: false
-+
-+ /yn/3.1.1:
-+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
-+ engines: {node: '>=6'}
-+ dev: false
-+
-+ file:../..:
-+ resolution: {directory: ../.., type: directory}
-+ name: '@toots/shine.js'
-+ version: 1.0.3
-+ dev: false
-diff --git a/js/test/node/rounds.coffee b/js/test/node/rounds.coffee
-deleted file mode 100644
-index 7be6690..0000000
---- a/js/test/node/rounds.coffee
-+++ /dev/null
-@@ -1,6 +0,0 @@
--Shine = require "../../dist/libshine.js"
--runRoundsTest = require "../lib/rounds.js"
--
--console.log ""
--runRoundsTest Shine, (s) ->
-- console.log s
-diff --git a/js/test/node/rounds.ts b/js/test/node/rounds.ts
-new file mode 100644
-index 0000000..6f3e664
---- /dev/null
-+++ b/js/test/node/rounds.ts
-@@ -0,0 +1,11 @@
-+import { Shine } from "@toots/shine.js";
-+import runRoundsTest from "../lib/rounds";
-+
-+const exec = async () => {
-+ await Shine.initialized;
-+
-+ console.log("");
-+ runRoundsTest(Shine, s => console.log(s));
-+};
-+
-+exec();
-diff --git a/js/test/node/tsconfig.json b/js/test/node/tsconfig.json
-new file mode 100644
-index 0000000..d1045e4
---- /dev/null
-+++ b/js/test/node/tsconfig.json
-@@ -0,0 +1,8 @@
-+{
-+ "include": ["**/*.ts"],
-+ "compilerOptions": {
-+ "allowJs": true,
-+ "skipLibCheck": true,
-+ "esModuleInterop": true
-+ }
-+}
-diff --git a/src/bin/main.c b/src/bin/main.c
-index ab16fea..b7b70a4 100644
---- a/src/bin/main.c
-+++ b/src/bin/main.c
-@@ -35,32 +35,25 @@ int _verbose = 0;
- int stereo = STEREO;
- int force_mono = 0;
-
--int verbose()
--{
-- return _verbose;
--}
-+int verbose() { return _verbose; }
-
- /* Write out the MP3 file */
--int write_mp3(long bytes, void *buffer, void *config)
--{
-- return fwrite(buffer, sizeof(unsigned char), bytes, outfile) / sizeof(unsigned char);
-+int write_mp3(long bytes, void *buffer, void *config) {
-+ return fwrite(buffer, sizeof(unsigned char), bytes, outfile) /
-+ sizeof(unsigned char);
- }
-
- /* Output error message and exit */
--void error(char *s)
--{
-+void error(char *s) {
- fprintf(stderr, "Error: %s\n", s);
- exit(1);
- }
-
--static void print_name()
--{
-- printf("shineenc (Liquidsoap version)\n");
--}
-+static void print_name() { printf("shineenc (Liquidsoap version)\n"); }
-
--static void print_usage()
--{
-+static void print_usage() {
- printf("Usage: shineenc [options] <infile> <outfile>\n\n");
-+ printf("Use \"-\" for standard input or output.\n\n");
- printf("Options:\n");
- printf(" -h this help message\n");
- printf(" -b <bitrate> set the bitrate [8-320], default 128kbit\n");
-@@ -73,88 +66,88 @@ static void print_usage()
- }
-
- /* Use these default settings, can be overridden */
--static void set_defaults(shine_config_t *config)
--{
-+static void set_defaults(shine_config_t *config) {
- shine_set_config_mpeg_defaults(&config->mpeg);
- }
-
- /* Parse command line arguments */
--static int parse_command(int argc, char** argv, shine_config_t *config)
--{
-+static int parse_command(int argc, char **argv, shine_config_t *config) {
- int i = 0;
-
-- if(argc < 3) return 0;
-+ if (argc < 3)
-+ return 0;
-
- while (argv[++i][0] == '-' && argv[i][1] != '\000' && argv[i][1] != ' ')
- switch (argv[i][1]) {
-- case 'b':
-- config->mpeg.bitr = atoi(argv[++i]);
-- break;
--
-- case 'm':
-- force_mono = 1;
-- break;
--
-- case 'j':
-- stereo = JOINT_STEREO;
-- break;
--
-- case 'd':
-- stereo = DUAL_CHANNEL;
-- break;
--
-- case 'c':
-- config->mpeg.copyright = 1;
-- break;
--
-- case 'q':
-- quiet = 1;
-- _verbose = 0;
-- break;
--
-- case 'v':
-- _verbose = 1;
-- quiet = 0;
-- break;
--
-- case 'h':
-- default :
-- return 0;
-+ case 'b':
-+ config->mpeg.bitr = atoi(argv[++i]);
-+ break;
-+
-+ case 'm':
-+ force_mono = 1;
-+ break;
-+
-+ case 'j':
-+ stereo = JOINT_STEREO;
-+ break;
-+
-+ case 'd':
-+ stereo = DUAL_CHANNEL;
-+ break;
-+
-+ case 'c':
-+ config->mpeg.copyright = 1;
-+ break;
-+
-+ case 'q':
-+ quiet = 1;
-+ _verbose = 0;
-+ break;
-+
-+ case 'v':
-+ _verbose = 1;
-+ quiet = 0;
-+ break;
-+
-+ case 'h':
-+ default:
-+ return 0;
- }
-
-- if (argc - i != 2) return 0;
-+ if (argc - i != 2)
-+ return 0;
- infname = argv[i++];
- outfname = argv[i];
- return 1;
- }
-
- /* Print some info about what we're going to encode */
--static void check_config(shine_config_t *config)
--{
-- static char *version_names[4] = { "2.5", "reserved", "II", "I" };
-- static char *mode_names[4] = { "stereo", "joint-stereo", "dual-channel", "mono" };
-- static char *demp_names[4] = { "none", "50/15us", "", "CITT" };
-+static void check_config(shine_config_t *config) {
-+ static char *version_names[4] = {"2.5", "reserved", "II", "I"};
-+ static char *mode_names[4] = {"stereo", "joint-stereo", "dual-channel",
-+ "mono"};
-+ static char *demp_names[4] = {"none", "50/15us", "", "CITT"};
-
- printf("MPEG-%s layer III, %s Psychoacoustic Model: Shine\n",
-- version_names[shine_check_config(config->wave.samplerate, config->mpeg.bitr)],
-- mode_names[config->mpeg.mode]);
-+ version_names[shine_check_config(config->wave.samplerate,
-+ config->mpeg.bitr)],
-+ mode_names[config->mpeg.mode]);
- printf("Bitrate: %d kbps ", config->mpeg.bitr);
-- printf("De-emphasis: %s %s %s\n",
-- demp_names[config->mpeg.emph],
-- ((config->mpeg.original) ? "Original" : ""),
-- ((config->mpeg.copyright) ? "(C)" : ""));
-+ printf("De-emphasis: %s %s %s\n", demp_names[config->mpeg.emph],
-+ ((config->mpeg.original) ? "Original" : ""),
-+ ((config->mpeg.copyright) ? "(C)" : ""));
- printf("Encoding \"%s\" to \"%s\"\n", infname, outfname);
- }
-
--int main(int argc, char **argv)
--{
-- wave_t wave;
-- time_t start_time, end_time;
-- int16_t buffer[2*SHINE_MAX_SAMPLES];
-+int main(int argc, char **argv) {
-+ wave_t wave;
-+ time_t start_time, end_time;
-+ int16_t buffer[2 * SHINE_MAX_SAMPLES];
- shine_config_t config;
-- shine_t s;
-- int written;
-- unsigned char *data;
-+ shine_t s;
-+ int written;
-+ unsigned char *data;
-+ int samples_per_pass;
-
- time(&start_time);
-
-@@ -168,7 +161,8 @@ int main(int argc, char **argv)
-
- quiet = quiet || !strcmp(outfname, "-");
-
-- if (!quiet) print_name();
-+ if (!quiet)
-+ print_name();
-
- /* Open the input file and fill the config shine_wave_t header */
- if (!wave_open(infname, &wave, &config, quiet))
-@@ -205,17 +199,17 @@ int main(int argc, char **argv)
- // assert(s != NULL);
-
- /* Print some info about the file about to be created (optional) */
-- if (!quiet) check_config(&config);
-+ if (!quiet)
-+ check_config(&config);
-
-- int samples_per_pass = shine_samples_per_pass(s);
-+ samples_per_pass = shine_samples_per_pass(s);
-
- /* All the magic happens here */
- while (wave_get(buffer, &wave, samples_per_pass)) {
- data = shine_encode_buffer_interleaved(s, buffer, &written);
-- if ( write_mp3(written, data, &config) != written )
-- {
-- fprintf(stderr, "shineenc: write error\n");
-- return 1;
-+ if (write_mp3(written, data, &config) != written) {
-+ fprintf(stderr, "shineenc: write error\n");
-+ return 1;
- }
- }
-
-@@ -235,7 +229,9 @@ int main(int argc, char **argv)
- time(&end_time);
- end_time -= start_time;
- if (!quiet)
-- printf("Finished in %02ld:%02ld:%02ld (%01.1fx realtime)\n", end_time / 3600, (end_time / 60) % 60, end_time % 60, (float)wave.duration / (float)end_time);
-+ printf("Finished in %02ld:%02ld:%02ld (%01.1fx realtime)\n",
-+ end_time / 3600, (end_time / 60) % 60, end_time % 60,
-+ (float)wave.duration / (float)end_time);
-
- return 0;
- }
-diff --git a/src/bin/main.h b/src/bin/main.h
-index 52fbbb2..7ab9691 100644
---- a/src/bin/main.h
-+++ b/src/bin/main.h
-@@ -2,6 +2,6 @@
- #define MAIN_H
-
- void error(char *s);
--int verbose();
-+int verbose();
-
- #endif
-diff --git a/src/bin/wave.c b/src/bin/wave.c
-index 5d19004..3c7ab81 100644
---- a/src/bin/wave.c
-+++ b/src/bin/wave.c
-@@ -9,17 +9,32 @@
- #include "layer3.h"
-
- /* Local header */
--#include <stdint.h>
--#include <string.h>
- #include "main.h"
- #include "wave.h"
-+#include <stdint.h>
-+#include <string.h>
-
- /* RISC OS specifics */
--#define WAVE 0xfb1 /* Wave filetype */
--#define DATA 0xffd /* Data filetype */
-+#define WAVE 0xfb1 /* Wave filetype */
-+#define DATA 0xffd /* Data filetype */
-
- #define MODE_MONO 3
-
-+#ifdef SHINE_BIG_ENDIAN
-+#if defined(SHINE_HAVE_BSWAP_H)
-+#include <byteswap.h>
-+#elif defined(__GNUC__) && \
-+ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
-+#define bswap_16(x) __builtin_bswap16(x)
-+#define bswap_32(x) __builtin_bswap32(x)
-+#else
-+#define bswap_16(x) ((((x) >> 8) & 0xff) | (((x)&0xff) << 8))
-+#define bswap_32(x) \
-+ ((((x)&0xFF) << 24) | (((x) >> 24) & 0xFF) | (((x)&0x0000FF00) << 8) | \
-+ (((x)&0x00FF0000) >> 8))
-+#endif
-+#endif
-+
- typedef struct {
- char id[4];
- uint32_t length;
-@@ -32,14 +47,28 @@ typedef struct {
-
- typedef struct {
- riff_chunk_header_t header;
-- uint16_t format; /* MS PCM = 1 */
-- uint16_t channels; /* channels, mono = 1, stereo = 2 */
-- uint32_t sample_rate; /* samples per second = 44100 */
-- uint32_t byte_rate; /* bytes per second = samp_rate * byte_samp = 176400 */
-- uint16_t frame_size; /* block align (bytes per sample) = channels * bits_per_sample / 8 = 4 */
-- uint16_t depth; /* bits per sample = 16 for MS PCM (format specific) */
-+ uint16_t format; /* MS PCM = 1 */
-+ uint16_t channels; /* channels, mono = 1, stereo = 2 */
-+ uint32_t sample_rate; /* samples per second = 44100 */
-+ uint32_t byte_rate; /* bytes per second = samp_rate * byte_samp = 176400 */
-+ uint16_t frame_size; /* block align (bytes per sample) = channels *
-+ bits_per_sample / 8 = 4 */
-+ uint16_t depth; /* bits per sample = 16 for MS PCM (format specific) */
- } fmt_chunk_t;
-
-+#ifdef SHINE_BIG_ENDIAN
-+#define native_fmt_chunk(fmt) \
-+ { \
-+ fmt.header.length = bswap_32(fmt.header.length); \
-+ fmt.format = bswap_16(fmt.format); \
-+ fmt.channels = bswap_16(fmt.channels); \
-+ fmt.sample_rate = bswap_32(fmt.sample_rate); \
-+ fmt.byte_rate = bswap_32(fmt.byte_rate); \
-+ fmt.frame_size = bswap_16(fmt.frame_size); \
-+ fmt.depth = bswap_16(fmt.depth); \
-+ }
-+#endif
-+
- void wave_seek(FILE *file, int has_seek, uint32_t bytes) {
- uint32_t i;
- if (has_seek == 1)
-@@ -50,15 +79,15 @@ void wave_seek(FILE *file, int has_seek, uint32_t bytes) {
- }
- }
-
--unsigned char wave_get_chunk_header(FILE *file, int has_seek, const char id[4], riff_chunk_header_t *header)
--{
-+unsigned char wave_get_chunk_header(FILE *file, int has_seek, const char id[4],
-+ riff_chunk_header_t *header) {
- unsigned char found = 0;
- uint32_t chunk_length;
-
- if (verbose())
- fprintf(stderr, "Looking for chunk '%s'\n", id);
-
-- while(!found) {
-+ while (!found) {
- if (fread(header, sizeof(riff_chunk_header_t), 1, file) != 1) {
- if (feof(file))
- return 0;
-@@ -69,24 +98,20 @@ unsigned char wave_get_chunk_header(FILE *file, int has_seek, const char id[4],
- /* chunks must be word-aligned, chunk data doesn't need to */
- chunk_length = header->length + header->length % 2;
- if (verbose()) {
-- fprintf(stderr, "Found chunk '%.4s', length: %u\n", header->id, header->length);
-+ fprintf(stderr, "Found chunk '%.4s', length: %u\n", header->id,
-+ header->length);
- }
-
- if (strncmp(header->id, id, 4) == 0)
- return 1;
--
-+
- wave_seek(file, has_seek, chunk_length);
- }
-
- return 1;
- }
-
--
--void wave_close(wave_t *wave)
--{
-- fclose(wave->file);
--}
--
-+void wave_close(wave_t *wave) { fclose(wave->file); }
-
- /*
- * wave_open:
-@@ -94,16 +119,17 @@ void wave_close(wave_t *wave)
- * Opens and verifies the header of the Input Wave file. The file pointer is
- * left pointing to the start of the samples.
- */
--unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config, int quiet)
--{
-- static char *channel_mappings[] = { NULL, "mono", "stereo" };
-+unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config,
-+ int quiet) {
-+ static char *channel_mappings[] = {NULL, "mono", "stereo"};
- wave_chunk_t wave_chunk;
- fmt_chunk_t fmt_chunk;
- riff_chunk_header_t data_chunk;
- uint32_t fmt_data, fmt_length;
-
- if (!strcmp(fname, "-")) {
-- /* TODO: support raw PCM stream with commandline parameters specifying format */
-+ /* TODO: support raw PCM stream with commandline parameters specifying
-+ * format */
- wave->file = stdin;
- wave->has_seek = 0;
- } else {
-@@ -124,14 +150,19 @@ unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config,
- error("Not a WAVE audio file");
-
- /* Check the fmt chunk */
-- if (!wave_get_chunk_header(wave->file, wave->has_seek, "fmt ", (riff_chunk_header_t *)&fmt_chunk))
-+ if (!wave_get_chunk_header(wave->file, wave->has_seek, "fmt ",
-+ (riff_chunk_header_t *)&fmt_chunk))
- error("WAVE fmt chunk not found");
-
- fmt_data = sizeof(fmt_chunk_t) - sizeof(riff_chunk_header_t);
-
-- if(fread(&fmt_chunk.format, fmt_data, 1, wave->file) != 1)
-+ if (fread(&fmt_chunk.format, fmt_data, 1, wave->file) != 1)
- error("Read error");
-
-+#ifdef SHINE_BIG_ENDIAN
-+ native_fmt_chunk(fmt_chunk);
-+#endif
-+
- if (verbose())
- fprintf(stderr, "WAVE format: %u\n", fmt_chunk.format);
-
-@@ -153,34 +184,31 @@ unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config,
- if (!wave_get_chunk_header(wave->file, wave->has_seek, "data", &data_chunk))
- error("WAVE data chunk not found");
-
-- config->wave.channels = fmt_chunk.channels;
-+ config->wave.channels = fmt_chunk.channels;
- config->wave.samplerate = fmt_chunk.sample_rate;
-
- wave->channels = fmt_chunk.channels;
-- wave->length = data_chunk.length;
-+ wave->length = data_chunk.length;
- wave->duration = data_chunk.length / fmt_chunk.byte_rate;
-
- if (!quiet)
- printf("%s, %s %ldHz %ldbit, duration: %02ld:%02ld:%02ld\n",
-- "WAVE PCM Data", channel_mappings[fmt_chunk.channels], (long)fmt_chunk.sample_rate, (long)fmt_chunk.depth,
-- (long)wave->duration / 3600, (long)(wave->duration / 60) % 60, (long)wave->duration % 60);
-+ "WAVE PCM Data", channel_mappings[fmt_chunk.channels],
-+ (long)fmt_chunk.sample_rate, (long)fmt_chunk.depth,
-+ (long)wave->duration / 3600, (long)(wave->duration / 60) % 60,
-+ (long)wave->duration % 60);
- return 1;
- }
-
- #ifdef SHINE_BIG_ENDIAN
--#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
--#define bswap_16(x) __builtin_bswap16(x)
--#else
--#define bswap_16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
--#endif
--
--void swap_buffer(int16_t *sample_buffer, int length)
--{
-+void swap_buffer(int16_t *sample_buffer, int length) {
- int16_t *end = sample_buffer + length;
-
- if (length >= 2 * sizeof(long) / sizeof(int16_t)) {
-- const unsigned long mask = (~0UL / 0xffff) * 0xff; /* 0x00ff00ff or 0x00ff00ff00ff00ff */
-- unsigned long *long_ptr = (unsigned long *)((unsigned long)sample_buffer & -sizeof(long));
-+ const unsigned long mask =
-+ (~0UL / 0xffff) * 0xff; /* 0x00ff00ff or 0x00ff00ff00ff00ff */
-+ unsigned long *long_ptr =
-+ (unsigned long *)((unsigned long)sample_buffer & -sizeof(long));
-
- /* make sample_buffer aligned on word boundary */
- if ((int16_t *)long_ptr != sample_buffer) {
-@@ -212,18 +240,19 @@ void swap_buffer(int16_t *sample_buffer, int length)
- */
-
- /* TODO: respect data chunk length */
--int read_samples(int16_t *sample_buffer, int frame_size, FILE *file)
--{
-- int samples_read=0;
-+int read_samples(int16_t *sample_buffer, int frame_size, FILE *file) {
-+ int samples_read = 0;
-
-- samples_read = fread(sample_buffer,sizeof(int16_t),frame_size, file);
-+ samples_read = fread(sample_buffer, sizeof(int16_t), frame_size, file);
-
- #ifdef SHINE_BIG_ENDIAN
- swap_buffer(sample_buffer, samples_read);
- #endif
-
-- if(samples_read<frame_size && samples_read>0) { /* Pad sample with zero's */
-- memset(sample_buffer + samples_read, 0, (frame_size - samples_read) * sizeof(int16_t));
-+ if (samples_read < frame_size &&
-+ samples_read > 0) { /* Pad sample with zero's */
-+ memset(sample_buffer + samples_read, 0,
-+ (frame_size - samples_read) * sizeof(int16_t));
- samples_read = frame_size;
- }
-
-@@ -236,8 +265,6 @@ int read_samples(int16_t *sample_buffer, int frame_size, FILE *file)
- * Expects an interleaved 16bit pcm stream from read_samples, which it
- * reads into the given buffer.
- */
--int wave_get(int16_t *buffer, wave_t *wave, int samp_per_pass)
--{
-- return read_samples(buffer,samp_per_pass*wave->channels, wave->file);
-+int wave_get(int16_t *buffer, wave_t *wave, int samp_per_pass) {
-+ return read_samples(buffer, samp_per_pass * wave->channels, wave->file);
- }
--
-diff --git a/src/bin/wave.h b/src/bin/wave.h
-index 5a290a0..b77f0b5 100644
---- a/src/bin/wave.h
-+++ b/src/bin/wave.h
-@@ -4,15 +4,16 @@
- #include <stdio.h>
-
- typedef struct {
-- FILE *file;
-- int has_seek;
-- int channels;
-- long length;
-- long duration;
-+ FILE *file;
-+ int has_seek;
-+ int channels;
-+ long length;
-+ long duration;
- } wave_t;
-
--unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config, int quiet);
--int wave_get(int16_t *buffer, wave_t *wave, int samp_per_frame);
-+unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config,
-+ int quiet);
-+int wave_get(int16_t *buffer, wave_t *wave, int samp_per_frame);
- void wave_close(wave_t *wave);
-
- #endif
-diff --git a/src/lib/bitstream.c b/src/lib/bitstream.c
-index 29afcb1..9408f2c 100644
---- a/src/lib/bitstream.c
-+++ b/src/lib/bitstream.c
-@@ -7,17 +7,16 @@
- * Removed unused functions. Feb 2001 P.Everett
- */
-
--#include "types.h"
- #include "bitstream.h"
-+#include "types.h"
-
--#if !defined(__APPLE__)
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- #include <malloc.h>
- #endif
-
- /* open the device to write the bit stream into it */
--void shine_open_bit_stream(bitstream_t *bs, int size)
--{
-- bs->data = (unsigned char *)malloc(size*sizeof(unsigned char));
-+void shine_open_bit_stream(bitstream_t *bs, int size) {
-+ bs->data = (unsigned char *)malloc(size * sizeof(unsigned char));
- bs->data_size = size;
- bs->data_position = 0;
- bs->cache = 0;
-@@ -25,8 +24,7 @@ void shine_open_bit_stream(bitstream_t *bs, int size)
- }
-
- /*close the device containing the bit stream */
--void shine_close_bit_stream(bitstream_t *bs)
--{
-+void shine_close_bit_stream(bitstream_t *bs) {
- if (bs->data)
- free(bs->data);
- }
-@@ -39,42 +37,40 @@ void shine_close_bit_stream(bitstream_t *bs)
- * val = value to write into the buffer
- * N = number of bits of val
- */
--void shine_putbits(bitstream_t *bs, unsigned int val, unsigned int N)
--{
-+void shine_putbits(bitstream_t *bs, unsigned int val, unsigned int N) {
- #ifdef DEBUG
-- if (N > 32)
-- printf("Cannot write more than 32 bits at a time.\n");
-- if (N < 32 && (val >> N) != 0)
-- printf("Upper bits (higher than %d) are not all zeros.\n", N);
-+ if (N > 32)
-+ printf("Cannot write more than 32 bits at a time.\n");
-+ if (N < 32 && (val >> N) != 0)
-+ printf("Upper bits (higher than %d) are not all zeros.\n", N);
- #endif
-
-- if (bs->cache_bits > N) {
-- bs->cache_bits -= N;
-- bs->cache |= val << bs->cache_bits;
-- } else {
-- if (bs->data_position + sizeof(unsigned int) >= bs->data_size) {
-- bs->data = (unsigned char *)realloc(bs->data, bs->data_size + (bs->data_size / 2));
-- bs->data_size += (bs->data_size / 2);
-- }
-+ if (bs->cache_bits > N) {
-+ bs->cache_bits -= N;
-+ bs->cache |= val << bs->cache_bits;
-+ } else {
-+ if (bs->data_position + sizeof(unsigned int) >= bs->data_size) {
-+ bs->data = (unsigned char *)realloc(bs->data,
-+ bs->data_size + (bs->data_size / 2));
-+ bs->data_size += (bs->data_size / 2);
-+ }
-
-- N -= bs->cache_bits;
-- bs->cache |= val >> N;
-+ N -= bs->cache_bits;
-+ bs->cache |= val >> N;
- #ifdef SHINE_BIG_ENDIAN
-- *(unsigned int*)(bs->data + bs->data_position) = bs->cache;
-+ *(unsigned int *)(bs->data + bs->data_position) = bs->cache;
- #else
-- *(unsigned int*)(bs->data + bs->data_position) = SWAB32(bs->cache);
-+ *(unsigned int *)(bs->data + bs->data_position) = SWAB32(bs->cache);
- #endif
-- bs->data_position += sizeof(unsigned int);
-- bs->cache_bits = 32 - N;
-- if (N != 0)
-- bs->cache = val << bs->cache_bits;
-- else
-- bs->cache = 0;
-- }
-+ bs->data_position += sizeof(unsigned int);
-+ bs->cache_bits = 32 - N;
-+ if (N != 0)
-+ bs->cache = val << bs->cache_bits;
-+ else
-+ bs->cache = 0;
-+ }
- }
-
--int shine_get_bits_count(bitstream_t *bs)
--{
-- return bs->data_position * 8 + 32 - bs->cache_bits;
-+int shine_get_bits_count(bitstream_t *bs) {
-+ return bs->data_position * 8 + 32 - bs->cache_bits;
- }
--
-diff --git a/src/lib/bitstream.h b/src/lib/bitstream.h
-index d910ef9..4f7efb6 100644
---- a/src/lib/bitstream.h
-+++ b/src/lib/bitstream.h
-@@ -1,28 +1,29 @@
- #ifndef BITSTREAM_H
- #define BITSTREAM_H
-
--typedef struct bit_stream_struc {
-- unsigned char *data; /* Processed data */
-- int data_size; /* Total data size */
-- int data_position; /* Data position */
-- unsigned int cache; /* bit stream cache */
-- int cache_bits; /* free bits in cache */
-+typedef struct bit_stream_struc {
-+ unsigned char *data; /* Processed data */
-+ int data_size; /* Total data size */
-+ int data_position; /* Data position */
-+ unsigned int cache; /* bit stream cache */
-+ int cache_bits; /* free bits in cache */
- } bitstream_t;
-
- /* "bit_stream.h" Definitions */
-
--#define MINIMUM 4 /* Minimum size of the buffer in bytes */
--#define MAX_LENGTH 32 /* Maximum length of word written or
-- read from bit stream */
-+#define MINIMUM 4 /* Minimum size of the buffer in bytes */
-+#define MAX_LENGTH \
-+ 32 /* Maximum length of word written or \
-+ read from bit stream */
-
--#define BUFFER_SIZE 4096
-+#define BUFFER_SIZE 4096
-
--#define MIN(A, B) ((A) < (B) ? (A) : (B))
--#define MAX(A, B) ((A) > (B) ? (A) : (B))
-+#define MIN(A, B) ((A) < (B) ? (A) : (B))
-+#define MAX(A, B) ((A) > (B) ? (A) : (B))
-
--void shine_open_bit_stream(bitstream_t *bs,const int size);
-+void shine_open_bit_stream(bitstream_t *bs, const int size);
- void shine_close_bit_stream(bitstream_t *bs);
--void shine_putbits(bitstream_t *bs,unsigned int val, unsigned int N);
--int shine_get_bits_count(bitstream_t *bs);
-+void shine_putbits(bitstream_t *bs, unsigned int val, unsigned int N);
-+int shine_get_bits_count(bitstream_t *bs);
-
- #endif
-diff --git a/src/lib/huffman.c b/src/lib/huffman.c
-index d4bd6aa..854ae41 100644
---- a/src/lib/huffman.c
-+++ b/src/lib/huffman.c
-@@ -1,120 +1,248 @@
- /* huffman.c */
-
--#include "types.h"
- #include "huffman.h"
- #include "bitstream.h"
- #include "l3bitstream.h"
-+#include "types.h"
-
--const HUFFBITS dmask = 1 << (((sizeof(HUFFBITS))<<3)-1);
--const unsigned int hs = sizeof(HUFFBITS)<<3;
-+const HUFFBITS dmask = 1 << (((sizeof(HUFFBITS)) << 3) - 1);
-+const unsigned int hs = sizeof(HUFFBITS) << 3;
-
--static const HUFFBITS t1HB[] = {1, 1, 1, 0};
--static const HUFFBITS t2HB[] = {1, 2, 1, 3, 1, 1, 3, 2, 0};
--static const HUFFBITS t3HB[] = {3, 2, 1, 1, 1, 1, 3, 2, 0};
--static const HUFFBITS t5HB[] = {1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0};
--static const HUFFBITS t6HB[] = {7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0};
--static const HUFFBITS t7HB[] = {1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3, 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2, 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0};
--static const HUFFBITS t8HB[] = {3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3, 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4, 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0};
--static const HUFFBITS t9HB[] = {7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7, 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1, 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0};
--static const HUFFBITS t10HB[] = {1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7, 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7, 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3, 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4 , 4, 2, 0};
--static const HUFFBITS t11HB[] = {3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10, 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5, 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14, 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0};
--static const HUFFBITS t12HB[] = {9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11, 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5, 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2, 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12 , 6, 3, 1, 0};
--static const HUFFBITS t13HB[] = {1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22,
-- 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 47,
-- 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 53,
-- 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32,
-- 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25,
-- 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1};
--static const HUFFBITS t15HB[] = {7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63, 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56,
-- 33, 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
-- 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25, 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
-- 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15, 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
-- 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 71,
-- 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0};
--static const HUFFBITS t16HB[] = {1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117,
-- 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56, 102,
-- 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10, 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372,
-- 380, 889, 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11, 139, 129, 67, 125,
-- 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218, 216, 389, 386, 381, 364, 888,
-- 443, 707, 440, 437, 1728, 4, 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2, 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434,
-- 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3};
--static const HUFFBITS t24HB[] = {15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 47, 22, 41, 74, 68, 128, 120, 221,
-- 207, 194, 182, 340, 315, 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285,
-- 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 435, 115, 111,
-- 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181, 174, 333,
-- 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375,
-- 368, 362, 6, 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033, 280, 278,
-- 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3};
--static const HUFFBITS t32HB[] = {1, 5, 4, 5, 6, 5, 4, 4, 7, 3, 6, 0, 7, 2, 3, 1};
--static const HUFFBITS t33HB[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
-+static const HUFFBITS t1HB[] = {1, 1, 1, 0};
-+static const HUFFBITS t2HB[] = {1, 2, 1, 3, 1, 1, 3, 2, 0};
-+static const HUFFBITS t3HB[] = {3, 2, 1, 1, 1, 1, 3, 2, 0};
-+static const HUFFBITS t5HB[] = {1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0};
-+static const HUFFBITS t6HB[] = {7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0};
-+static const HUFFBITS t7HB[] = {1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3,
-+ 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2,
-+ 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0};
-+static const HUFFBITS t8HB[] = {3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3,
-+ 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4,
-+ 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0};
-+static const HUFFBITS t9HB[] = {7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7,
-+ 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1,
-+ 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0};
-+static const HUFFBITS t10HB[] = {
-+ 1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7,
-+ 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7,
-+ 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3,
-+ 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4, 4, 2, 0};
-+static const HUFFBITS t11HB[] = {
-+ 3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10,
-+ 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5,
-+ 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14,
-+ 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0};
-+static const HUFFBITS t12HB[] = {
-+ 9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11,
-+ 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5,
-+ 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2,
-+ 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12, 6, 3, 1, 0};
-+static const HUFFBITS t13HB[] = {
-+ 1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4,
-+ 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36,
-+ 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22, 20, 37, 61, 56, 79,
-+ 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91,
-+ 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58,
-+ 79, 29, 74, 49, 41, 17, 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50,
-+ 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44,
-+ 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,
-+ 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33,
-+ 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38,
-+ 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32, 28, 39, 49, 75,
-+ 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45,
-+ 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23,
-+ 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8,
-+ 1, 1, 0, 1};
-+static const HUFFBITS t15HB[] = {
-+ 7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,
-+ 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,
-+ 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,
-+ 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,
-+ 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,
-+ 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
-+ 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,
-+ 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,
-+ 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
-+ 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,
-+ 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,
-+ 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
-+ 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,
-+ 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,
-+ 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,
-+ 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0};
-+static const HUFFBITS t16HB[] = {
-+ 1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195,
-+ 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119,
-+ 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72,
-+ 127, 117, 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87,
-+ 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101,
-+ 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56,
-+ 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54,
-+ 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,
-+ 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889,
-+ 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383,
-+ 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394,
-+ 384, 735, 359, 710, 352, 11, 139, 129, 67, 125, 247, 233, 229, 219,
-+ 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223,
-+ 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218,
-+ 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4, 747, 211,
-+ 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,
-+ 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870,
-+ 434, 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7,
-+ 5, 3, 1, 3};
-+static const HUFFBITS t24HB[] = {
-+ 15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032,
-+ 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297,
-+ 279, 42, 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315,
-+ 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325,
-+ 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352,
-+ 323, 306, 285, 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180,
-+ 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185,
-+ 347, 330, 308, 291, 272, 520, 10, 435, 115, 111, 109, 211, 203, 196, 187,
-+ 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186,
-+ 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181,
-+ 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175,
-+ 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168,
-+ 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 648, 322, 316,
-+ 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300,
-+ 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033,
-+ 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,
-+ 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1,
-+ 3};
-+static const HUFFBITS t32HB[] = {1, 5, 4, 5, 6, 5, 4, 4,
-+ 7, 3, 6, 0, 7, 2, 3, 1};
-+static const HUFFBITS t33HB[] = {15, 14, 13, 12, 11, 10, 9, 8,
-+ 7, 6, 5, 4, 3, 2, 1, 0};
-
--static const unsigned char t1l[] = {1, 3, 2, 3};
--static const unsigned char t2l[] = {1, 3, 6, 3, 3, 5, 5, 5, 6};
--static const unsigned char t3l[] = {2, 2, 6, 3, 2, 5, 5, 5, 6};
--static const unsigned char t5l[] = {1, 3, 6, 7, 3, 3, 6, 7, 6, 6, 7, 8, 7, 6, 7, 8};
--static const unsigned char t6l[] = {3, 3, 5, 7, 3, 2, 4, 5, 4, 4, 5, 6, 6, 5, 6, 7};
--static const unsigned char t7l[] = {1, 3, 6, 8, 8, 9, 3, 4, 6, 7, 7, 8, 6, 5, 7, 8, 8, 9, 7, 7, 8, 9, 9, 9, 7, 7, 8, 9, 9, 10, 8, 8, 9, 10, 10, 10};
--static const unsigned char t8l[] = {2, 3, 6, 8, 8, 9, 3, 2, 4, 8, 8, 8, 6, 4, 6, 8, 8, 9, 8, 8, 8, 9, 9, 10, 8, 7, 8, 9, 10, 10, 9, 8, 9, 9, 11, 11};
--static const unsigned char t9l[] = {3, 3, 5, 6, 8, 9, 3, 3, 4, 5, 6, 8, 4, 4, 5, 6, 7, 8, 6, 5, 6, 7, 7, 8, 7, 6, 7, 7, 8, 9, 8, 7, 8, 8, 9, 9};
--static const unsigned char t10l[] = {1, 3, 6, 8, 9, 9, 9, 10, 3, 4, 6, 7, 8, 9, 8, 8, 6, 6, 7, 8, 9, 10, 9, 9, 7, 7, 8, 9, 10, 10, 9, 10, 8, 8, 9, 10, 10, 10, 10, 10, 9, 9, 10, 10, 11, 11, 10, 11, 8, 8, 9, 10, 10, 10, 11, 11, 9, 8, 9, 10, 10, 11, 11, 11};
--static const unsigned char t11l[] = {2, 3, 5, 7, 8, 9, 8, 9, 3, 3, 4, 6, 8, 8, 7, 8, 5, 5, 6, 7, 8, 9, 8, 8, 7, 6, 7, 9, 8, 10, 8, 9, 8, 8, 8, 9, 9, 10, 9, 10, 8, 8, 9, 10, 10, 11, 10, 11, 8, 7, 7, 8, 9, 10, 10, 10, 8, 7, 8, 9, 10, 10, 10, 10};
--static const unsigned char t12l[] = {4, 3, 5, 7, 8, 9, 9, 9, 3, 3, 4, 5, 7, 7, 8, 8, 5, 4, 5, 6, 7, 8, 7, 8, 6, 5, 6, 6, 7, 8, 8, 8, 7, 6, 7, 7, 8, 8, 8, 9, 8, 7, 8, 8, 8, 9, 8, 9, 8, 7, 7, 8, 8, 9, 9, 10, 9, 8, 8, 9, 9, 9, 9, 10};
--static const unsigned char t13l[] = {1, 4, 6, 7, 8, 9, 9, 10, 9, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6, 7, 8, 8, 9, 9, 9, 9, 10, 10, 11, 12, 12, 12, 6, 6, 7, 8, 9, 9, 10, 10, 9, 10, 10, 11, 11, 12, 13, 13, 7, 7, 8, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 13, 13,
--8, 7, 9, 9, 10, 10, 11, 11, 10, 11, 11, 12, 12, 13, 13, 14, 9, 8, 9, 10, 10, 10, 11, 11, 11, 11, 12, 11, 13, 13, 14, 14, 9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 9, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 16, 16, 9, 8, 9, 10,
--10, 11, 11, 12, 12, 12, 12, 13, 13, 14, 15, 15, 10, 9, 10, 10, 11, 11, 11, 13, 12, 13, 13, 14, 14, 14, 16, 15, 10, 10, 10, 11, 11, 12, 12, 13, 12, 13, 14, 13, 14, 15, 16, 17, 11, 10, 10, 11, 12, 12, 12, 12, 13, 13, 13, 14, 15, 15, 15, 16, 11, 11, 11, 12, 12,
--13, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16, 12, 11, 12, 13, 13, 13, 14, 14, 14, 14, 14, 15, 16, 15, 16, 16, 13, 12, 12, 13, 13, 13, 15, 14, 14, 17, 15, 15, 15, 17, 16, 16, 12, 12, 13, 14, 14, 14, 15, 14, 15, 15, 16, 16, 19, 18, 19, 16};
--static const unsigned char t15l[] = {3, 4, 5, 7, 7, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12, 13, 4, 3, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 5, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 7, 6, 7,
-- 7, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 8, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 11, 12, 9, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12, 9, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 12, 9, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11,
-- 12, 12, 12, 9, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 10, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 13, 12, 10, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 11, 10, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13,
--11, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 12, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 12, 13, 12, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13};
--static const unsigned char t16l[] = {1, 4, 6, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 9, 3, 4, 6, 7, 8, 9, 9, 9, 10, 10, 10, 11, 12, 11, 12, 8, 6, 6, 7, 8, 9, 9, 10, 10, 11, 10, 11, 11, 11, 12, 12, 9, 8, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,
-- 10, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9, 9, 8, 9, 9, 10, 11, 11, 12, 11, 12, 12, 13, 13, 13, 14, 10, 10, 9, 9, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 10, 10, 9, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 13, 15, 15, 10, 10, 10,
-- 10, 11, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 10, 11, 10, 10, 11, 11, 12, 12, 13, 13, 13, 13, 14, 13, 14, 13, 11, 11, 11, 10, 11, 12, 12, 12, 12, 13, 14, 14, 14, 15, 15, 14, 10, 12, 11, 11, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 13, 14, 11, 12, 12,
-- 12, 12, 12, 13, 13, 13, 13, 15, 14, 14, 14, 14, 16, 11, 14, 12, 12, 12, 13, 13, 14, 14, 14, 16, 15, 15, 15, 17, 15, 11, 13, 13, 11, 12, 14, 14, 13, 14, 14, 15, 16, 15, 17, 15, 14, 11, 9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 8};
--static const unsigned char t24l[] = {4, 4, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 9, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10, 8, 6, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 7, 7, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 7, 8, 7, 7, 8,
-- 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 7, 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 7, 9, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 7, 10, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 8, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11,
--8, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 8, 11, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 8, 11, 10, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 8, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10,
-- 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 8, 12, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 4};
--static const unsigned char t32l[] = {1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6};
--static const unsigned char t33l[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
-+static const unsigned char t1l[] = {1, 3, 2, 3};
-+static const unsigned char t2l[] = {1, 3, 6, 3, 3, 5, 5, 5, 6};
-+static const unsigned char t3l[] = {2, 2, 6, 3, 2, 5, 5, 5, 6};
-+static const unsigned char t5l[] = {1, 3, 6, 7, 3, 3, 6, 7,
-+ 6, 6, 7, 8, 7, 6, 7, 8};
-+static const unsigned char t6l[] = {3, 3, 5, 7, 3, 2, 4, 5,
-+ 4, 4, 5, 6, 6, 5, 6, 7};
-+static const unsigned char t7l[] = {1, 3, 6, 8, 8, 9, 3, 4, 6, 7, 7, 8,
-+ 6, 5, 7, 8, 8, 9, 7, 7, 8, 9, 9, 9,
-+ 7, 7, 8, 9, 9, 10, 8, 8, 9, 10, 10, 10};
-+static const unsigned char t8l[] = {2, 3, 6, 8, 8, 9, 3, 2, 4, 8, 8, 8,
-+ 6, 4, 6, 8, 8, 9, 8, 8, 8, 9, 9, 10,
-+ 8, 7, 8, 9, 10, 10, 9, 8, 9, 9, 11, 11};
-+static const unsigned char t9l[] = {3, 3, 5, 6, 8, 9, 3, 3, 4, 5, 6, 8,
-+ 4, 4, 5, 6, 7, 8, 6, 5, 6, 7, 7, 8,
-+ 7, 6, 7, 7, 8, 9, 8, 7, 8, 8, 9, 9};
-+static const unsigned char t10l[] = {
-+ 1, 3, 6, 8, 9, 9, 9, 10, 3, 4, 6, 7, 8, 9, 8, 8,
-+ 6, 6, 7, 8, 9, 10, 9, 9, 7, 7, 8, 9, 10, 10, 9, 10,
-+ 8, 8, 9, 10, 10, 10, 10, 10, 9, 9, 10, 10, 11, 11, 10, 11,
-+ 8, 8, 9, 10, 10, 10, 11, 11, 9, 8, 9, 10, 10, 11, 11, 11};
-+static const unsigned char t11l[] = {
-+ 2, 3, 5, 7, 8, 9, 8, 9, 3, 3, 4, 6, 8, 8, 7, 8,
-+ 5, 5, 6, 7, 8, 9, 8, 8, 7, 6, 7, 9, 8, 10, 8, 9,
-+ 8, 8, 8, 9, 9, 10, 9, 10, 8, 8, 9, 10, 10, 11, 10, 11,
-+ 8, 7, 7, 8, 9, 10, 10, 10, 8, 7, 8, 9, 10, 10, 10, 10};
-+static const unsigned char t12l[] = {
-+ 4, 3, 5, 7, 8, 9, 9, 9, 3, 3, 4, 5, 7, 7, 8, 8, 5, 4, 5, 6, 7, 8,
-+ 7, 8, 6, 5, 6, 6, 7, 8, 8, 8, 7, 6, 7, 7, 8, 8, 8, 9, 8, 7, 8, 8,
-+ 8, 9, 8, 9, 8, 7, 7, 8, 8, 9, 9, 10, 9, 8, 8, 9, 9, 9, 9, 10};
-+static const unsigned char t13l[] = {
-+ 1, 4, 6, 7, 8, 9, 9, 10, 9, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6,
-+ 7, 8, 8, 9, 9, 9, 9, 10, 10, 11, 12, 12, 12, 6, 6, 7, 8, 9, 9,
-+ 10, 10, 9, 10, 10, 11, 11, 12, 13, 13, 7, 7, 8, 9, 9, 10, 10, 10, 10,
-+ 11, 11, 11, 11, 12, 13, 13, 8, 7, 9, 9, 10, 10, 11, 11, 10, 11, 11, 12,
-+ 12, 13, 13, 14, 9, 8, 9, 10, 10, 10, 11, 11, 11, 11, 12, 11, 13, 13, 14,
-+ 14, 9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 9,
-+ 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 16, 16, 9, 8, 9, 10, 10,
-+ 11, 11, 12, 12, 12, 12, 13, 13, 14, 15, 15, 10, 9, 10, 10, 11, 11, 11, 13,
-+ 12, 13, 13, 14, 14, 14, 16, 15, 10, 10, 10, 11, 11, 12, 12, 13, 12, 13, 14,
-+ 13, 14, 15, 16, 17, 11, 10, 10, 11, 12, 12, 12, 12, 13, 13, 13, 14, 15, 15,
-+ 15, 16, 11, 11, 11, 12, 12, 13, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16, 12,
-+ 11, 12, 13, 13, 13, 14, 14, 14, 14, 14, 15, 16, 15, 16, 16, 13, 12, 12, 13,
-+ 13, 13, 15, 14, 14, 17, 15, 15, 15, 17, 16, 16, 12, 12, 13, 14, 14, 14, 15,
-+ 14, 15, 15, 16, 16, 19, 18, 19, 16};
-+static const unsigned char t15l[] = {
-+ 3, 4, 5, 7, 7, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12, 13, 4, 3, 5,
-+ 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 5, 5, 5, 6, 7, 7,
-+ 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 6, 6, 6, 7, 7, 8, 8, 9, 9,
-+ 9, 10, 10, 10, 11, 11, 11, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10,
-+ 10, 11, 11, 11, 8, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 11,
-+ 12, 9, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12, 9, 8,
-+ 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 12, 9, 8, 8, 9, 9,
-+ 9, 9, 10, 10, 10, 10, 11, 11, 12, 12, 12, 9, 8, 9, 9, 9, 9, 10, 10,
-+ 10, 11, 11, 11, 11, 12, 12, 12, 10, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11,
-+ 11, 11, 12, 13, 12, 10, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12,
-+ 12, 13, 11, 10, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 11,
-+ 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 12, 11, 11, 11,
-+ 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 12, 13, 12, 11, 11, 11, 11, 11, 11,
-+ 12, 12, 12, 12, 12, 13, 13, 13, 13};
-+static const unsigned char t16l[] = {
-+ 1, 4, 6, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 9, 3, 4, 6,
-+ 7, 8, 9, 9, 9, 10, 10, 10, 11, 12, 11, 12, 8, 6, 6, 7, 8, 9, 9,
-+ 10, 10, 11, 10, 11, 11, 11, 12, 12, 9, 8, 7, 8, 9, 9, 10, 10, 10, 11,
-+ 11, 12, 12, 12, 13, 13, 10, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12,
-+ 13, 13, 13, 9, 9, 8, 9, 9, 10, 11, 11, 12, 11, 12, 12, 13, 13, 13, 14,
-+ 10, 10, 9, 9, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 10, 10, 9,
-+ 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 13, 15, 15, 10, 10, 10, 10, 11, 11,
-+ 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 10, 11, 10, 10, 11, 11, 12, 12, 13,
-+ 13, 13, 13, 14, 13, 14, 13, 11, 11, 11, 10, 11, 12, 12, 12, 12, 13, 14, 14,
-+ 14, 15, 15, 14, 10, 12, 11, 11, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 13,
-+ 14, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 15, 14, 14, 14, 14, 16, 11, 14,
-+ 12, 12, 12, 13, 13, 14, 14, 14, 16, 15, 15, 15, 17, 15, 11, 13, 13, 11, 12,
-+ 14, 14, 13, 14, 14, 15, 16, 15, 17, 15, 14, 11, 9, 8, 8, 9, 9, 10, 10,
-+ 10, 11, 11, 11, 11, 11, 11, 11, 8};
-+static const unsigned char t24l[] = {
-+ 4, 4, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 9, 4, 4, 5,
-+ 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10, 8, 6, 5, 6, 7, 7, 8,
-+ 8, 9, 9, 9, 9, 10, 10, 10, 11, 7, 7, 6, 7, 7, 8, 8, 8, 9, 9,
-+ 9, 9, 10, 10, 10, 10, 7, 8, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10,
-+ 10, 10, 11, 7, 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10,
-+ 7, 9, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 7, 10, 8,
-+ 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 8, 10, 9, 9, 9, 9,
-+ 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 8, 10, 9, 9, 9, 9, 9, 9, 10,
-+ 10, 10, 10, 10, 11, 11, 11, 8, 11, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10,
-+ 11, 11, 11, 11, 8, 11, 10, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
-+ 11, 8, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11,
-+ 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 8, 12, 10, 10, 10,
-+ 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 8, 8, 7, 7, 7, 7, 7, 7,
-+ 7, 7, 7, 7, 8, 8, 8, 8, 4};
-+static const unsigned char t32l[] = {1, 4, 4, 5, 4, 6, 5, 6,
-+ 4, 5, 5, 6, 5, 6, 6, 6};
-+static const unsigned char t33l[] = {4, 4, 4, 4, 4, 4, 4, 4,
-+ 4, 4, 4, 4, 4, 4, 4, 4};
-
- #define NOREF -1
--const struct huffcodetab shine_huffman_table[HTN] =
--{
--{ 0, 0, 0, 0,NULL,NULL},
--{ 2, 2, 0, 0,t1HB, t1l},
--{ 3, 3, 0, 0,t2HB, t2l},
--{ 3, 3, 0, 0,t3HB, t3l},
--{ 0, 0, 0, 0,NULL,NULL},/* Apparently not used*/
--{ 4, 4, 0, 0,t5HB, t5l},
--{ 4, 4, 0, 0,t6HB, t6l},
--{ 6, 6, 0, 0,t7HB, t7l},
--{ 6, 6, 0, 0,t8HB, t8l},
--{ 6, 6, 0, 0,t9HB, t9l},
--{ 8, 8, 0, 0,t10HB, t10l},
--{ 8, 8, 0, 0,t11HB, t11l},
--{ 8, 8, 0, 0,t12HB, t12l},
--{16,16, 0, 0,t13HB, t13l},
--{ 0, 0, 0, 0,NULL,NULL},/* Apparently not used*/
--{16,16, 0, 0,t15HB, t15l},
--{16,16, 1, 1,t16HB, t16l},
--{16,16, 2, 3,t16HB, t16l},
--{16,16, 3, 7,t16HB, t16l},
--{16,16, 4, 15,t16HB, t16l},
--{16,16, 6, 63,t16HB, t16l},
--{16,16, 8, 255,t16HB, t16l},
--{16,16,10,1023,t16HB, t16l},
--{16,16,13,8191,t16HB, t16l},
--{16,16, 4, 15,t24HB, t24l},
--{16,16, 5, 31,t24HB, t24l},
--{16,16, 6, 63,t24HB, t24l},
--{16,16, 7, 127,t24HB, t24l},
--{16,16, 8, 255,t24HB, t24l},
--{16,16, 9, 511,t24HB, t24l},
--{16,16,11,2047,t24HB, t24l},
--{16,16,13,8191,t24HB, t24l},
--{ 1,16, 0, 0,t32HB, t32l},
--{ 1,16, 0, 0,t33HB, t33l},
-+const struct huffcodetab shine_huffman_table[HTN] = {
-+ {0, 0, 0, 0, NULL, NULL},
-+ {2, 2, 0, 0, t1HB, t1l},
-+ {3, 3, 0, 0, t2HB, t2l},
-+ {3, 3, 0, 0, t3HB, t3l},
-+ {0, 0, 0, 0, NULL, NULL}, /* Apparently not used*/
-+ {4, 4, 0, 0, t5HB, t5l},
-+ {4, 4, 0, 0, t6HB, t6l},
-+ {6, 6, 0, 0, t7HB, t7l},
-+ {6, 6, 0, 0, t8HB, t8l},
-+ {6, 6, 0, 0, t9HB, t9l},
-+ {8, 8, 0, 0, t10HB, t10l},
-+ {8, 8, 0, 0, t11HB, t11l},
-+ {8, 8, 0, 0, t12HB, t12l},
-+ {16, 16, 0, 0, t13HB, t13l},
-+ {0, 0, 0, 0, NULL, NULL}, /* Apparently not used*/
-+ {16, 16, 0, 0, t15HB, t15l},
-+ {16, 16, 1, 1, t16HB, t16l},
-+ {16, 16, 2, 3, t16HB, t16l},
-+ {16, 16, 3, 7, t16HB, t16l},
-+ {16, 16, 4, 15, t16HB, t16l},
-+ {16, 16, 6, 63, t16HB, t16l},
-+ {16, 16, 8, 255, t16HB, t16l},
-+ {16, 16, 10, 1023, t16HB, t16l},
-+ {16, 16, 13, 8191, t16HB, t16l},
-+ {16, 16, 4, 15, t24HB, t24l},
-+ {16, 16, 5, 31, t24HB, t24l},
-+ {16, 16, 6, 63, t24HB, t24l},
-+ {16, 16, 7, 127, t24HB, t24l},
-+ {16, 16, 8, 255, t24HB, t24l},
-+ {16, 16, 9, 511, t24HB, t24l},
-+ {16, 16, 11, 2047, t24HB, t24l},
-+ {16, 16, 13, 8191, t24HB, t24l},
-+ {1, 16, 0, 0, t32HB, t32l},
-+ {1, 16, 0, 0, t33HB, t33l},
- };
--
--
-diff --git a/src/lib/huffman.h b/src/lib/huffman.h
-index d2d5b51..6a341c7 100644
---- a/src/lib/huffman.h
-+++ b/src/lib/huffman.h
-@@ -1,6 +1,8 @@
-+#include <stdint.h>
-+
- #define HUFFBITS uint16_t
--#define HTN 34
--#define MXOFF 250
-+#define HTN 34
-+#define MXOFF 250
-
- struct huffcodetab {
- unsigned int xlen; /*max. x-index+ */
-@@ -11,9 +13,8 @@ struct huffcodetab {
- const unsigned char *hlen; /*pointer to array[xlen][ylen] */
- };
-
--extern const struct huffcodetab shine_huffman_table[HTN];/* global memory block */
-- /* array of all huffcodtable headers */
-- /* 0..31 Huffman code table 0..31 */
-- /* 32,33 count1-tables */
--
--
-+extern const struct huffcodetab
-+ shine_huffman_table[HTN]; /* global memory block */
-+ /* array of all huffcodtable headers */
-+ /* 0..31 Huffman code table 0..31 */
-+ /* 32,33 count1-tables */
-diff --git a/src/lib/l3bitstream.c b/src/lib/l3bitstream.c
-index ba788e6..1b2849e 100644
---- a/src/lib/l3bitstream.c
-+++ b/src/lib/l3bitstream.c
-@@ -1,20 +1,22 @@
- /* l3bitstrea.c */
-
--#include "types.h"
--#include "l3mdct.h"
-+#include "l3bitstream.h" /* the public interface */
-+#include "bitstream.h"
-+#include "huffman.h"
- #include "l3loop.h"
-+#include "l3mdct.h"
- #include "layer3.h"
--#include "huffman.h"
--#include "bitstream.h"
- #include "tables.h"
--#include "l3bitstream.h" /* the public interface */
-+#include "types.h"
-
- static void shine_HuffmanCode(bitstream_t *bs, int table_select, int x, int y);
--static void shine_huffman_coder_count1(bitstream_t *bs, const struct huffcodetab *h, int v, int w, int x, int y);
-+static void shine_huffman_coder_count1(bitstream_t *bs,
-+ const struct huffcodetab *h, int v,
-+ int w, int x, int y);
-
--static void encodeSideInfo( shine_global_config *config );
--static void encodeMainData( shine_global_config *config );
--static void Huffmancodebits( shine_global_config *config, int *ix, gr_info *gi);
-+static void encodeSideInfo(shine_global_config *config);
-+static void encodeMainData(shine_global_config *config);
-+static void Huffmancodebits(shine_global_config *config, int *ix, gr_info *gi);
-
- /*
- shine_format_bitstream()
-@@ -27,130 +29,121 @@ static void Huffmancodebits( shine_global_config *config, int *ix, gr_info *gi);
- in the IS).
- */
-
--void
--shine_format_bitstream(shine_global_config *config)
--{
-+void shine_format_bitstream(shine_global_config *config) {
- int gr, ch, i;
-
-- for ( ch = 0; ch < config->wave.channels; ch++ )
-- for ( gr = 0; gr < config->mpeg.granules_per_frame; gr++ )
-- {
-- int *pi = &config->l3_enc[ch][gr][0];
-- int32_t *pr = &config->mdct_freq[ch][gr][0];
-- for ( i = 0; i < GRANULE_SIZE; i++ )
-- {
-- if ( (pr[i] < 0) && (pi[i] > 0) )
-- pi[i] *= -1;
-- }
-+ for (ch = 0; ch < config->wave.channels; ch++)
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++) {
-+ int *pi = &config->l3_enc[ch][gr][0];
-+ int32_t *pr = &config->mdct_freq[ch][gr][0];
-+ for (i = 0; i < GRANULE_SIZE; i++) {
-+ if ((pr[i] < 0) && (pi[i] > 0))
-+ pi[i] *= -1;
- }
-+ }
-
-- encodeSideInfo( config );
-- encodeMainData( config );
-+ encodeSideInfo(config);
-+ encodeMainData(config);
- }
-
--static void encodeMainData(shine_global_config *config)
--{
-+static void encodeMainData(shine_global_config *config) {
- int gr, ch, sfb;
-- shine_side_info_t si = config->side_info;
--
-- for ( gr = 0; gr < config->mpeg.granules_per_frame; gr++ )
-- {
-- for ( ch = 0; ch < config->wave.channels; ch++ )
-- {
-- gr_info *gi = &(si.gr[gr].ch[ch].tt);
-- unsigned slen1 = shine_slen1_tab[ gi->scalefac_compress ];
-- unsigned slen2 = shine_slen2_tab[ gi->scalefac_compress ];
-- int *ix = &config->l3_enc[ch][gr][0];
--
-- if ( gr == 0 || si.scfsi[ch][0] == 0 )
-- for ( sfb = 0; sfb < 6; sfb++ )
-- shine_putbits( &config->bs, config->scalefactor.l[gr][ch][sfb], slen1 );
-- if ( gr == 0 || si.scfsi[ch][1] == 0 )
-- for ( sfb = 6; sfb < 11; sfb++ )
-- shine_putbits( &config->bs, config->scalefactor.l[gr][ch][sfb], slen1 );
-- if ( gr == 0 || si.scfsi[ch][2] == 0 )
-- for ( sfb = 11; sfb < 16; sfb++ )
-- shine_putbits( &config->bs, config->scalefactor.l[gr][ch][sfb], slen2 );
-- if ( gr == 0 || si.scfsi[ch][3] == 0 )
-- for ( sfb = 16; sfb < 21; sfb++ )
-- shine_putbits( &config->bs, config->scalefactor.l[gr][ch][sfb], slen2 );
--
-- Huffmancodebits( config, ix, gi );
-- }
-+ shine_side_info_t si = config->side_info;
-+
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++) {
-+ for (ch = 0; ch < config->wave.channels; ch++) {
-+ gr_info *gi = &(si.gr[gr].ch[ch].tt);
-+ unsigned slen1 = shine_slen1_tab[gi->scalefac_compress];
-+ unsigned slen2 = shine_slen2_tab[gi->scalefac_compress];
-+ int *ix = &config->l3_enc[ch][gr][0];
-+
-+ if (gr == 0 || si.scfsi[ch][0] == 0)
-+ for (sfb = 0; sfb < 6; sfb++)
-+ shine_putbits(&config->bs, config->scalefactor.l[gr][ch][sfb], slen1);
-+ if (gr == 0 || si.scfsi[ch][1] == 0)
-+ for (sfb = 6; sfb < 11; sfb++)
-+ shine_putbits(&config->bs, config->scalefactor.l[gr][ch][sfb], slen1);
-+ if (gr == 0 || si.scfsi[ch][2] == 0)
-+ for (sfb = 11; sfb < 16; sfb++)
-+ shine_putbits(&config->bs, config->scalefactor.l[gr][ch][sfb], slen2);
-+ if (gr == 0 || si.scfsi[ch][3] == 0)
-+ for (sfb = 16; sfb < 21; sfb++)
-+ shine_putbits(&config->bs, config->scalefactor.l[gr][ch][sfb], slen2);
-+
-+ Huffmancodebits(config, ix, gi);
- }
-+ }
- }
-
--static void encodeSideInfo( shine_global_config *config )
--{
-+static void encodeSideInfo(shine_global_config *config) {
- int gr, ch, scfsi_band, region;
-- shine_side_info_t si = config->side_info;
--
-- shine_putbits( &config->bs, 0x7ff, 11 );
-- shine_putbits( &config->bs, config->mpeg.version, 2 );
-- shine_putbits( &config->bs, config->mpeg.layer, 2 );
-- shine_putbits( &config->bs, !config->mpeg.crc, 1 );
-- shine_putbits( &config->bs, config->mpeg.bitrate_index, 4 );
-- shine_putbits( &config->bs, config->mpeg.samplerate_index % 3, 2 );
-- shine_putbits( &config->bs, config->mpeg.padding, 1 );
-- shine_putbits( &config->bs, config->mpeg.ext, 1 );
-- shine_putbits( &config->bs, config->mpeg.mode, 2 );
-- shine_putbits( &config->bs, config->mpeg.mode_ext, 2 );
-- shine_putbits( &config->bs, config->mpeg.copyright, 1 );
-- shine_putbits( &config->bs, config->mpeg.original, 1 );
-- shine_putbits( &config->bs, config->mpeg.emph, 2 );
--
-- if ( config->mpeg.version == MPEG_I ) {
-- shine_putbits( &config->bs, 0, 9 );
-- if ( config->wave.channels == 2 )
-- shine_putbits( &config->bs, si.private_bits, 3 );
-+ shine_side_info_t si = config->side_info;
-+
-+ shine_putbits(&config->bs, 0x7ff, 11);
-+ shine_putbits(&config->bs, config->mpeg.version, 2);
-+ shine_putbits(&config->bs, config->mpeg.layer, 2);
-+ shine_putbits(&config->bs, !config->mpeg.crc, 1);
-+ shine_putbits(&config->bs, config->mpeg.bitrate_index, 4);
-+ shine_putbits(&config->bs, config->mpeg.samplerate_index % 3, 2);
-+ shine_putbits(&config->bs, config->mpeg.padding, 1);
-+ shine_putbits(&config->bs, config->mpeg.ext, 1);
-+ shine_putbits(&config->bs, config->mpeg.mode, 2);
-+ shine_putbits(&config->bs, config->mpeg.mode_ext, 2);
-+ shine_putbits(&config->bs, config->mpeg.copyright, 1);
-+ shine_putbits(&config->bs, config->mpeg.original, 1);
-+ shine_putbits(&config->bs, config->mpeg.emph, 2);
-+
-+ if (config->mpeg.version == MPEG_I) {
-+ shine_putbits(&config->bs, 0, 9);
-+ if (config->wave.channels == 2)
-+ shine_putbits(&config->bs, si.private_bits, 3);
- else
-- shine_putbits( &config->bs, si.private_bits, 5 );
-+ shine_putbits(&config->bs, si.private_bits, 5);
- } else {
-- shine_putbits( &config->bs, 0, 8 );
-- if ( config->wave.channels == 2 )
-- shine_putbits( &config->bs, si.private_bits, 2 );
-+ shine_putbits(&config->bs, 0, 8);
-+ if (config->wave.channels == 2)
-+ shine_putbits(&config->bs, si.private_bits, 2);
- else
-- shine_putbits( &config->bs, si.private_bits, 1 );
-+ shine_putbits(&config->bs, si.private_bits, 1);
- }
-
-- if ( config->mpeg.version == MPEG_I )
-- for ( ch = 0; ch < config->wave.channels; ch++ ) {
-- for ( scfsi_band = 0; scfsi_band < 4; scfsi_band++ )
-- shine_putbits( &config->bs, si.scfsi[ch][scfsi_band], 1 );
-+ if (config->mpeg.version == MPEG_I)
-+ for (ch = 0; ch < config->wave.channels; ch++) {
-+ for (scfsi_band = 0; scfsi_band < 4; scfsi_band++)
-+ shine_putbits(&config->bs, si.scfsi[ch][scfsi_band], 1);
- }
-
-- for ( gr = 0; gr < config->mpeg.granules_per_frame; gr++ )
-- for ( ch = 0; ch < config->wave.channels ; ch++ )
-- {
-- gr_info *gi = &(si.gr[gr].ch[ch].tt);
--
-- shine_putbits( &config->bs, gi->part2_3_length, 12 );
-- shine_putbits( &config->bs, gi->big_values, 9 );
-- shine_putbits( &config->bs, gi->global_gain, 8 );
-- if ( config->mpeg.version == MPEG_I )
-- shine_putbits( &config->bs, gi->scalefac_compress, 4 );
-- else
-- shine_putbits( &config->bs, gi->scalefac_compress, 9 );
-- shine_putbits( &config->bs, 0, 1 );
--
-- for ( region = 0; region < 3; region++ )
-- shine_putbits( &config->bs, gi->table_select[region], 5 );
--
-- shine_putbits( &config->bs, gi->region0_count, 4 );
-- shine_putbits( &config->bs, gi->region1_count, 3 );
--
-- if ( config->mpeg.version == MPEG_I )
-- shine_putbits( &config->bs, gi->preflag, 1 );
-- shine_putbits( &config->bs, gi->scalefac_scale, 1 );
-- shine_putbits( &config->bs, gi->count1table_select, 1 );
-- }
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++)
-+ for (ch = 0; ch < config->wave.channels; ch++) {
-+ gr_info *gi = &(si.gr[gr].ch[ch].tt);
-+
-+ shine_putbits(&config->bs, gi->part2_3_length, 12);
-+ shine_putbits(&config->bs, gi->big_values, 9);
-+ shine_putbits(&config->bs, gi->global_gain, 8);
-+ if (config->mpeg.version == MPEG_I)
-+ shine_putbits(&config->bs, gi->scalefac_compress, 4);
-+ else
-+ shine_putbits(&config->bs, gi->scalefac_compress, 9);
-+ shine_putbits(&config->bs, 0, 1);
-+
-+ for (region = 0; region < 3; region++)
-+ shine_putbits(&config->bs, gi->table_select[region], 5);
-+
-+ shine_putbits(&config->bs, gi->region0_count, 4);
-+ shine_putbits(&config->bs, gi->region1_count, 3);
-+
-+ if (config->mpeg.version == MPEG_I)
-+ shine_putbits(&config->bs, gi->preflag, 1);
-+ shine_putbits(&config->bs, gi->scalefac_scale, 1);
-+ shine_putbits(&config->bs, gi->count1table_select, 1);
-+ }
- }
-
- /* Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as
- well as the definitions of the side information on pages 26 and 27. */
--static void Huffmancodebits( shine_global_config *config, int *ix, gr_info *gi )
--{
-- const int *scalefac = &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
-+static void Huffmancodebits(shine_global_config *config, int *ix, gr_info *gi) {
-+ const int *scalefac =
-+ &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
- unsigned scalefac_index;
- int region1Start, region2Start;
- int i, bigvalues, count1End;
-@@ -164,168 +157,153 @@ static void Huffmancodebits( shine_global_config *config, int *ix, gr_info *gi )
- bigvalues = gi->big_values << 1;
-
- scalefac_index = gi->region0_count + 1;
-- region1Start = scalefac[ scalefac_index ];
-+ region1Start = scalefac[scalefac_index];
- scalefac_index += gi->region1_count + 1;
-- region2Start = scalefac[ scalefac_index ];
--
-- for ( i = 0; i < bigvalues; i += 2 )
-- {
-- /* get table pointer */
-- int idx = (i >= region1Start) + (i >= region2Start);
-- unsigned tableindex = gi->table_select[idx];
-- /* get huffman code */
-- if ( tableindex )
-- {
-- x = ix[i];
-- y = ix[i + 1];
-- shine_HuffmanCode( &config->bs, tableindex, x, y );
-- }
-+ region2Start = scalefac[scalefac_index];
-+
-+ for (i = 0; i < bigvalues; i += 2) {
-+ /* get table pointer */
-+ int idx = (i >= region1Start) + (i >= region2Start);
-+ unsigned tableindex = gi->table_select[idx];
-+ /* get huffman code */
-+ if (tableindex) {
-+ x = ix[i];
-+ y = ix[i + 1];
-+ shine_HuffmanCode(&config->bs, tableindex, x, y);
- }
-+ }
-
- /* 2: Write count1 area */
- h = &shine_huffman_table[gi->count1table_select + 32];
-- count1End = bigvalues + (gi->count1 <<2);
-- for ( i = bigvalues; i < count1End; i += 4 )
-- {
-- v = ix[i];
-- w = ix[i+1];
-- x = ix[i+2];
-- y = ix[i+3];
-- shine_huffman_coder_count1( &config->bs, h, v, w, x, y );
-- }
-+ count1End = bigvalues + (gi->count1 << 2);
-+ for (i = bigvalues; i < count1End; i += 4) {
-+ v = ix[i];
-+ w = ix[i + 1];
-+ x = ix[i + 2];
-+ y = ix[i + 3];
-+ shine_huffman_coder_count1(&config->bs, h, v, w, x, y);
-+ }
-
- bits = shine_get_bits_count(&config->bs) - bits;
- bits = gi->part2_3_length - gi->part2_length - bits;
-- if (bits)
-- {
-- int stuffingWords = bits / 32;
-- int remainingBits = bits % 32;
--
-- /* Due to the nature of the Huffman code tables, we will pad with ones */
-- while ( stuffingWords-- )
-- shine_putbits( &config->bs, ~0, 32 );
-- if ( remainingBits )
-- shine_putbits( &config->bs, (1UL << remainingBits) - 1, remainingBits );
-- }
-+ if (bits) {
-+ int stuffingWords = bits / 32;
-+ int remainingBits = bits % 32;
-+
-+ /* Due to the nature of the Huffman code tables, we will pad with ones */
-+ while (stuffingWords--)
-+ shine_putbits(&config->bs, ~0, 32);
-+ if (remainingBits)
-+ shine_putbits(&config->bs, (1UL << remainingBits) - 1, remainingBits);
-+ }
- }
-
--static inline int shine_abs_and_sign( int *x )
--{
-- if ( *x > 0 ) return 0;
-+static inline int shine_abs_and_sign(int *x) {
-+ if (*x > 0)
-+ return 0;
- *x *= -1;
- return 1;
- }
-
--static void shine_huffman_coder_count1( bitstream_t *bs, const struct huffcodetab *h, int v, int w, int x, int y )
--{
-+static void shine_huffman_coder_count1(bitstream_t *bs,
-+ const struct huffcodetab *h, int v,
-+ int w, int x, int y) {
- unsigned int signv, signw, signx, signy;
- unsigned int code = 0;
- int p, cbits = 0;
-
-- signv = shine_abs_and_sign( &v );
-- signw = shine_abs_and_sign( &w );
-- signx = shine_abs_and_sign( &x );
-- signy = shine_abs_and_sign( &y );
-+ signv = shine_abs_and_sign(&v);
-+ signw = shine_abs_and_sign(&w);
-+ signx = shine_abs_and_sign(&x);
-+ signy = shine_abs_and_sign(&y);
-
- p = v + (w << 1) + (x << 2) + (y << 3);
-- shine_putbits( bs, h->table[p], h->hlen[p] );
-+ shine_putbits(bs, h->table[p], h->hlen[p]);
-
-- if ( v ) {
-+ if (v) {
- code = signv;
- cbits = 1;
- }
-- if ( w ) {
-+ if (w) {
- code = (code << 1) | signw;
- cbits++;
- }
-- if ( x ) {
-+ if (x) {
- code = (code << 1) | signx;
- cbits++;
- }
-- if ( y ) {
-+ if (y) {
- code = (code << 1) | signy;
- cbits++;
- }
-- shine_putbits( bs, code, cbits );
-+ shine_putbits(bs, code, cbits);
- }
-
- /* Implements the pseudocode of page 98 of the IS */
--static void shine_HuffmanCode(bitstream_t *bs, int table_select, int x, int y)
--{
-+static void shine_HuffmanCode(bitstream_t *bs, int table_select, int x, int y) {
- int cbits = 0, xbits = 0;
- unsigned int code = 0, ext = 0;
- unsigned signx, signy, ylen, idx;
- const struct huffcodetab *h;
-
-- signx = shine_abs_and_sign( &x );
-- signy = shine_abs_and_sign( &y );
-+ signx = shine_abs_and_sign(&x);
-+ signy = shine_abs_and_sign(&y);
-
- h = &(shine_huffman_table[table_select]);
- ylen = h->ylen;
-
-- if ( table_select > 15 )
-- { /* ESC-table is used */
-- unsigned linbitsx = 0, linbitsy = 0, linbits = h->linbits;
--
-- if ( x > 14 )
-- {
-- linbitsx = x - 15;
-- x = 15;
-- }
-- if ( y > 14 )
-- {
-- linbitsy = y - 15;
-- y = 15;
-- }
--
-- idx = (x * ylen) + y;
-- code = h->table[idx];
-- cbits = h->hlen [idx];
-- if ( x > 14 )
-- {
-- ext |= linbitsx;
-- xbits += linbits;
-- }
-- if ( x != 0 )
-- {
-- ext <<= 1;
-- ext |= signx;
-- xbits += 1;
-- }
-- if ( y > 14 )
-- {
-- ext <<= linbits;
-- ext |= linbitsy;
-- xbits += linbits;
-- }
-- if ( y != 0 )
-- {
-- ext <<= 1;
-- ext |= signy;
-- xbits += 1;
-- }
--
-- shine_putbits( bs, code, cbits);
-- shine_putbits( bs, ext, xbits);
-+ if (table_select > 15) { /* ESC-table is used */
-+ unsigned linbitsx = 0, linbitsy = 0, linbits = h->linbits;
-+
-+ if (x > 14) {
-+ linbitsx = x - 15;
-+ x = 15;
-+ }
-+ if (y > 14) {
-+ linbitsy = y - 15;
-+ y = 15;
-+ }
-+
-+ idx = (x * ylen) + y;
-+ code = h->table[idx];
-+ cbits = h->hlen[idx];
-+ if (x > 14) {
-+ ext |= linbitsx;
-+ xbits += linbits;
- }
-- else
-- { /* No ESC-words */
-- idx = (x * ylen) + y;
-- code = h->table[idx];
-- cbits = h->hlen[idx];
-- if ( x != 0 )
-- {
-- code <<= 1;
-- code |= signx;
-- cbits += 1;
-- }
-- if ( y != 0 )
-- {
-- code <<= 1;
-- code |= signy;
-- cbits += 1;
-- }
--
-- shine_putbits( bs, code, cbits);
-+ if (x != 0) {
-+ ext <<= 1;
-+ ext |= signx;
-+ xbits += 1;
- }
-+ if (y > 14) {
-+ ext <<= linbits;
-+ ext |= linbitsy;
-+ xbits += linbits;
-+ }
-+ if (y != 0) {
-+ ext <<= 1;
-+ ext |= signy;
-+ xbits += 1;
-+ }
-+
-+ shine_putbits(bs, code, cbits);
-+ shine_putbits(bs, ext, xbits);
-+ } else { /* No ESC-words */
-+ idx = (x * ylen) + y;
-+ code = h->table[idx];
-+ cbits = h->hlen[idx];
-+ if (x != 0) {
-+ code <<= 1;
-+ code |= signx;
-+ cbits += 1;
-+ }
-+ if (y != 0) {
-+ code <<= 1;
-+ code |= signy;
-+ cbits += 1;
-+ }
-+
-+ shine_putbits(bs, code, cbits);
-+ }
- }
-diff --git a/src/lib/l3bitstream.h b/src/lib/l3bitstream.h
-index 6e165f5..fa61899 100644
---- a/src/lib/l3bitstream.h
-+++ b/src/lib/l3bitstream.h
-@@ -1,6 +1,8 @@
- #ifndef shine_BITSTREAM_H
- #define shine_BITSTREAM_H
-
-+#include "types.h"
-+
- void shine_format_bitstream(shine_global_config *config);
-
- #endif
-diff --git a/src/lib/l3loop.c b/src/lib/l3loop.c
-index 609c2b2..d3799fb 100644
---- a/src/lib/l3loop.c
-+++ b/src/lib/l3loop.c
-@@ -1,34 +1,40 @@
- /* l3loop.c */
-
--#include "types.h"
--#include "tables.h"
- #include "l3loop.h"
--#include "layer3.h"
--#include "huffman.h"
- #include "bitstream.h"
-+#include "huffman.h"
- #include "l3bitstream.h"
-+#include "layer3.h"
- #include "reservoir.h"
-+#include "tables.h"
-+#include "types.h"
-
--#define e 2.71828182845
--#define CBLIMIT 21
-+#define e 2.71828182845
-+#define CBLIMIT 21
- #define SFB_LMAX 22
- #define en_tot_krit 10
- #define en_dif_krit 100
- #define en_scfsi_band_krit 10
- #define xm_scfsi_band_krit 10
-
--static void calc_scfsi(shine_psy_xmin_t *l3_xmin, int ch, int gr, shine_global_config *config);
-+static void calc_scfsi(shine_psy_xmin_t *l3_xmin, int ch, int gr,
-+ shine_global_config *config);
- static int part2_length(int gr, int ch, shine_global_config *config);
--static int bin_search_StepSize(int desired_rate, int ix[GRANULE_SIZE], gr_info * cod_info, shine_global_config *config);
--static int count_bit(int ix[GRANULE_SIZE], unsigned int start, unsigned int end, unsigned int table );
-+static int bin_search_StepSize(int desired_rate, int ix[GRANULE_SIZE],
-+ gr_info *cod_info, shine_global_config *config);
-+static int count_bit(int ix[GRANULE_SIZE], unsigned int start, unsigned int end,
-+ unsigned int table);
- static int bigv_bitcount(int ix[GRANULE_SIZE], gr_info *gi);
--static int new_choose_table( int ix[GRANULE_SIZE], unsigned int begin, unsigned int end );
--static void bigv_tab_select( int ix[GRANULE_SIZE], gr_info *cod_info );
--static void subdivide(gr_info *cod_info, shine_global_config *config );
--static int count1_bitcount( int ix[ GRANULE_SIZE ], gr_info *cod_info );
--static void calc_runlen( int ix[GRANULE_SIZE], gr_info *cod_info );
--static void calc_xmin(shine_psy_ratio_t *ratio, gr_info *cod_info, shine_psy_xmin_t *l3_xmin, int gr, int ch );
--static int quantize(int ix[GRANULE_SIZE], int stepsize, shine_global_config *config);
-+static int new_choose_table(int ix[GRANULE_SIZE], unsigned int begin,
-+ unsigned int end);
-+static void bigv_tab_select(int ix[GRANULE_SIZE], gr_info *cod_info);
-+static void subdivide(gr_info *cod_info, shine_global_config *config);
-+static int count1_bitcount(int ix[GRANULE_SIZE], gr_info *cod_info);
-+static void calc_runlen(int ix[GRANULE_SIZE], gr_info *cod_info);
-+static void calc_xmin(shine_psy_ratio_t *ratio, gr_info *cod_info,
-+ shine_psy_xmin_t *l3_xmin, int gr, int ch);
-+static int quantize(int ix[GRANULE_SIZE], int stepsize,
-+ shine_global_config *config);
-
- /*
- * shine_inner_loop:
-@@ -36,25 +42,22 @@ static int quantize(int ix[GRANULE_SIZE], int stepsize, shine_global_config *con
- * The code selects the best quantizerStepSize for a particular set
- * of scalefacs.
- */
--int shine_inner_loop(int ix[GRANULE_SIZE],
-- int max_bits, gr_info *cod_info, int gr, int ch,
-- shine_global_config *config )
--{
-+int shine_inner_loop(int ix[GRANULE_SIZE], int max_bits, gr_info *cod_info,
-+ int gr, int ch, shine_global_config *config) {
- int bits, c1bits, bvbits;
-
-- if(max_bits<0)
-+ if (max_bits < 0)
- cod_info->quantizerStepSize--;
-- do
-- {
-- while(quantize(ix,++cod_info->quantizerStepSize,config) > 8192); /* within table range? */
--
-- calc_runlen(ix,cod_info); /* rzero,count1,big_values*/
-- bits = c1bits = count1_bitcount(ix,cod_info); /* count1_table selection*/
-- subdivide(cod_info, config); /* bigvalues sfb division */
-- bigv_tab_select(ix,cod_info); /* codebook selection*/
-- bits += bvbits = bigv_bitcount( ix, cod_info ); /* bit count */
-- }
-- while(bits>max_bits);
-+ do {
-+ while (quantize(ix, ++cod_info->quantizerStepSize, config) > 8192)
-+ ; /* within table range? */
-+
-+ calc_runlen(ix, cod_info); /* rzero,count1,big_values*/
-+ bits = c1bits = count1_bitcount(ix, cod_info); /* count1_table selection*/
-+ subdivide(cod_info, config); /* bigvalues sfb division */
-+ bigv_tab_select(ix, cod_info); /* codebook selection*/
-+ bits += bvbits = bigv_bitcount(ix, cod_info); /* bit count */
-+ } while (bits > max_bits);
- return bits;
- }
-
-@@ -66,21 +69,22 @@ int shine_inner_loop(int ix[GRANULE_SIZE],
- * global gain. This module calls the inner iteration loop.
- */
-
--int shine_outer_loop( int max_bits,
-- shine_psy_xmin_t *l3_xmin, /* the allowed distortion of the scalefactor */
-- int ix[GRANULE_SIZE], /* vector of quantized values ix(0..575) */
-- int gr, int ch, shine_global_config *config)
--{
-+int shine_outer_loop(
-+ int max_bits,
-+ shine_psy_xmin_t *l3_xmin, /* the allowed distortion of the scalefactor */
-+ int ix[GRANULE_SIZE], /* vector of quantized values ix(0..575) */
-+ int gr, int ch, shine_global_config *config) {
- int bits, huff_bits;
-- shine_side_info_t *side_info = &config->side_info;
-+ shine_side_info_t *side_info = &config->side_info;
- gr_info *cod_info = &side_info->gr[gr].ch[ch].tt;
-
-- cod_info->quantizerStepSize = bin_search_StepSize(max_bits,ix,cod_info, config);
-+ cod_info->quantizerStepSize =
-+ bin_search_StepSize(max_bits, ix, cod_info, config);
-
-- cod_info->part2_length = part2_length(gr,ch,config);
-+ cod_info->part2_length = part2_length(gr, ch, config);
- huff_bits = max_bits - cod_info->part2_length;
-
-- bits = shine_inner_loop(ix, huff_bits, cod_info, gr, ch, config );
-+ bits = shine_inner_loop(ix, huff_bits, cod_info, gr, ch, config);
- cod_info->part2_3_length = cod_info->part2_length + bits;
-
- return cod_info->part2_3_length;
-@@ -90,18 +94,15 @@ int shine_outer_loop( int max_bits,
- * shine_iteration_loop:
- * ------------------
- */
--void shine_iteration_loop(shine_global_config *config)
--{
-+void shine_iteration_loop(shine_global_config *config) {
- shine_psy_xmin_t l3_xmin;
- gr_info *cod_info;
- int max_bits;
- int ch, gr, i;
- int *ix;
-
-- for(ch=config->wave.channels; ch--; )
-- {
-- for(gr=0; gr<config->mpeg.granules_per_frame; gr++)
-- {
-+ for (ch = config->wave.channels; ch--;) {
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++) {
- /* setup pointers */
- ix = config->l3_enc[ch][gr];
- config->l3loop.xr = config->mdct_freq[ch][gr];
-@@ -109,56 +110,58 @@ void shine_iteration_loop(shine_global_config *config)
- /* Precalculate the square, abs, and maximum,
- * for use later on.
- */
-- for (i=GRANULE_SIZE, config->l3loop.xrmax=0; i--;)
-- {
-- config->l3loop.xrsq[i] = mulsr(config->l3loop.xr[i],config->l3loop.xr[i]);
-+ for (i = GRANULE_SIZE, config->l3loop.xrmax = 0; i--;) {
-+ config->l3loop.xrsq[i] =
-+ mulsr(config->l3loop.xr[i], config->l3loop.xr[i]);
- config->l3loop.xrabs[i] = labs(config->l3loop.xr[i]);
-- if(config->l3loop.xrabs[i]>config->l3loop.xrmax)
-- config->l3loop.xrmax=config->l3loop.xrabs[i];
-+ if (config->l3loop.xrabs[i] > config->l3loop.xrmax)
-+ config->l3loop.xrmax = config->l3loop.xrabs[i];
- }
-
-- cod_info = (gr_info *) &(config->side_info.gr[gr].ch[ch]);
-+ cod_info = (gr_info *)&(config->side_info.gr[gr].ch[ch]);
- cod_info->sfb_lmax = SFB_LMAX - 1; /* gr_deco */
-
-- calc_xmin(&config->ratio, cod_info, &l3_xmin, gr, ch );
-+ calc_xmin(&config->ratio, cod_info, &l3_xmin, gr, ch);
-
-- if ( config->mpeg.version == MPEG_I )
-- calc_scfsi(&l3_xmin,ch,gr,config);
-+ if (config->mpeg.version == MPEG_I)
-+ calc_scfsi(&l3_xmin, ch, gr, config);
-
- /* calculation of number of available bit( per granule ) */
-- max_bits = shine_max_reservoir_bits(&config->pe[ch][gr],config);
-+ max_bits = shine_max_reservoir_bits(&config->pe[ch][gr], config);
-
- /* reset of iteration variables */
-- memset(config->scalefactor.l[gr][ch],0,sizeof(config->scalefactor.l[gr][ch]));
-- memset(config->scalefactor.s[gr][ch],0,sizeof(config->scalefactor.s[gr][ch]));
-+ memset(config->scalefactor.l[gr][ch], 0,
-+ sizeof(config->scalefactor.l[gr][ch]));
-+ memset(config->scalefactor.s[gr][ch], 0,
-+ sizeof(config->scalefactor.s[gr][ch]));
-
-- for ( i=4; i--; )
-+ for (i = 4; i--;)
- cod_info->slen[i] = 0;
-
-- cod_info->part2_3_length = 0;
-- cod_info->big_values = 0;
-- cod_info->count1 = 0;
-+ cod_info->part2_3_length = 0;
-+ cod_info->big_values = 0;
-+ cod_info->count1 = 0;
- cod_info->scalefac_compress = 0;
-- cod_info->table_select[0] = 0;
-- cod_info->table_select[1] = 0;
-- cod_info->table_select[2] = 0;
-- cod_info->region0_count = 0;
-- cod_info->region1_count = 0;
-- cod_info->part2_length = 0;
-- cod_info->preflag = 0;
-- cod_info->scalefac_scale = 0;
-- cod_info->count1table_select= 0;
-+ cod_info->table_select[0] = 0;
-+ cod_info->table_select[1] = 0;
-+ cod_info->table_select[2] = 0;
-+ cod_info->region0_count = 0;
-+ cod_info->region1_count = 0;
-+ cod_info->part2_length = 0;
-+ cod_info->preflag = 0;
-+ cod_info->scalefac_scale = 0;
-+ cod_info->count1table_select = 0;
-
- /* all spectral values zero ? */
-- if(config->l3loop.xrmax)
-- cod_info->part2_3_length = shine_outer_loop(max_bits,&l3_xmin,ix,
-- gr,ch,config);
-+ if (config->l3loop.xrmax)
-+ cod_info->part2_3_length =
-+ shine_outer_loop(max_bits, &l3_xmin, ix, gr, ch, config);
-
-- shine_ResvAdjust(cod_info, config );
-- cod_info->global_gain = cod_info->quantizerStepSize+210;
-+ shine_ResvAdjust(cod_info, config);
-+ cod_info->global_gain = cod_info->quantizerStepSize + 210;
-
- } /* for gr */
-- } /* for ch */
-+ } /* for ch */
-
- shine_ResvFrameEnd(config);
- }
-@@ -168,21 +171,20 @@ void shine_iteration_loop(shine_global_config *config)
- * -----------
- * calculation of the scalefactor select information ( scfsi ).
- */
--void calc_scfsi( shine_psy_xmin_t *l3_xmin, int ch, int gr,
-- shine_global_config *config )
--{
-+void calc_scfsi(shine_psy_xmin_t *l3_xmin, int ch, int gr,
-+ shine_global_config *config) {
- shine_side_info_t *l3_side = &config->side_info;
- /* This is the scfsi_band table from 2.4.2.7 of the IS */
-- static const int scfsi_band_long[5] = { 0, 6, 11, 16, 21 };
-+ static const int scfsi_band_long[5] = {0, 6, 11, 16, 21};
-
- int scfsi_band;
-- unsigned scfsi_set;
-
- int sfb, start, end, i;
- int condition = 0;
- int temp;
-
-- const int *scalefac_band_long = &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
-+ const int *scalefac_band_long =
-+ &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
-
- /* note. it goes quite a bit faster if you uncomment the next bit and exit
- early from scfsi, but you then loose the advantage of common scale factors.
-@@ -194,82 +196,75 @@ void calc_scfsi( shine_psy_xmin_t *l3_xmin, int ch, int gr,
- */
-
- config->l3loop.xrmaxl[gr] = config->l3loop.xrmax;
-- scfsi_set = 0;
-
- /* the total energy of the granule */
-- for ( temp = 0, i =GRANULE_SIZE; i--; )
-- temp += config->l3loop.xrsq[i]>>10; /* a bit of scaling to avoid overflow, (not very good) */
-- if ( temp )
-- config->l3loop.en_tot[gr] = log((double)temp * 4.768371584e-7) / LN2; /* 1024 / 0x7fffffff */
-+ for (temp = 0, i = GRANULE_SIZE; i--;)
-+ temp += config->l3loop.xrsq[i] >>
-+ 10; /* a bit of scaling to avoid overflow, (not very good) */
-+ if (temp)
-+ config->l3loop.en_tot[gr] =
-+ log((double)temp * 4.768371584e-7) / LN2; /* 1024 / 0x7fffffff */
- else
- config->l3loop.en_tot[gr] = 0;
-
- /* the energy of each scalefactor band, en */
- /* the allowed distortion of each scalefactor band, xm */
-
-- for(sfb=21; sfb--; )
-- {
-- start = scalefac_band_long[ sfb ];
-- end = scalefac_band_long[ sfb+1 ];
-+ for (sfb = 21; sfb--;) {
-+ start = scalefac_band_long[sfb];
-+ end = scalefac_band_long[sfb + 1];
-
-- for ( temp = 0, i = start; i < end; i++ )
-- temp += config->l3loop.xrsq[i]>>10;
-- if ( temp )
-- config->l3loop.en[gr][sfb] = log((double)temp * 4.768371584e-7) / LN2; /* 1024 / 0x7fffffff */
-+ for (temp = 0, i = start; i < end; i++)
-+ temp += config->l3loop.xrsq[i] >> 10;
-+ if (temp)
-+ config->l3loop.en[gr][sfb] =
-+ log((double)temp * 4.768371584e-7) / LN2; /* 1024 / 0x7fffffff */
- else
- config->l3loop.en[gr][sfb] = 0;
-
-- if ( l3_xmin->l[gr][ch][sfb])
-- config->l3loop.xm[gr][sfb] = log( l3_xmin->l[gr][ch][sfb] ) / LN2;
-+ if (l3_xmin->l[gr][ch][sfb])
-+ config->l3loop.xm[gr][sfb] = log(l3_xmin->l[gr][ch][sfb]) / LN2;
- else
- config->l3loop.xm[gr][sfb] = 0;
- }
-
-- if(gr==1)
-- {
-+ if (gr == 1) {
- int gr2, tp;
-
-- for(gr2=2; gr2--; )
-- {
-+ for (gr2 = 2; gr2--;) {
- /* The spectral values are not all zero */
-- if(config->l3loop.xrmaxl[gr2])
-+ if (config->l3loop.xrmaxl[gr2])
- condition++;
-
- condition++;
- }
-- if(abs(config->l3loop.en_tot[0]-config->l3loop.en_tot[1]) < en_tot_krit)
-+ if (abs(config->l3loop.en_tot[0] - config->l3loop.en_tot[1]) < en_tot_krit)
- condition++;
-- for(tp=0,sfb=21; sfb--; )
-- tp += abs(config->l3loop.en[0][sfb]-config->l3loop.en[1][sfb]);
-+ for (tp = 0, sfb = 21; sfb--;)
-+ tp += abs(config->l3loop.en[0][sfb] - config->l3loop.en[1][sfb]);
- if (tp < en_dif_krit)
- condition++;
-
-- if(condition==6)
-- {
-- for(scfsi_band=0;scfsi_band<4;scfsi_band++)
-- {
-+ if (condition == 6) {
-+ for (scfsi_band = 0; scfsi_band < 4; scfsi_band++) {
- int sum0 = 0, sum1 = 0;
- l3_side->scfsi[ch][scfsi_band] = 0;
- start = scfsi_band_long[scfsi_band];
-- end = scfsi_band_long[scfsi_band+1];
-- for ( sfb = start; sfb < end; sfb++ )
-- {
-- sum0 += abs( config->l3loop.en[0][sfb] - config->l3loop.en[1][sfb] );
-- sum1 += abs( config->l3loop.xm[0][sfb] - config->l3loop.xm[1][sfb] );
-+ end = scfsi_band_long[scfsi_band + 1];
-+ for (sfb = start; sfb < end; sfb++) {
-+ sum0 += abs(config->l3loop.en[0][sfb] - config->l3loop.en[1][sfb]);
-+ sum1 += abs(config->l3loop.xm[0][sfb] - config->l3loop.xm[1][sfb]);
- }
-
-- if(sum0<en_scfsi_band_krit && sum1<xm_scfsi_band_krit)
-- {
-+ if (sum0 < en_scfsi_band_krit && sum1 < xm_scfsi_band_krit) {
- l3_side->scfsi[ch][scfsi_band] = 1;
-- scfsi_set |= (1 << scfsi_band);
-- }
-- else
-+ } else
- l3_side->scfsi[ch][scfsi_band] = 0;
- } /* for scfsi_band */
-- } /* if condition == 6 */
-+ } /* if condition == 6 */
- else
-- for(scfsi_band=0;scfsi_band<4;scfsi_band++)
-- l3_side->scfsi[ch][scfsi_band] = 0;
-+ for (scfsi_band = 0; scfsi_band < 4; scfsi_band++)
-+ l3_side->scfsi[ch][scfsi_band] = 0;
- } /* if gr == 1 */
- }
-
-@@ -279,27 +274,26 @@ void calc_scfsi( shine_psy_xmin_t *l3_xmin, int ch, int gr,
- * calculates the number of bits needed to encode the scalefacs in the
- * main data block.
- */
--int part2_length(int gr, int ch, shine_global_config *config)
--{
-+int part2_length(int gr, int ch, shine_global_config *config) {
- int slen1, slen2, bits;
- gr_info *gi = &config->side_info.gr[gr].ch[ch].tt;
-
- bits = 0;
-
- {
-- slen1 = shine_slen1_tab[ gi->scalefac_compress ];
-- slen2 = shine_slen2_tab[ gi->scalefac_compress ];
-+ slen1 = shine_slen1_tab[gi->scalefac_compress];
-+ slen2 = shine_slen2_tab[gi->scalefac_compress];
-
-- if ( !gr || !(config->side_info.scfsi[ch][0]) )
-+ if (!gr || !(config->side_info.scfsi[ch][0]))
- bits += (6 * slen1);
-
-- if ( !gr || !(config->side_info.scfsi[ch][1]) )
-+ if (!gr || !(config->side_info.scfsi[ch][1]))
- bits += (5 * slen1);
-
-- if ( !gr || !(config->side_info.scfsi[ch][2]) )
-+ if (!gr || !(config->side_info.scfsi[ch][2]))
- bits += (5 * slen2);
-
-- if ( !gr || !(config->side_info.scfsi[ch][3]) )
-+ if (!gr || !(config->side_info.scfsi[ch][3]))
- bits += (5 * slen2);
- }
- return bits;
-@@ -312,26 +306,22 @@ int part2_length(int gr, int ch, shine_global_config *config)
- * as determined by the psychoacoustic model.
- * xmin(sb) = ratio(sb) * en(sb) / bw(sb)
- */
--void calc_xmin(shine_psy_ratio_t *ratio,
-- gr_info *cod_info,
-- shine_psy_xmin_t *l3_xmin,
-- int gr, int ch )
--{
-+void calc_xmin(shine_psy_ratio_t *ratio, gr_info *cod_info,
-+ shine_psy_xmin_t *l3_xmin, int gr, int ch) {
- int sfb;
-
-- for ( sfb = cod_info->sfb_lmax; sfb--; )
-- {
--/* note. xmin will always be zero with no psychoacoustic model
-+ for (sfb = cod_info->sfb_lmax; sfb--;) {
-+ /* note. xmin will always be zero with no psychoacoustic model
-
-- start = scalefac_band_long[ sfb ];
-- end = scalefac_band_long[ sfb+1 ];
-- bw = end - start;
-+ start = scalefac_band_long[ sfb ];
-+ end = scalefac_band_long[ sfb+1 ];
-+ bw = end - start;
-
-- for ( en = 0, l = start; l < end; l++ )
-- en += config->l3loop.xrsq[l];
-+ for ( en = 0, l = start; l < end; l++ )
-+ en += config->l3loop.xrsq[l];
-
-- l3_xmin->l[gr][ch][sfb] = ratio->l[gr][ch][sfb] * en / bw;
--*/
-+ l3_xmin->l[gr][ch][sfb] = ratio->l[gr][ch][sfb] * en / bw;
-+ */
- l3_xmin->l[gr][ch][sfb] = 0;
- }
- }
-@@ -341,8 +331,7 @@ void calc_xmin(shine_psy_ratio_t *ratio,
- * -------------------
- * Calculates the look up tables used by the iteration loop.
- */
--void shine_loop_initialise(shine_global_config *config)
--{
-+void shine_loop_initialise(shine_global_config *config) {
- int i;
-
- /* quantize: stepsize conversion, fourth root of 2 table.
-@@ -350,24 +339,26 @@ void shine_loop_initialise(shine_global_config *config)
- * in the spec because it is quicker to do x*y than x/y.
- * The 0.5 is for rounding.
- */
-- for(i=128; i--;)
-- {
-- config->l3loop.steptab[i] = pow(2.0,(double)(127-i)/4);
-- if((config->l3loop.steptab[i]*2)>0x7fffffff) /* MAXINT = 2**31 = 2**(124/4) */
-- config->l3loop.steptabi[i]=0x7fffffff;
-+ for (i = 128; i--;) {
-+ config->l3loop.steptab[i] = pow(2.0, (double)(127 - i) / 4);
-+ if ((config->l3loop.steptab[i] * 2) >
-+ 0x7fffffff) /* MAXINT = 2**31 = 2**(124/4) */
-+ config->l3loop.steptabi[i] = 0x7fffffff;
- else
- /* The table is multiplied by 2 to give an extra bit of accuracy.
- * In quantize, the long multiply does not shift it's result left one
- * bit to compensate.
- */
-- config->l3loop.steptabi[i] = (int32_t)((config->l3loop.steptab[i]*2) + 0.5);
-+ config->l3loop.steptabi[i] =
-+ (int32_t)((config->l3loop.steptab[i] * 2) + 0.5);
- }
-
- /* quantize: vector conversion, three quarter power table.
- * The 0.5 is for rounding, the .0946 comes from the spec.
- */
-- for(i=10000; i--;)
-- config->l3loop.int2idx[i] = (int)(sqrt(sqrt((double)i)*(double)i) - 0.0946 + 0.5);
-+ for (i = 10000; i--;)
-+ config->l3loop.int2idx[i] =
-+ (int)(sqrt(sqrt((double)i) * (double)i) - 0.0946 + 0.5);
- }
-
- /*
-@@ -376,39 +367,37 @@ void shine_loop_initialise(shine_global_config *config)
- * Function: Quantization of the vector xr ( -> ix).
- * Returns maximum value of ix.
- */
--int quantize(int ix[GRANULE_SIZE], int stepsize, shine_global_config *config )
--{
-+int quantize(int ix[GRANULE_SIZE], int stepsize, shine_global_config *config) {
- int i, max, ln;
- int32_t scalei;
- double scale, dbl;
-
-- scalei = config->l3loop.steptabi[stepsize+127]; /* 2**(-stepsize/4) */
-+ scalei = config->l3loop.steptabi[stepsize + 127]; /* 2**(-stepsize/4) */
-
- /* a quick check to see if ixmax will be less than 8192 */
- /* this speeds up the early calls to bin_search_StepSize */
-- if((mulr(config->l3loop.xrmax,scalei)) > 165140) /* 8192**(4/3) */
-+ if ((mulr(config->l3loop.xrmax, scalei)) > 165140) /* 8192**(4/3) */
- max = 16384; /* no point in continuing, stepsize not big enough */
- else
-- for(i=0, max=0;i<GRANULE_SIZE;i++)
-- {
-+ for (i = 0, max = 0; i < GRANULE_SIZE; i++) {
- /* This calculation is very sensitive. The multiply must round it's
- * result or bad things happen to the quality.
- */
-- ln = mulr(labs(config->l3loop.xr[i]),scalei);
-+ ln = mulr(labs(config->l3loop.xr[i]), scalei);
-
-- if(ln<10000) /* ln < 10000 catches most values */
-+ if (ln < 10000) /* ln < 10000 catches most values */
- ix[i] = config->l3loop.int2idx[ln]; /* quick look up method */
-- else
-- {
-+ else {
- /* outside table range so have to do it using floats */
-- scale = config->l3loop.steptab[stepsize+127]; /* 2**(-stepsize/4) */
-- dbl = ((double)config->l3loop.xrabs[i]) * scale * 4.656612875e-10; /* 0x7fffffff */
-- ix[i] = (int)sqrt(sqrt(dbl)*dbl); /* dbl**(3/4) */
-+ scale = config->l3loop.steptab[stepsize + 127]; /* 2**(-stepsize/4) */
-+ dbl = ((double)config->l3loop.xrabs[i]) * scale *
-+ 4.656612875e-10; /* 0x7fffffff */
-+ ix[i] = (int)sqrt(sqrt(dbl) * dbl); /* dbl**(3/4) */
- }
-
- /* calculate ixmax while we're here */
- /* note. ix cannot be negative */
-- if(max < ix[i])
-+ if (max < ix[i])
- max = ix[i];
- }
-
-@@ -420,13 +409,13 @@ int quantize(int ix[GRANULE_SIZE], int stepsize, shine_global_config *config )
- * -------
- * Function: Calculate the maximum of ix from 0 to 575
- */
--static inline int ix_max( int ix[GRANULE_SIZE], unsigned int begin, unsigned int end )
--{
-+static inline int ix_max(int ix[GRANULE_SIZE], unsigned int begin,
-+ unsigned int end) {
- register int i;
- register int max = 0;
-
-- for(i=begin;i<end;i++)
-- if(max < ix[i])
-+ for (i = begin; i < end; i++)
-+ if (max < ix[i])
- max = ix[i];
- return max;
- }
-@@ -437,28 +426,24 @@ static inline int ix_max( int ix[GRANULE_SIZE], unsigned int begin, unsigned int
- * Function: Calculation of rzero, count1, big_values
- * (Partitions ix into big values, quadruples and zeros).
- */
--void calc_runlen( int ix[GRANULE_SIZE], gr_info *cod_info )
--{
-+void calc_runlen(int ix[GRANULE_SIZE], gr_info *cod_info) {
- int i;
- int rzero = 0;
-
-- for ( i = GRANULE_SIZE; i > 1; i -= 2 )
-- if ( !ix[i-1] && !ix[i-2] )
-+ for (i = GRANULE_SIZE; i > 1; i -= 2)
-+ if (!ix[i - 1] && !ix[i - 2])
- rzero++;
- else
- break;
-
-- cod_info->count1 = 0 ;
-- for ( ; i > 3; i -= 4 )
-- if ( ix[i-1] <= 1
-- && ix[i-2] <= 1
-- && ix[i-3] <= 1
-- && ix[i-4] <= 1 )
-+ cod_info->count1 = 0;
-+ for (; i > 3; i -= 4)
-+ if (ix[i - 1] <= 1 && ix[i - 2] <= 1 && ix[i - 3] <= 1 && ix[i - 4] <= 1)
- cod_info->count1++;
- else
- break;
-
-- cod_info->big_values = i>>1;
-+ cod_info->big_values = i >> 1;
- }
-
- /*
-@@ -466,27 +451,29 @@ void calc_runlen( int ix[GRANULE_SIZE], gr_info *cod_info )
- * ----------------
- * Determines the number of bits to encode the quadruples.
- */
--int count1_bitcount(int ix[GRANULE_SIZE], gr_info *cod_info)
--{
-+int count1_bitcount(int ix[GRANULE_SIZE], gr_info *cod_info) {
- int p, i, k;
- int v, w, x, y, signbits;
-- int sum0 = 0,
-- sum1 = 0;
-+ int sum0 = 0, sum1 = 0;
-
-- for(i=cod_info->big_values<<1, k=0; k<cod_info->count1; i+=4, k++)
-- {
-+ for (i = cod_info->big_values << 1, k = 0; k < cod_info->count1;
-+ i += 4, k++) {
- v = ix[i];
-- w = ix[i+1];
-- x = ix[i+2];
-- y = ix[i+3];
-+ w = ix[i + 1];
-+ x = ix[i + 2];
-+ y = ix[i + 3];
-
-- p = v + (w<<1) + (x<<2) + (y<<3);
-+ p = v + (w << 1) + (x << 2) + (y << 3);
-
- signbits = 0;
-- if(v!=0) signbits++;
-- if(w!=0) signbits++;
-- if(x!=0) signbits++;
-- if(y!=0) signbits++;
-+ if (v != 0)
-+ signbits++;
-+ if (w != 0)
-+ signbits++;
-+ if (x != 0)
-+ signbits++;
-+ if (y != 0)
-+ signbits++;
-
- sum0 += signbits;
- sum1 += signbits;
-@@ -495,13 +482,10 @@ int count1_bitcount(int ix[GRANULE_SIZE], gr_info *cod_info)
- sum1 += shine_huffman_table[33].hlen[p];
- }
-
-- if(sum0<sum1)
-- {
-+ if (sum0 < sum1) {
- cod_info->count1table_select = 0;
- return sum0;
-- }
-- else
-- {
-+ } else {
- cod_info->count1table_select = 1;
- return sum1;
- }
-@@ -510,59 +494,56 @@ int count1_bitcount(int ix[GRANULE_SIZE], gr_info *cod_info)
- /*
- * subdivide:
- * ----------
-- * presumable subdivides the bigvalue region which will use separate Huffman tables.
-+ * presumable subdivides the bigvalue region which will use separate Huffman
-+ * tables.
- */
--void subdivide(gr_info *cod_info, shine_global_config *config)
--{
-- static const struct
-- {
-+void subdivide(gr_info *cod_info, shine_global_config *config) {
-+ static const struct {
- unsigned region0_count;
- unsigned region1_count;
-- } subdv_table[ 23 ] =
-- {
-- {0, 0}, /* 0 bands */
-- {0, 0}, /* 1 bands */
-- {0, 0}, /* 2 bands */
-- {0, 0}, /* 3 bands */
-- {0, 0}, /* 4 bands */
-- {0, 1}, /* 5 bands */
-- {1, 1}, /* 6 bands */
-- {1, 1}, /* 7 bands */
-- {1, 2}, /* 8 bands */
-- {2, 2}, /* 9 bands */
-- {2, 3}, /* 10 bands */
-- {2, 3}, /* 11 bands */
-- {3, 4}, /* 12 bands */
-- {3, 4}, /* 13 bands */
-- {3, 4}, /* 14 bands */
-- {4, 5}, /* 15 bands */
-- {4, 5}, /* 16 bands */
-- {4, 6}, /* 17 bands */
-- {5, 6}, /* 18 bands */
-- {5, 6}, /* 19 bands */
-- {5, 7}, /* 20 bands */
-- {6, 7}, /* 21 bands */
-- {6, 7}, /* 22 bands */
-+ } subdv_table[23] = {
-+ {0, 0}, /* 0 bands */
-+ {0, 0}, /* 1 bands */
-+ {0, 0}, /* 2 bands */
-+ {0, 0}, /* 3 bands */
-+ {0, 0}, /* 4 bands */
-+ {0, 1}, /* 5 bands */
-+ {1, 1}, /* 6 bands */
-+ {1, 1}, /* 7 bands */
-+ {1, 2}, /* 8 bands */
-+ {2, 2}, /* 9 bands */
-+ {2, 3}, /* 10 bands */
-+ {2, 3}, /* 11 bands */
-+ {3, 4}, /* 12 bands */
-+ {3, 4}, /* 13 bands */
-+ {3, 4}, /* 14 bands */
-+ {4, 5}, /* 15 bands */
-+ {4, 5}, /* 16 bands */
-+ {4, 6}, /* 17 bands */
-+ {5, 6}, /* 18 bands */
-+ {5, 6}, /* 19 bands */
-+ {5, 7}, /* 20 bands */
-+ {6, 7}, /* 21 bands */
-+ {6, 7}, /* 22 bands */
- };
-
-- if (!cod_info->big_values)
-- { /* no big_values region */
-+ if (!cod_info->big_values) { /* no big_values region */
- cod_info->region0_count = 0;
- cod_info->region1_count = 0;
-- }
-- else
-- {
-- const int *scalefac_band_long = &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
-+ } else {
-+ const int *scalefac_band_long =
-+ &shine_scale_fact_band_index[config->mpeg.samplerate_index][0];
- int bigvalues_region, scfb_anz, thiscount;
-
- bigvalues_region = 2 * cod_info->big_values;
-
- /* Calculate scfb_anz */
- scfb_anz = 0;
-- while ( scalefac_band_long[scfb_anz] < bigvalues_region )
-+ while (scalefac_band_long[scfb_anz] < bigvalues_region)
- scfb_anz++;
-
-- for (thiscount = subdv_table[scfb_anz].region0_count; thiscount; thiscount--) {
-+ for (thiscount = subdv_table[scfb_anz].region0_count; thiscount;
-+ thiscount--) {
- if (scalefac_band_long[thiscount + 1] <= bigvalues_region)
- break;
- }
-@@ -571,7 +552,8 @@ void subdivide(gr_info *cod_info, shine_global_config *config)
-
- scalefac_band_long += cod_info->region0_count + 1;
-
-- for (thiscount = subdv_table[scfb_anz].region1_count; thiscount; thiscount--) {
-+ for (thiscount = subdv_table[scfb_anz].region1_count; thiscount;
-+ thiscount--) {
- if (scalefac_band_long[thiscount + 1] <= bigvalues_region)
- break;
- }
-@@ -587,21 +569,22 @@ void subdivide(gr_info *cod_info, shine_global_config *config)
- * ----------------
- * Function: Select huffman code tables for bigvalues regions
- */
--void bigv_tab_select( int ix[GRANULE_SIZE], gr_info *cod_info )
--{
-+void bigv_tab_select(int ix[GRANULE_SIZE], gr_info *cod_info) {
- cod_info->table_select[0] = 0;
- cod_info->table_select[1] = 0;
- cod_info->table_select[2] = 0;
-
- {
-- if ( cod_info->address1 > 0 )
-- cod_info->table_select[0] = new_choose_table( ix, 0, cod_info->address1 );
-+ if (cod_info->address1 > 0)
-+ cod_info->table_select[0] = new_choose_table(ix, 0, cod_info->address1);
-
-- if ( cod_info->address2 > cod_info->address1 )
-- cod_info->table_select[1] = new_choose_table( ix, cod_info->address1, cod_info->address2 );
-+ if (cod_info->address2 > cod_info->address1)
-+ cod_info->table_select[1] =
-+ new_choose_table(ix, cod_info->address1, cod_info->address2);
-
-- if ( cod_info->big_values<<1 > cod_info->address2 )
-- cod_info->table_select[2] = new_choose_table( ix, cod_info->address2, cod_info->big_values<<1 );
-+ if (cod_info->big_values << 1 > cod_info->address2)
-+ cod_info->table_select[2] =
-+ new_choose_table(ix, cod_info->address2, cod_info->big_values << 1);
- }
- }
-
-@@ -614,98 +597,89 @@ void bigv_tab_select( int ix[GRANULE_SIZE], gr_info *cod_info )
- * of the Huffman tables as defined in the IS (Table B.7), and will not work
- * with any arbitrary tables.
- */
--int new_choose_table( int ix[GRANULE_SIZE], unsigned int begin, unsigned int end )
--{
-+int new_choose_table(int ix[GRANULE_SIZE], unsigned int begin,
-+ unsigned int end) {
- int i, max;
- int choice[2];
- int sum[2];
-
-- max = ix_max(ix,begin,end);
-- if(!max)
-+ max = ix_max(ix, begin, end);
-+ if (!max)
- return 0;
-
- choice[0] = 0;
- choice[1] = 0;
-
-- if(max<15)
-- {
-+ if (max < 15) {
- /* try tables with no linbits */
-- for ( i =14; i--; )
-- if ( shine_huffman_table[i].xlen > max )
-- {
-+ for (i = 14; i--;)
-+ if (shine_huffman_table[i].xlen > max) {
- choice[0] = i;
- break;
- }
-
-- sum[0] = count_bit( ix, begin, end, choice[0] );
-+ sum[0] = count_bit(ix, begin, end, choice[0]);
-
-- switch (choice[0])
-- {
-- case 2:
-- sum[1] = count_bit( ix, begin, end, 3 );
-- if ( sum[1] <= sum[0] )
-- choice[0] = 3;
-- break;
-+ switch (choice[0]) {
-+ case 2:
-+ sum[1] = count_bit(ix, begin, end, 3);
-+ if (sum[1] <= sum[0])
-+ choice[0] = 3;
-+ break;
-
-- case 5:
-- sum[1] = count_bit( ix, begin, end, 6 );
-- if ( sum[1] <= sum[0] )
-- choice[0] = 6;
-- break;
-+ case 5:
-+ sum[1] = count_bit(ix, begin, end, 6);
-+ if (sum[1] <= sum[0])
-+ choice[0] = 6;
-+ break;
-
-- case 7:
-- sum[1] = count_bit( ix, begin, end, 8 );
-- if ( sum[1] <= sum[0] )
-- {
-- choice[0] = 8;
-- sum[0] = sum[1];
-- }
-- sum[1] = count_bit( ix, begin, end, 9 );
-- if ( sum[1] <= sum[0] )
-- choice[0] = 9;
-- break;
-+ case 7:
-+ sum[1] = count_bit(ix, begin, end, 8);
-+ if (sum[1] <= sum[0]) {
-+ choice[0] = 8;
-+ sum[0] = sum[1];
-+ }
-+ sum[1] = count_bit(ix, begin, end, 9);
-+ if (sum[1] <= sum[0])
-+ choice[0] = 9;
-+ break;
-
-- case 10:
-- sum[1] = count_bit( ix, begin, end, 11 );
-- if ( sum[1] <= sum[0] )
-- {
-- choice[0] = 11;
-- sum[0] = sum[1];
-- }
-- sum[1] = count_bit( ix, begin, end, 12 );
-- if ( sum[1] <= sum[0] )
-- choice[0] = 12;
-- break;
-+ case 10:
-+ sum[1] = count_bit(ix, begin, end, 11);
-+ if (sum[1] <= sum[0]) {
-+ choice[0] = 11;
-+ sum[0] = sum[1];
-+ }
-+ sum[1] = count_bit(ix, begin, end, 12);
-+ if (sum[1] <= sum[0])
-+ choice[0] = 12;
-+ break;
-
-- case 13:
-- sum[1] = count_bit( ix, begin, end, 15 );
-- if ( sum[1] <= sum[0] )
-- choice[0] = 15;
-- break;
-+ case 13:
-+ sum[1] = count_bit(ix, begin, end, 15);
-+ if (sum[1] <= sum[0])
-+ choice[0] = 15;
-+ break;
- }
-- }
-- else
-- {
-+ } else {
- /* try tables with linbits */
- max -= 15;
-
-- for(i=15;i<24;i++)
-- if(shine_huffman_table[i].linmax>=max)
-- {
-+ for (i = 15; i < 24; i++)
-+ if (shine_huffman_table[i].linmax >= max) {
- choice[0] = i;
- break;
- }
-
-- for(i=24;i<32;i++)
-- if(shine_huffman_table[i].linmax>=max)
-- {
-+ for (i = 24; i < 32; i++)
-+ if (shine_huffman_table[i].linmax >= max) {
- choice[1] = i;
- break;
- }
-
-- sum[0] = count_bit(ix,begin,end,choice[0]);
-- sum[1] = count_bit(ix,begin,end,choice[1]);
-- if (sum[1]<sum[0])
-+ sum[0] = count_bit(ix, begin, end, choice[0]);
-+ sum[1] = count_bit(ix, begin, end, choice[1]);
-+ if (sum[1] < sum[0])
- choice[0] = choice[1];
- }
- return choice[0];
-@@ -716,17 +690,16 @@ int new_choose_table( int ix[GRANULE_SIZE], unsigned int begin, unsigned int end
- * --------------
- * Function: Count the number of bits necessary to code the bigvalues region.
- */
--int bigv_bitcount(int ix[GRANULE_SIZE], gr_info *gi)
--{
-+int bigv_bitcount(int ix[GRANULE_SIZE], gr_info *gi) {
- int bits = 0;
- unsigned int table;
-
-- if( (table=gi->table_select[0])) /* region0 */
-- bits += count_bit(ix, 0, gi->address1, table );
-- if( (table=gi->table_select[1])) /* region1 */
-- bits += count_bit(ix, gi->address1, gi->address2, table );
-- if( (table=gi->table_select[2])) /* region2 */
-- bits += count_bit(ix, gi->address2, gi->address3, table );
-+ if ((table = gi->table_select[0])) /* region0 */
-+ bits += count_bit(ix, 0, gi->address1, table);
-+ if ((table = gi->table_select[1])) /* region1 */
-+ bits += count_bit(ix, gi->address1, gi->address2, table);
-+ if ((table = gi->table_select[2])) /* region2 */
-+ bits += count_bit(ix, gi->address2, gi->address3, table);
- return bits;
- }
-
-@@ -735,61 +708,51 @@ int bigv_bitcount(int ix[GRANULE_SIZE], gr_info *gi)
- * ----------
- * Function: Count the number of bits necessary to code the subregion.
- */
--int count_bit(int ix[GRANULE_SIZE],
-- unsigned int start,
-- unsigned int end,
-- unsigned int table )
--{
-- unsigned linbits, ylen;
-- register int i, sum;
-- register int x,y;
-+int count_bit(int ix[GRANULE_SIZE], unsigned int start, unsigned int end,
-+ unsigned int table) {
-+ unsigned linbits, ylen;
-+ register int i, sum;
-+ register int x, y;
- const struct huffcodetab *h;
-
-- if(!table)
-+ if (!table)
- return 0;
-
-- h = &(shine_huffman_table[table]);
-+ h = &(shine_huffman_table[table]);
- sum = 0;
-
-- ylen = h->ylen;
-+ ylen = h->ylen;
- linbits = h->linbits;
-
-- if(table>15)
-- { /* ESC-table is used */
-- for(i=start;i<end;i+=2)
-- {
-+ if (table > 15) { /* ESC-table is used */
-+ for (i = start; i < end; i += 2) {
- x = ix[i];
-- y = ix[i+1];
-- if(x>14)
-- {
-+ y = ix[i + 1];
-+ if (x > 14) {
- x = 15;
- sum += linbits;
- }
-- if(y>14)
-- {
-+ if (y > 14) {
- y = 15;
- sum += linbits;
- }
-
-- sum += h->hlen[(x*ylen)+y];
-- if(x)
-+ sum += h->hlen[(x * ylen) + y];
-+ if (x)
- sum++;
-- if(y)
-+ if (y)
- sum++;
- }
-- }
-- else
-- { /* No ESC-words */
-- for(i=start;i<end;i+=2)
-- {
-+ } else { /* No ESC-words */
-+ for (i = start; i < end; i += 2) {
- x = ix[i];
-- y = ix[i+1];
-+ y = ix[i + 1];
-
-- sum += h->hlen[(x*ylen)+y];
-+ sum += h->hlen[(x * ylen) + y];
-
-- if(x!=0)
-+ if (x != 0)
- sum++;
-- if(y!=0)
-+ if (y != 0)
- sum++;
- }
- }
-@@ -809,20 +772,18 @@ int count_bit(int ix[GRANULE_SIZE],
- * returns a good starting quantizerStepSize.
- */
- int bin_search_StepSize(int desired_rate, int ix[GRANULE_SIZE],
-- gr_info * cod_info, shine_global_config *config)
--{
-+ gr_info *cod_info, shine_global_config *config) {
- int bit, next, count;
-
-- next = -120;
-+ next = -120;
- count = 120;
-
- do {
- int half = count / 2;
-
- if (quantize(ix, next + half, config) > 8192)
-- bit = 100000; /* fail */
-- else
-- {
-+ bit = 100000; /* fail */
-+ else {
- calc_runlen(ix, cod_info); /* rzero,count1,big_values */
- bit = count1_bitcount(ix, cod_info); /* count1_table selection */
- subdivide(cod_info, config); /* bigvalues sfb division */
-@@ -832,8 +793,7 @@ int bin_search_StepSize(int desired_rate, int ix[GRANULE_SIZE],
-
- if (bit < desired_rate)
- count = half;
-- else
-- {
-+ else {
- next += half;
- count -= half;
- }
-diff --git a/src/lib/l3loop.h b/src/lib/l3loop.h
-index 0e71a91..94ecea3 100644
---- a/src/lib/l3loop.h
-+++ b/src/lib/l3loop.h
-@@ -1,9 +1,10 @@
- #ifndef L3LOOP_H
- #define L3LOOP_H
-
-+#include "types.h"
-+
- void shine_loop_initialise(shine_global_config *config);
-
- void shine_iteration_loop(shine_global_config *config);
-
- #endif
--
-diff --git a/src/lib/l3mdct.c b/src/lib/l3mdct.c
-index 7553a54..a76b702 100644
---- a/src/lib/l3mdct.c
-+++ b/src/lib/l3mdct.c
-@@ -1,88 +1,87 @@
- /* L3mdct */
-
--#include "types.h"
- #include "l3mdct.h"
- #include "l3subband.h"
-+#include "types.h"
-
- /* This is table B.9: coefficients for aliasing reduction */
--#define MDCT_CA(coef) (int32_t)(coef / sqrt(1.0 + (coef * coef)) * 0x7fffffff)
--#define MDCT_CS(coef) (int32_t)(1.0 / sqrt(1.0 + (coef * coef)) * 0x7fffffff)
-+#define MDCT_CA(coef) (int32_t)(coef / sqrt(1.0 + (coef * coef)) * 0x7fffffff)
-+#define MDCT_CS(coef) (int32_t)(1.0 / sqrt(1.0 + (coef * coef)) * 0x7fffffff)
-
--#define MDCT_CA0 MDCT_CA(-0.6)
--#define MDCT_CA1 MDCT_CA(-0.535)
--#define MDCT_CA2 MDCT_CA(-0.33)
--#define MDCT_CA3 MDCT_CA(-0.185)
--#define MDCT_CA4 MDCT_CA(-0.095)
--#define MDCT_CA5 MDCT_CA(-0.041)
--#define MDCT_CA6 MDCT_CA(-0.0142)
--#define MDCT_CA7 MDCT_CA(-0.0037)
-+#define MDCT_CA0 MDCT_CA(-0.6)
-+#define MDCT_CA1 MDCT_CA(-0.535)
-+#define MDCT_CA2 MDCT_CA(-0.33)
-+#define MDCT_CA3 MDCT_CA(-0.185)
-+#define MDCT_CA4 MDCT_CA(-0.095)
-+#define MDCT_CA5 MDCT_CA(-0.041)
-+#define MDCT_CA6 MDCT_CA(-0.0142)
-+#define MDCT_CA7 MDCT_CA(-0.0037)
-
--#define MDCT_CS0 MDCT_CS(-0.6)
--#define MDCT_CS1 MDCT_CS(-0.535)
--#define MDCT_CS2 MDCT_CS(-0.33)
--#define MDCT_CS3 MDCT_CS(-0.185)
--#define MDCT_CS4 MDCT_CS(-0.095)
--#define MDCT_CS5 MDCT_CS(-0.041)
--#define MDCT_CS6 MDCT_CS(-0.0142)
--#define MDCT_CS7 MDCT_CS(-0.0037)
-+#define MDCT_CS0 MDCT_CS(-0.6)
-+#define MDCT_CS1 MDCT_CS(-0.535)
-+#define MDCT_CS2 MDCT_CS(-0.33)
-+#define MDCT_CS3 MDCT_CS(-0.185)
-+#define MDCT_CS4 MDCT_CS(-0.095)
-+#define MDCT_CS5 MDCT_CS(-0.041)
-+#define MDCT_CS6 MDCT_CS(-0.0142)
-+#define MDCT_CS7 MDCT_CS(-0.0037)
-
- /*
- * shine_mdct_initialise:
- * -------------------
- */
--void shine_mdct_initialise(shine_global_config *config)
--{
-- int m,k;
-+void shine_mdct_initialise(shine_global_config *config) {
-+ int m, k;
-
- /* prepare the mdct coefficients */
-- for(m=18; m--; )
-- for(k=36; k--; )
-+ for (m = 18; m--;)
-+ for (k = 36; k--;)
- /* combine window and mdct coefficients into a single table */
- /* scale and convert to fixed point before storing */
-- config->mdct.cos_l[m][k] = (int32_t)(sin(PI36*(k+0.5))
-- * cos((PI/72)*(2*k+19)*(2*m+1)) * 0x7fffffff);
-+ config->mdct.cos_l[m][k] =
-+ (int32_t)(sin(PI36 * (k + 0.5)) *
-+ cos((PI / 72) * (2 * k + 19) * (2 * m + 1)) * 0x7fffffff);
- }
-
- /*
- * shine_mdct_sub:
- * ------------
- */
--void shine_mdct_sub(shine_global_config *config, int stride)
--{
-+void shine_mdct_sub(shine_global_config *config, int stride) {
- /* note. we wish to access the array 'config->mdct_freq[2][2][576]' as
- * [2][2][32][18]. (32*18=576),
- */
-- int32_t (*mdct_enc)[18];
-+ int32_t(*mdct_enc)[18];
-
-- int ch,gr,band,j,k;
-+ int ch, gr, band, j, k;
- int32_t mdct_in[36];
-
-- for(ch=config->wave.channels; ch--; )
-- {
-- for(gr=0; gr<config->mpeg.granules_per_frame; gr++)
-- {
-+ for (ch = config->wave.channels; ch--;) {
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++) {
- /* set up pointer to the part of config->mdct_freq we're using */
-- mdct_enc = (int32_t (*)[18]) config->mdct_freq[ch][gr];
-+ mdct_enc = (int32_t(*)[18])config->mdct_freq[ch][gr];
-
- /* polyphase filtering */
-- for(k=0; k<18; k+=2)
-- {
-- shine_window_filter_subband(&config->buffer[ch], &config->l3_sb_sample[ch][gr+1][k ][0], ch, config, stride);
-- shine_window_filter_subband(&config->buffer[ch], &config->l3_sb_sample[ch][gr+1][k+1][0], ch, config, stride);
-+ for (k = 0; k < 18; k += 2) {
-+ shine_window_filter_subband(&config->buffer[ch],
-+ &config->l3_sb_sample[ch][gr + 1][k][0], ch,
-+ config, stride);
-+ shine_window_filter_subband(&config->buffer[ch],
-+ &config->l3_sb_sample[ch][gr + 1][k + 1][0],
-+ ch, config, stride);
- /* Compensate for inversion in the analysis filter
- * (every odd index of band AND k)
- */
-- for(band=1; band<32; band+=2)
-- config->l3_sb_sample[ch][gr+1][k+1][band] *= -1;
-+ for (band = 1; band < 32; band += 2)
-+ config->l3_sb_sample[ch][gr + 1][k + 1][band] *= -1;
- }
-
-- /* Perform imdct of 18 previous subband samples + 18 current subband samples */
-- for(band=0; band<32; band++)
-- {
-- for(k=18; k--; )
-- {
-- mdct_in[k ] = config->l3_sb_sample[ch][gr ][k][band];
-- mdct_in[k+18] = config->l3_sb_sample[ch][gr+1][k][band];
-+ /* Perform imdct of 18 previous subband samples + 18 current subband
-+ * samples */
-+ for (band = 0; band < 32; band++) {
-+ for (k = 18; k--;) {
-+ mdct_in[k] = config->l3_sb_sample[ch][gr][k][band];
-+ mdct_in[k + 18] = config->l3_sb_sample[ch][gr + 1][k][band];
- }
-
- /* Calculation of the MDCT
-@@ -90,41 +89,61 @@ void shine_mdct_sub(shine_global_config *config, int stride)
- * 36 coefficients in the time domain and 18 in the frequency
- * domain.
- */
-- for(k=18; k--; )
-- {
-+ for (k = 18; k--;) {
- int32_t vm;
-+#ifdef __BORLANDC__
-+ uint32_t vm_lo;
-+#else
- uint32_t vm_lo __attribute__((unused));
-+#endif
-
- mul0(vm, vm_lo, mdct_in[35], config->mdct.cos_l[k][35]);
-- for(j=35; j; j-=7) {
-- muladd(vm, vm_lo, mdct_in[j-1], config->mdct.cos_l[k][j-1]);
-- muladd(vm, vm_lo, mdct_in[j-2], config->mdct.cos_l[k][j-2]);
-- muladd(vm, vm_lo, mdct_in[j-3], config->mdct.cos_l[k][j-3]);
-- muladd(vm, vm_lo, mdct_in[j-4], config->mdct.cos_l[k][j-4]);
-- muladd(vm, vm_lo, mdct_in[j-5], config->mdct.cos_l[k][j-5]);
-- muladd(vm, vm_lo, mdct_in[j-6], config->mdct.cos_l[k][j-6]);
-- muladd(vm, vm_lo, mdct_in[j-7], config->mdct.cos_l[k][j-7]);
-+ for (j = 35; j; j -= 7) {
-+ muladd(vm, vm_lo, mdct_in[j - 1], config->mdct.cos_l[k][j - 1]);
-+ muladd(vm, vm_lo, mdct_in[j - 2], config->mdct.cos_l[k][j - 2]);
-+ muladd(vm, vm_lo, mdct_in[j - 3], config->mdct.cos_l[k][j - 3]);
-+ muladd(vm, vm_lo, mdct_in[j - 4], config->mdct.cos_l[k][j - 4]);
-+ muladd(vm, vm_lo, mdct_in[j - 5], config->mdct.cos_l[k][j - 5]);
-+ muladd(vm, vm_lo, mdct_in[j - 6], config->mdct.cos_l[k][j - 6]);
-+ muladd(vm, vm_lo, mdct_in[j - 7], config->mdct.cos_l[k][j - 7]);
- }
- mulz(vm, vm_lo);
- mdct_enc[band][k] = vm;
- }
-
- /* Perform aliasing reduction butterfly */
-- if (band != 0)
-- {
-- cmuls(mdct_enc[band][0], mdct_enc[band-1][17-0], mdct_enc[band][0], mdct_enc[band-1][17-0], MDCT_CS0, MDCT_CA0);
-- cmuls(mdct_enc[band][1], mdct_enc[band-1][17-1], mdct_enc[band][1], mdct_enc[band-1][17-1], MDCT_CS1, MDCT_CA1);
-- cmuls(mdct_enc[band][2], mdct_enc[band-1][17-2], mdct_enc[band][2], mdct_enc[band-1][17-2], MDCT_CS2, MDCT_CA2);
-- cmuls(mdct_enc[band][3], mdct_enc[band-1][17-3], mdct_enc[band][3], mdct_enc[band-1][17-3], MDCT_CS3, MDCT_CA3);
-- cmuls(mdct_enc[band][4], mdct_enc[band-1][17-4], mdct_enc[band][4], mdct_enc[band-1][17-4], MDCT_CS4, MDCT_CA4);
-- cmuls(mdct_enc[band][5], mdct_enc[band-1][17-5], mdct_enc[band][5], mdct_enc[band-1][17-5], MDCT_CS5, MDCT_CA5);
-- cmuls(mdct_enc[band][6], mdct_enc[band-1][17-6], mdct_enc[band][6], mdct_enc[band-1][17-6], MDCT_CS6, MDCT_CA6);
-- cmuls(mdct_enc[band][7], mdct_enc[band-1][17-7], mdct_enc[band][7], mdct_enc[band-1][17-7], MDCT_CS7, MDCT_CA7);
-+ if (band != 0) {
-+ cmuls(mdct_enc[band][0], mdct_enc[band - 1][17 - 0],
-+ mdct_enc[band][0], mdct_enc[band - 1][17 - 0], MDCT_CS0,
-+ MDCT_CA0);
-+ cmuls(mdct_enc[band][1], mdct_enc[band - 1][17 - 1],
-+ mdct_enc[band][1], mdct_enc[band - 1][17 - 1], MDCT_CS1,
-+ MDCT_CA1);
-+ cmuls(mdct_enc[band][2], mdct_enc[band - 1][17 - 2],
-+ mdct_enc[band][2], mdct_enc[band - 1][17 - 2], MDCT_CS2,
-+ MDCT_CA2);
-+ cmuls(mdct_enc[band][3], mdct_enc[band - 1][17 - 3],
-+ mdct_enc[band][3], mdct_enc[band - 1][17 - 3], MDCT_CS3,
-+ MDCT_CA3);
-+ cmuls(mdct_enc[band][4], mdct_enc[band - 1][17 - 4],
-+ mdct_enc[band][4], mdct_enc[band - 1][17 - 4], MDCT_CS4,
-+ MDCT_CA4);
-+ cmuls(mdct_enc[band][5], mdct_enc[band - 1][17 - 5],
-+ mdct_enc[band][5], mdct_enc[band - 1][17 - 5], MDCT_CS5,
-+ MDCT_CA5);
-+ cmuls(mdct_enc[band][6], mdct_enc[band - 1][17 - 6],
-+ mdct_enc[band][6], mdct_enc[band - 1][17 - 6], MDCT_CS6,
-+ MDCT_CA6);
-+ cmuls(mdct_enc[band][7], mdct_enc[band - 1][17 - 7],
-+ mdct_enc[band][7], mdct_enc[band - 1][17 - 7], MDCT_CS7,
-+ MDCT_CA7);
- }
- }
- }
-
- /* Save latest granule's subband samples to be used in the next mdct call */
-- memcpy(config->l3_sb_sample[ch][0], config->l3_sb_sample[ch][config->mpeg.granules_per_frame], sizeof(config->l3_sb_sample[0][0]));
-+ memcpy(config->l3_sb_sample[ch][0],
-+ config->l3_sb_sample[ch][config->mpeg.granules_per_frame],
-+ sizeof(config->l3_sb_sample[0][0]));
- }
- }
-diff --git a/src/lib/l3mdct.h b/src/lib/l3mdct.h
-index 1288259..3018eb9 100644
---- a/src/lib/l3mdct.h
-+++ b/src/lib/l3mdct.h
-@@ -1,7 +1,9 @@
- #ifndef shine_MDCT_H
- #define shine_MDCT_H
-
--void shine_mdct_initialise();
-+#include "types.h"
-+
-+void shine_mdct_initialise(shine_global_config *config);
- void shine_mdct_sub(shine_global_config *config, int stride);
-
- #endif
-diff --git a/src/lib/l3subband.c b/src/lib/l3subband.c
-index 58abf5f..78f428e 100644
---- a/src/lib/l3subband.c
-+++ b/src/lib/l3subband.c
-@@ -1,8 +1,8 @@
- /* L3SubBand */
-
--#include "types.h"
--#include "tables.h"
- #include "l3subband.h"
-+#include "tables.h"
-+#include "types.h"
-
- /*
- * shine_subband_initialise:
-@@ -11,23 +11,21 @@
- * 9th decimal place accuracy of the filterbank tables in the ISO
- * document. The coefficients are stored in #filter#
- */
--void shine_subband_initialise(shine_global_config *config)
--{
-- int i,j;
-+void shine_subband_initialise(shine_global_config *config) {
-+ int i, j;
- double filter;
-
-- for(i=MAX_CHANNELS; i-- ; ) {
-+ for (i = MAX_CHANNELS; i--;) {
- config->subband.off[i] = 0;
- memset(config->subband.x[i], 0, sizeof(config->subband.x[i]));
- }
-
-- for (i=SBLIMIT; i--; )
-- for (j=64; j--; )
-- {
-- if ((filter = 1e9*cos((double)((2*i+1)*(16-j)*PI64))) >= 0)
-- modf(filter+0.5, &filter);
-+ for (i = SBLIMIT; i--;)
-+ for (j = 64; j--;) {
-+ if ((filter = 1e9 * cos((double)((2 * i + 1) * (16 - j) * PI64))) >= 0)
-+ modf(filter + 0.5, &filter);
- else
-- modf(filter-0.5, &filter);
-+ modf(filter - 0.5, &filter);
- /* scale and convert to fixed point before storing */
- config->subband.fl[i][j] = (int32_t)(filter * (0x7fffffff * 1e-9));
- }
-@@ -39,58 +37,90 @@ void shine_subband_initialise(shine_global_config *config)
- * Overlapping window on PCM samples
- * 32 16-bit pcm samples are scaled to fractional 2's complement and
- * concatenated to the end of the window buffer #x#. The updated window
-- * buffer #x# is then windowed by the analysis window #shine_enwindow# to produce
-- * the windowed sample #z#
-- * Calculates the analysis filter bank coefficients
-- * The windowed samples #z# is filtered by the digital filter matrix #filter#
-- * to produce the subband samples #s#. This done by first selectively
-- * picking out values from the windowed samples, and then multiplying
-- * them by the filter matrix, producing 32 subband samples.
-+ * buffer #x# is then windowed by the analysis window #shine_enwindow# to
-+ * produce the windowed sample #z# Calculates the analysis filter bank
-+ * coefficients The windowed samples #z# is filtered by the digital filter
-+ * matrix #filter# to produce the subband samples #s#. This done by first
-+ * selectively picking out values from the windowed samples, and then
-+ * multiplying them by the filter matrix, producing 32 subband samples.
- */
--void shine_window_filter_subband(int16_t **buffer, int32_t s[SBLIMIT], int ch, shine_global_config *config, int stride)
--{
-+void shine_window_filter_subband(int16_t **buffer, int32_t s[SBLIMIT], int ch,
-+ shine_global_config *config, int stride) {
- int32_t y[64];
-- int i,j;
-+ int i, j;
- int16_t *ptr = *buffer;
-
- /* replace 32 oldest samples with 32 new samples */
-- for (i=32;i--;) {
-- config->subband.x[ch][i+config->subband.off[ch]] = ((int32_t)*ptr) << 16;
-+ for (i = 32; i--;) {
-+ config->subband.x[ch][i + config->subband.off[ch]] = ((int32_t)*ptr) << 16;
- ptr += stride;
- }
- *buffer = ptr;
-
-- for (i=64; i--; ) {
-+ for (i = 64; i--;) {
- int32_t s_value;
-+#ifdef __BORLANDC__
-+ uint32_t s_value_lo;
-+#else
- uint32_t s_value_lo __attribute__((unused));
-+#endif
-
-- mul0 (s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (0<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (0<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (1<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (1<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (2<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (2<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (3<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (3<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (4<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (4<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (5<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (5<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (6<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (6<<6)]);
-- muladd(s_value, s_value_lo, config->subband.x[ch][(config->subband.off[ch] + i + (7<<6)) & (HAN_SIZE-1)], shine_enwindow[i + (7<<6)]);
-- mulz (s_value, s_value_lo);
-+ mul0(s_value, s_value_lo,
-+ config->subband
-+ .x[ch][(config->subband.off[ch] + i + (0 << 6)) & (HAN_SIZE - 1)],
-+ shine_enwindow[i + (0 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (1 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (1 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (2 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (2 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (3 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (3 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (4 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (4 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (5 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (5 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (6 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (6 << 6)]);
-+ muladd(s_value, s_value_lo,
-+ config->subband.x[ch][(config->subband.off[ch] + i + (7 << 6)) &
-+ (HAN_SIZE - 1)],
-+ shine_enwindow[i + (7 << 6)]);
-+ mulz(s_value, s_value_lo);
- y[i] = s_value;
- }
-
-- config->subband.off[ch] = (config->subband.off[ch] + 480) & (HAN_SIZE-1); /* offset is modulo (HAN_SIZE)*/
-+ config->subband.off[ch] = (config->subband.off[ch] + 480) &
-+ (HAN_SIZE - 1); /* offset is modulo (HAN_SIZE)*/
-
-- for (i=SBLIMIT; i--; ) {
-+ for (i = SBLIMIT; i--;) {
- int32_t s_value;
-+#ifdef __BORLANDC__
-+ uint32_t s_value_lo;
-+#else
- uint32_t s_value_lo __attribute__((unused));
-+#endif
-
- mul0(s_value, s_value_lo, config->subband.fl[i][63], y[63]);
-- for (j=63; j; j-=7) {
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-1], y[j-1]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-2], y[j-2]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-3], y[j-3]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-4], y[j-4]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-5], y[j-5]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-6], y[j-6]);
-- muladd(s_value, s_value_lo, config->subband.fl[i][j-7], y[j-7]);
-+ for (j = 63; j; j -= 7) {
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 1], y[j - 1]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 2], y[j - 2]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 3], y[j - 3]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 4], y[j - 4]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 5], y[j - 5]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 6], y[j - 6]);
-+ muladd(s_value, s_value_lo, config->subband.fl[i][j - 7], y[j - 7]);
- }
- mulz(s_value, s_value_lo);
- s[i] = s_value;
-diff --git a/src/lib/l3subband.h b/src/lib/l3subband.h
-index 9bfe861..5cfbef5 100644
---- a/src/lib/l3subband.h
-+++ b/src/lib/l3subband.h
-@@ -1,9 +1,11 @@
- #ifndef L3SUBBAND_H
- #define L3SUBBAND_H
-
-+#include "types.h"
- #include <stdint.h>
-
--void shine_subband_initialise( shine_global_config *config );
--void shine_window_filter_subband(int16_t **buffer, int32_t s[SBLIMIT], int k, shine_global_config *config, int stride);
-+void shine_subband_initialise(shine_global_config *config);
-+void shine_window_filter_subband(int16_t **buffer, int32_t s[SBLIMIT], int k,
-+ shine_global_config *config, int stride);
-
- #endif
-diff --git a/src/lib/layer3.c b/src/lib/layer3.c
-index 0b574ad..f3d1ecd 100644
---- a/src/lib/layer3.c
-+++ b/src/lib/layer3.c
-@@ -1,28 +1,27 @@
- /* layer3.c */
-
--#include "types.h"
--#include "tables.h"
- #include "layer3.h"
--#include "l3subband.h"
--#include "l3mdct.h"
--#include "l3loop.h"
- #include "bitstream.h"
- #include "l3bitstream.h"
-+#include "l3loop.h"
-+#include "l3mdct.h"
-+#include "l3subband.h"
-+#include "tables.h"
-+#include "types.h"
-
- static int granules_per_frame[4] = {
- 1, /* MPEG 2.5 */
-- -1, /* Reserved */
-+ -1, /* Reserved */
- 1, /* MPEG II */
-- 2 /* MPEG I */
-+ 2 /* MPEG I */
- };
-
- /* Set default values for important vars */
--void shine_set_config_mpeg_defaults(shine_mpeg_t *mpeg)
--{
-+void shine_set_config_mpeg_defaults(shine_mpeg_t *mpeg) {
- mpeg->bitr = 128;
- mpeg->emph = NONE;
- mpeg->copyright = 0;
-- mpeg->original = 1;
-+ mpeg->original = 1;
- }
-
- int shine_mpeg_version(int samplerate_index) {
-@@ -38,56 +37,56 @@ int shine_mpeg_version(int samplerate_index) {
- return MPEG_25;
- }
-
--int shine_find_samplerate_index(int freq)
--{
-+int shine_find_samplerate_index(int freq) {
- int i;
-
-- for(i=0;i<9;i++)
-- if(freq==samplerates[i]) return i;
-+ for (i = 0; i < 9; i++)
-+ if (freq == samplerates[i])
-+ return i;
-
- return -1; /* error - not a valid samplerate for encoder */
- }
-
--int shine_find_bitrate_index(int bitr, int mpeg_version)
--{
-+int shine_find_bitrate_index(int bitr, int mpeg_version) {
- int i;
-
-- for(i=0;i<16;i++)
-- if(bitr==bitrates[i][mpeg_version]) return i;
-+ for (i = 0; i < 16; i++)
-+ if (bitr == bitrates[i][mpeg_version])
-+ return i;
-
- return -1; /* error - not a valid samplerate for encoder */
- }
-
--int shine_check_config(int freq, int bitr)
--{
-+int shine_check_config(int freq, int bitr) {
- int samplerate_index, bitrate_index, mpeg_version;
-
- samplerate_index = shine_find_samplerate_index(freq);
-- if (samplerate_index < 0) return -1;
-+ if (samplerate_index < 0)
-+ return -1;
-
- mpeg_version = shine_mpeg_version(samplerate_index);
-
- bitrate_index = shine_find_bitrate_index(bitr, mpeg_version);
-- if (bitrate_index < 0) return -1;
-+ if (bitrate_index < 0)
-+ return -1;
-
- return mpeg_version;
- }
-
--int shine_samples_per_pass(shine_t s)
--{
-+int shine_samples_per_pass(shine_t s) {
- return s->mpeg.granules_per_frame * GRANULE_SIZE;
- }
-
- /* Compute default encoding values. */
--shine_global_config *shine_initialise(shine_config_t *pub_config)
--{
-+shine_global_config *shine_initialise(shine_config_t *pub_config) {
- double avg_slots_per_frame;
- shine_global_config *config;
-
-- if (shine_check_config(pub_config->wave.samplerate, pub_config->mpeg.bitr) < 0)
-+ if (shine_check_config(pub_config->wave.samplerate, pub_config->mpeg.bitr) <
-+ 0)
- return NULL;
-
-- config = calloc(1,sizeof(shine_global_config));
-+ config = calloc(1, sizeof(shine_global_config));
- if (config == NULL)
- return config;
-
-@@ -96,65 +95,71 @@ shine_global_config *shine_initialise(shine_config_t *pub_config)
- shine_loop_initialise(config);
-
- /* Copy public config. */
-- config->wave.channels = pub_config->wave.channels;
-- config->wave.samplerate = pub_config->wave.samplerate;
-- config->mpeg.mode = pub_config->mpeg.mode;
-- config->mpeg.bitr = pub_config->mpeg.bitr;
-- config->mpeg.emph = pub_config->mpeg.emph;
-- config->mpeg.copyright = pub_config->mpeg.copyright;
-- config->mpeg.original = pub_config->mpeg.original;
-+ config->wave.channels = pub_config->wave.channels;
-+ config->wave.samplerate = pub_config->wave.samplerate;
-+ config->mpeg.mode = pub_config->mpeg.mode;
-+ config->mpeg.bitr = pub_config->mpeg.bitr;
-+ config->mpeg.emph = pub_config->mpeg.emph;
-+ config->mpeg.copyright = pub_config->mpeg.copyright;
-+ config->mpeg.original = pub_config->mpeg.original;
-
- /* Set default values. */
-- config->ResvMax = 0;
-- config->ResvSize = 0;
-- config->mpeg.layer = LAYER_III;
-- config->mpeg.crc = 0;
-- config->mpeg.ext = 0;
-- config->mpeg.mode_ext = 0;
-- config->mpeg.bits_per_slot = 8;
--
-- config->mpeg.samplerate_index = shine_find_samplerate_index(config->wave.samplerate);
-- config->mpeg.version = shine_mpeg_version(config->mpeg.samplerate_index);
-- config->mpeg.bitrate_index = shine_find_bitrate_index(config->mpeg.bitr, config->mpeg.version);
-+ config->ResvMax = 0;
-+ config->ResvSize = 0;
-+ config->mpeg.layer = LAYER_III;
-+ config->mpeg.crc = 0;
-+ config->mpeg.ext = 0;
-+ config->mpeg.mode_ext = 0;
-+ config->mpeg.bits_per_slot = 8;
-+
-+ config->mpeg.samplerate_index =
-+ shine_find_samplerate_index(config->wave.samplerate);
-+ config->mpeg.version = shine_mpeg_version(config->mpeg.samplerate_index);
-+ config->mpeg.bitrate_index =
-+ shine_find_bitrate_index(config->mpeg.bitr, config->mpeg.version);
- config->mpeg.granules_per_frame = granules_per_frame[config->mpeg.version];
-
- /* Figure average number of 'slots' per frame. */
-- avg_slots_per_frame = ((double)config->mpeg.granules_per_frame * GRANULE_SIZE /
-- ((double)config->wave.samplerate)) *
-- (1000*(double)config->mpeg.bitr /
-- (double)config->mpeg.bits_per_slot);
-+ avg_slots_per_frame =
-+ ((double)config->mpeg.granules_per_frame * GRANULE_SIZE /
-+ ((double)config->wave.samplerate)) *
-+ (1000 * (double)config->mpeg.bitr / (double)config->mpeg.bits_per_slot);
-
-- config->mpeg.whole_slots_per_frame = (int)avg_slots_per_frame;
-+ config->mpeg.whole_slots_per_frame = (int)avg_slots_per_frame;
-
-- config->mpeg.frac_slots_per_frame = avg_slots_per_frame - (double)config->mpeg.whole_slots_per_frame;
-- config->mpeg.slot_lag = -config->mpeg.frac_slots_per_frame;
-+ config->mpeg.frac_slots_per_frame =
-+ avg_slots_per_frame - (double)config->mpeg.whole_slots_per_frame;
-+ config->mpeg.slot_lag = -config->mpeg.frac_slots_per_frame;
-
-- if(config->mpeg.frac_slots_per_frame==0)
-+ if (config->mpeg.frac_slots_per_frame == 0)
- config->mpeg.padding = 0;
-
- shine_open_bit_stream(&config->bs, BUFFER_SIZE);
-
-- memset((char *)&config->side_info,0,sizeof(shine_side_info_t));
-+ memset((char *)&config->side_info, 0, sizeof(shine_side_info_t));
-
- /* determine the mean bitrate for main data */
- if (config->mpeg.granules_per_frame == 2) /* MPEG 1 */
-- config->sideinfo_len = 8 * ((config->wave.channels==1) ? 4 + 17 : 4 + 32);
-- else /* MPEG 2 */
-- config->sideinfo_len = 8 * ((config->wave.channels==1) ? 4 + 9 : 4 + 17);
-+ config->sideinfo_len = 8 * ((config->wave.channels == 1) ? 4 + 17 : 4 + 32);
-+ else /* MPEG 2 */
-+ config->sideinfo_len = 8 * ((config->wave.channels == 1) ? 4 + 9 : 4 + 17);
-
- return config;
- }
-
--static unsigned char *shine_encode_buffer_internal(shine_global_config *config, int *written, int stride)
--{
-- if(config->mpeg.frac_slots_per_frame)
-- {
-- config->mpeg.padding = (config->mpeg.slot_lag <= (config->mpeg.frac_slots_per_frame - 1.0));
-- config->mpeg.slot_lag += (config->mpeg.padding - config->mpeg.frac_slots_per_frame);
-+static unsigned char *shine_encode_buffer_internal(shine_global_config *config,
-+ int *written, int stride) {
-+ if (config->mpeg.frac_slots_per_frame) {
-+ config->mpeg.padding =
-+ (config->mpeg.slot_lag <= (config->mpeg.frac_slots_per_frame - 1.0));
-+ config->mpeg.slot_lag +=
-+ (config->mpeg.padding - config->mpeg.frac_slots_per_frame);
- }
-
-- config->mpeg.bits_per_frame = 8*(config->mpeg.whole_slots_per_frame + config->mpeg.padding);
-- config->mean_bits = (config->mpeg.bits_per_frame - config->sideinfo_len)/config->mpeg.granules_per_frame;
-+ config->mpeg.bits_per_frame =
-+ 8 * (config->mpeg.whole_slots_per_frame + config->mpeg.padding);
-+ config->mean_bits = (config->mpeg.bits_per_frame - config->sideinfo_len) /
-+ config->mpeg.granules_per_frame;
-
- /* apply mdct to the polyphase output */
- shine_mdct_sub(config, stride);
-@@ -172,8 +177,8 @@ static unsigned char *shine_encode_buffer_internal(shine_global_config *config,
- return config->bs.data;
- }
-
--unsigned char *shine_encode_buffer(shine_global_config *config, int16_t **data, int *written)
--{
-+unsigned char *shine_encode_buffer(shine_global_config *config, int16_t **data,
-+ int *written) {
- config->buffer[0] = data[0];
- if (config->wave.channels == 2)
- config->buffer[1] = data[1];
-@@ -181,8 +186,8 @@ unsigned char *shine_encode_buffer(shine_global_config *config, int16_t **data,
- return shine_encode_buffer_internal(config, written, 1);
- }
-
--unsigned char *shine_encode_buffer_interleaved(shine_global_config *config, int16_t *data, int *written)
--{
-+unsigned char *shine_encode_buffer_interleaved(shine_global_config *config,
-+ int16_t *data, int *written) {
- config->buffer[0] = data;
- if (config->wave.channels == 2)
- config->buffer[1] = data + 1;
-@@ -197,7 +202,6 @@ unsigned char *shine_flush(shine_global_config *config, int *written) {
- return config->bs.data;
- }
-
--
- void shine_close(shine_global_config *config) {
- shine_close_bit_stream(&config->bs);
- free(config);
-diff --git a/src/lib/layer3.h b/src/lib/layer3.h
-index 7fb11e0..d72b6a4 100644
---- a/src/lib/layer3.h
-+++ b/src/lib/layer3.h
-@@ -5,48 +5,31 @@
-
- /* This is the struct used to tell the encoder about the input PCM */
-
--enum channels {
-- PCM_MONO = 1,
-- PCM_STEREO = 2
--};
-+enum channels { PCM_MONO = 1, PCM_STEREO = 2 };
-
--enum mpeg_versions {
-- MPEG_I = 3,
-- MPEG_II = 2,
-- MPEG_25 = 0
--};
-+enum mpeg_versions { MPEG_I = 3, MPEG_II = 2, MPEG_25 = 0 };
-
- /* Only Layer III currently implemented. */
--enum mpeg_layers {
-- LAYER_III = 1
--};
-+enum mpeg_layers { LAYER_III = 1 };
-
- typedef struct {
-- enum channels channels;
-- int samplerate;
-+ enum channels channels;
-+ int samplerate;
- } shine_wave_t;
-
--/* This is the struct the encoder uses to tell the encoder about the output MP3 */
-+/* This is the struct the encoder uses to tell the encoder about the output MP3
-+ */
-
--enum modes {
-- STEREO = 0,
-- JOINT_STEREO = 1,
-- DUAL_CHANNEL = 2,
-- MONO = 3
--};
-+enum modes { STEREO = 0, JOINT_STEREO = 1, DUAL_CHANNEL = 2, MONO = 3 };
-
--enum emph {
-- NONE = 0,
-- MU50_15 = 1,
-- CITT = 3
--};
-+enum emph { NONE = 0, MU50_15 = 1, CITT = 3 };
-
- typedef struct {
-- enum modes mode; /* Stereo mode */
-- int bitr; /* Must conform to known bitrate */
-- enum emph emph; /* De-emphasis */
-- int copyright;
-- int original;
-+ enum modes mode; /* Stereo mode */
-+ int bitr; /* Must conform to known bitrate */
-+ enum emph emph; /* De-emphasis */
-+ int copyright;
-+ int original;
- } shine_mpeg_t;
-
- typedef struct {
-@@ -60,7 +43,7 @@ typedef struct {
- * const int samplerates[9] = {
- * 44100, 48000, 32000, // MPEG-I
- * 22050, 24000, 16000, // MPEG-II
-- * 11025, 12000, 8000 // MPEG-2.5
-+ * 11025, 12000, 8000 // MPEG-2.5
- * };
- *
- * const int bitrates[16][4] = {
-@@ -92,37 +75,37 @@ typedef struct shine_global_flags *shine_t;
- /* Fill in a `mpeg_t` structure with default values. */
- void shine_set_config_mpeg_defaults(shine_mpeg_t *mpeg);
-
--/* Check if a given bitrate is supported by the encoder (see `bitrates` above for a list
-- * of acceptable values. */
-+/* Check if a given bitrate is supported by the encoder (see `bitrates` above
-+ * for a list of acceptable values. */
- int shine_find_bitrate_index(int bitr, int mpeg_version);
-
--/* Check if a given samplerate is supported by the encoder (see `samplerates` above for a list
-- * of acceptable values. */
-+/* Check if a given samplerate is supported by the encoder (see `samplerates`
-+ * above for a list of acceptable values. */
- int shine_find_samplerate_index(int freq);
-
- /* Returns the MPEG version used for the given samplerate index. See above
-- * `mpeg_versions` for a list of possible values. */
-+ * `mpeg_versions` for a list of possible values. */
- int shine_mpeg_version(int samplerate_index);
-
--/* Check if a given bitrate and samplerate is supported by the encoder (see `samplerates`
-- * and `bitrates` above for a list of acceptable values).
-+/* Check if a given bitrate and samplerate is supported by the encoder (see
-+ * `samplerates` and `bitrates` above for a list of acceptable values).
- *
- * Returns -1 on error, mpeg_version on success. */
- int shine_check_config(int freq, int bitr);
-
- /* Pass a pointer to a `config_t` structure and returns an initialized
-- * encoder.
-+ * encoder.
- *
- * Configuration data is copied over to the encoder. It is not possible
- * to change its values after initializing the encoder at the moment.
- *
-- * Checking for valid configuration values is left for the application to
-- * implement. You can use the `shine_find_bitrate_index` and
-- * `shine_find_samplerate_index` functions or the `bitrates` and
-- * `samplerates` arrays above to check those parameters. Mone and stereo
-+ * Checking for valid configuration values is left for the application to
-+ * implement. You can use the `shine_find_bitrate_index` and
-+ * `shine_find_samplerate_index` functions or the `bitrates` and
-+ * `samplerates` arrays above to check those parameters. Mone and stereo
- * mode for wave and mpeg should also be consistent with each other.
- *
-- * This function returns NULL if it was not able to allocate memory data for
-+ * This function returns NULL if it was not able to allocate memory data for
- * the encoder. */
- shine_t shine_initialise(shine_config_t *config);
-
-@@ -132,26 +115,28 @@ shine_t shine_initialise(shine_config_t *config);
- /* Returns audio samples expected in each frame. */
- int shine_samples_per_pass(shine_t s);
-
--/* Encode audio data. Source data must have `shine_samples_per_pass(s)` audio samples per
-- * channels. Mono encoder only expect one channel.
-+/* Encode audio data. Source data must have `shine_samples_per_pass(s)` audio
-+ * samples per channels. Mono encoder only expect one channel.
- *
-- * Returns a pointer to freshly encoded data while `written` contains the size of
-- * available data. This pointer's memory is handled by the library and is only valid
-- * until the next call to `shine_encode_buffer` or `shine_close` and may be NULL if no data
-- * was written. */
-+ * Returns a pointer to freshly encoded data while `written` contains the size
-+ * of available data. This pointer's memory is handled by the library and is
-+ * only valid until the next call to `shine_encode_buffer` or `shine_close` and
-+ * may be NULL if no data was written. */
- unsigned char *shine_encode_buffer(shine_t s, int16_t **data, int *written);
-
--/* Encode interleaved audio data. Source data must have `shine_samples_per_pass(s)` audio samples per
-- * channels. Mono encoder only expect one channel.
-+/* Encode interleaved audio data. Source data must have
-+ * `shine_samples_per_pass(s)` audio samples per channels. Mono encoder only
-+ * expect one channel.
- *
-- * Returns a pointer to freshly encoded data while `written` contains the size of
-- * available data. This pointer's memory is handled by the library and is only valid
-- * until the next call to `shine_encode_buffer` or `shine_close` and may be NULL if no data
-- * was written. */
--unsigned char *shine_encode_buffer_interleaved(shine_t s, int16_t *data, int *written);
--
--/* Flush all data currently in the encoding buffer. Should be used before closing
-- * the encoder, to make all encoded data has been written. */
-+ * Returns a pointer to freshly encoded data while `written` contains the size
-+ * of available data. This pointer's memory is handled by the library and is
-+ * only valid until the next call to `shine_encode_buffer` or `shine_close` and
-+ * may be NULL if no data was written. */
-+unsigned char *shine_encode_buffer_interleaved(shine_t s, int16_t *data,
-+ int *written);
-+
-+/* Flush all data currently in the encoding buffer. Should be used before
-+ * closing the encoder, to make all encoded data has been written. */
- unsigned char *shine_flush(shine_t s, int *written);
-
- /* Close an encoder, freeing all associated memory. Encoder handler is not
-diff --git a/src/lib/mult_mips_gcc.h b/src/lib/mult_mips_gcc.h
-index 092ed84..d49d215 100644
---- a/src/lib/mult_mips_gcc.h
-+++ b/src/lib/mult_mips_gcc.h
-@@ -1,51 +1,50 @@
- #include <stdint.h>
-
--#define mul(a,b) \
--({ \
-- register int32_t res; \
-- __asm__ __volatile__("mult %0, %1" : : "r" (a), "r" (b)); \
-- __asm__ __volatile__("mfhi %0" : "=r" (res)); \
-- res; \
--})
-+#define mul(a, b) \
-+ ({ \
-+ register int32_t res; \
-+ __asm__ __volatile__("mult %0, %1" : : "r"(a), "r"(b)); \
-+ __asm__ __volatile__("mfhi %0" : "=r"(res)); \
-+ res; \
-+ })
-
--#define mul0(hi,lo,a,b) \
-- __asm__ __volatile__("mult %0, %1" : : "r" (a), "r" (b))
-+#define mul0(hi, lo, a, b) \
-+ __asm__ __volatile__("mult %0, %1" : : "r"(a), "r"(b))
-
--#define muladd(hi,lo,a,b) \
-- __asm__ __volatile__("madd %0, %1" : : "r" (a), "r" (b))
-+#define muladd(hi, lo, a, b) \
-+ __asm__ __volatile__("madd %0, %1" : : "r"(a), "r"(b))
-
--#define mulsub(hi,lo,a,b) \
-- __asm__ __volatile__("msub %0, %1" : : "r" (a), "r" (b))
-+#define mulsub(hi, lo, a, b) \
-+ __asm__ __volatile__("msub %0, %1" : : "r"(a), "r"(b))
-
--#define mulz(hi,lo) \
--do { \
-- register int32_t t; \
-- __asm__ __volatile__("mfhi %0" : "=r" (t)); \
-- (hi) = t; \
--} while (0)
-+#define mulz(hi, lo) \
-+ do { \
-+ register int32_t t; \
-+ __asm__ __volatile__("mfhi %0" : "=r"(t)); \
-+ (hi) = t; \
-+ } while (0)
-
--#define cmuls(dre, dim, are, aim, bre, bim) \
--do { \
-- register int32_t t1, t2, tre; \
-- __asm__ __volatile__("mult %0, %1" : : "r" (are), "r" (bre)); \
-- __asm__ __volatile__("msub %0, %1" : : "r" (aim), "r" (bim)); \
-- __asm__ __volatile__("mfhi %0; mflo %1" : "=r" (t1), "=r" (t2)); \
-- tre = (t1 << 1) | ((uint32_t)t2 >> 31); \
-- __asm__ __volatile__("mult %0, %1" : : "r" (are), "r" (bim)); \
-- __asm__ __volatile__("madd %0, %1" : : "r" (bre), "r" (aim)); \
-- dre = tre; \
-- __asm__ __volatile__("mfhi %0; mflo %1" : "=r" (t1), "=r" (t2)); \
-- dim = (t1 << 1) | ((uint32_t)t2 >> 31); \
--} while (0)
-+#define cmuls(dre, dim, are, aim, bre, bim) \
-+ do { \
-+ register int32_t t1, t2, tre; \
-+ __asm__ __volatile__("mult %0, %1" : : "r"(are), "r"(bre)); \
-+ __asm__ __volatile__("msub %0, %1" : : "r"(aim), "r"(bim)); \
-+ __asm__ __volatile__("mfhi %0; mflo %1" : "=r"(t1), "=r"(t2)); \
-+ tre = (t1 << 1) | ((uint32_t)t2 >> 31); \
-+ __asm__ __volatile__("mult %0, %1" : : "r"(are), "r"(bim)); \
-+ __asm__ __volatile__("madd %0, %1" : : "r"(bre), "r"(aim)); \
-+ dre = tre; \
-+ __asm__ __volatile__("mfhi %0; mflo %1" : "=r"(t1), "=r"(t2)); \
-+ dim = (t1 << 1) | ((uint32_t)t2 >> 31); \
-+ } while (0)
-
- #if __mips_isa_rev >= 2
--static inline uint32_t SWAB32(uint32_t x)
--{
-- __asm__(
-- " wsbh %0, %1 \n"
-- " rotr %0, %0, 16 \n"
-- : "=r" (x) : "r" (x));
-- return x;
-+static inline uint32_t SWAB32(uint32_t x) {
-+ __asm__(" wsbh %0, %1 \n"
-+ " rotr %0, %0, 16 \n"
-+ : "=r"(x)
-+ : "r"(x));
-+ return x;
- }
- #define SWAB32 SWAB32
- #endif
-diff --git a/src/lib/mult_noarch_gcc.h b/src/lib/mult_noarch_gcc.h
-index 516e66c..2ee207e 100644
---- a/src/lib/mult_noarch_gcc.h
-+++ b/src/lib/mult_noarch_gcc.h
-@@ -1,34 +1,40 @@
- #include <stdint.h>
-
- #ifndef mul
--#define mul(a,b) (int32_t) ( ( ((int64_t) a) * ((int64_t) b) ) >>32 )
-+#define mul(a, b) (int32_t)((((int64_t)a) * ((int64_t)b)) >> 32)
- #endif
-
- #ifndef muls
--#define muls(a,b) (int32_t) ( ( ((int64_t) a) * ((int64_t) b) ) >>31 )
-+#define muls(a, b) (int32_t)((((int64_t)a) * ((int64_t)b)) >> 31)
- #endif
-
- #ifndef mulr
--#define mulr(a,b) (int32_t) ( ( ( ((int64_t) a) * ((int64_t) b)) + 0x80000000LL ) >>32 )
-+#define mulr(a, b) \
-+ (int32_t)(((((int64_t)a) * ((int64_t)b)) + 0x80000000LL) >> 32)
- #endif
-
- #ifndef mulsr
--#define mulsr(a,b) (int32_t) ( ( ( ((int64_t) a) * ((int64_t) b)) + 0x40000000LL ) >>31 )
-+#define mulsr(a, b) \
-+ (int32_t)(((((int64_t)a) * ((int64_t)b)) + 0x40000000LL) >> 31)
- #endif
-
- #ifndef mul0
--#define mul0(hi,lo,a,b) ((hi) = mul((a), (b)))
--#define muladd(hi,lo,a,b) ((hi) += mul((a), (b)))
--#define mulsub(hi,lo,a,b) ((hi) -= mul((a), (b)))
--#define mulz(hi,lo)
-+#define mul0(hi, lo, a, b) ((hi) = mul((a), (b)))
-+#define muladd(hi, lo, a, b) ((hi) += mul((a), (b)))
-+#define mulsub(hi, lo, a, b) ((hi) -= mul((a), (b)))
-+#define mulz(hi, lo)
- #endif
-
- #ifndef cmuls
--#define cmuls(dre, dim, are, aim, bre, bim) \
--do { \
-- int32_t tre; \
-- (tre) = (int32_t) (((int64_t) (are) * (int64_t) (bre) - (int64_t) (aim) * (int64_t) (bim)) >> 31); \
-- (dim) = (int32_t) (((int64_t) (are) * (int64_t) (bim) + (int64_t) (aim) * (int64_t) (bre)) >> 31); \
-- (dre) = tre; \
--} while (0)
-+#define cmuls(dre, dim, are, aim, bre, bim) \
-+ do { \
-+ int32_t tre; \
-+ (tre) = (int32_t)(((int64_t)(are) * (int64_t)(bre) - \
-+ (int64_t)(aim) * (int64_t)(bim)) >> \
-+ 31); \
-+ (dim) = (int32_t)(((int64_t)(are) * (int64_t)(bim) + \
-+ (int64_t)(aim) * (int64_t)(bre)) >> \
-+ 31); \
-+ (dre) = tre; \
-+ } while (0)
- #endif
-diff --git a/src/lib/mult_sarm_gcc.h b/src/lib/mult_sarm_gcc.h
-index d229eff..0cf8e08 100644
---- a/src/lib/mult_sarm_gcc.h
-+++ b/src/lib/mult_sarm_gcc.h
-@@ -2,108 +2,102 @@
-
- /* Fractional multiply */
- #if __ARM_ARCH >= 6
--#define mul(x,y) \
--({ \
-- register int32_t result; \
-- asm ("smmul %0, %2, %1" : "=r" (result) : "r" (x), "r" (y)); \
-- result ;\
--})
-+#define mul(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smmul %0, %2, %1" : "=r"(result) : "r"(x), "r"(y)); \
-+ result; \
-+ })
- #else
--#define mul(x,y) \
--({ \
-- register int32_t result; \
-- asm ("smull r3, %0, %2, %1" : "=r" (result) : "r" (x), "r" (y) : "r3"); \
-- result ; \
--})
-+#define mul(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smull r3, %0, %2, %1" : "=r"(result) : "r"(x), "r"(y) : "r3"); \
-+ result; \
-+ })
- #endif
-
- /* Fractional multiply with single bit left shift. */
--#define muls(x,y) \
--({ \
-- register int32_t result; \
-- asm ( \
-- "smull r3, %0, %2, %1\n\t" \
-- "movs r3, r3, lsl #1\n\t" \
-- "adc %0, %0, %0" \
-- : "=r" (result) : "r" (x), "r" (y) : "r3", "cc" \
-- ); \
-- result; \
--})
--
-+#define muls(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smull r3, %0, %2, %1\n\t" \
-+ "movs r3, r3, lsl #1\n\t" \
-+ "adc %0, %0, %0" \
-+ : "=r"(result) \
-+ : "r"(x), "r"(y) \
-+ : "r3", "cc"); \
-+ result; \
-+ })
-
- #if __ARM_ARCH >= 6
--#define mulr(x,y) \
--({ \
-- register int32_t result; \
-- asm ( \
-- "smmulr %0, %2, %1" : "=r" (result) : "r" (x), "r" (y) \
-- ); \
-- result; \
--})
-+#define mulr(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smmulr %0, %2, %1" : "=r"(result) : "r"(x), "r"(y)); \
-+ result; \
-+ })
- #else
--#define mulr(x,y) \
--({ \
-- register int32_t result; \
-- asm ( \
-- "smull r3, %0, %2, %1\n\t" \
-- "adds r3, r3, #0x80000000\n\t" \
-- "adc %0, %0, #0" \
-- : "=r" (result) : "r" (x), "r" (y) : "r3", "cc" \
-- ); \
-- result; \
--})
-+#define mulr(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smull r3, %0, %2, %1\n\t" \
-+ "adds r3, r3, #0x80000000\n\t" \
-+ "adc %0, %0, #0" \
-+ : "=r"(result) \
-+ : "r"(x), "r"(y) \
-+ : "r3", "cc"); \
-+ result; \
-+ })
- #endif
-
--#define mulsr(x,y) \
--({ \
-- register int32_t result; \
-- asm ( \
-- "smull r3, %0, %1, %2\n\t" \
-- "movs r3, r3, lsl #1\n\t" \
-- "adc %0, %0, %0\n\t" \
-- "adds r3, r3, #0x80000000\n\t" \
-- "adc %0, %0, #0" \
-- : "=r" (result) : "r" (x), "r" (y) : "r3", "cc" \
-- ); \
-- result; \
--})
-+#define mulsr(x, y) \
-+ ({ \
-+ register int32_t result; \
-+ asm("smull r3, %0, %1, %2\n\t" \
-+ "movs r3, r3, lsl #1\n\t" \
-+ "adc %0, %0, %0\n\t" \
-+ "adds r3, r3, #0x80000000\n\t" \
-+ "adc %0, %0, #0" \
-+ : "=r"(result) \
-+ : "r"(x), "r"(y) \
-+ : "r3", "cc"); \
-+ result; \
-+ })
-
--#define mul0(hi,lo,a,b) \
-- asm ("smull %0, %1, %2, %3" : "=r" (lo), "=r" (hi) : "r" (a), "r" (b))
-+#define mul0(hi, lo, a, b) \
-+ asm("smull %0, %1, %2, %3" : "=r"(lo), "=r"(hi) : "r"(a), "r"(b))
-
--#define muladd(hi,lo,a,b) \
-- asm ("smlal %0, %1, %2, %3" : "+r" (lo), "+r" (hi) : "r" (a), "r" (b))
-+#define muladd(hi, lo, a, b) \
-+ asm("smlal %0, %1, %2, %3" : "+r"(lo), "+r"(hi) : "r"(a), "r"(b))
-
--#define mulsub(hi,lo,a,b) \
-- asm ("smlal %0, %1, %2, %3" : "+r" (lo), "+r" (hi) : "r" (a), "r" (-(b)))
-+#define mulsub(hi, lo, a, b) \
-+ asm("smlal %0, %1, %2, %3" : "+r"(lo), "+r"(hi) : "r"(a), "r"(-(b)))
-
--#define mulz(hi,lo)
-+#define mulz(hi, lo)
-
--#define cmuls(dre, dim, are, aim, bre, bim) \
--do { \
-- register int32_t tre, tim; \
-- asm ( \
-- "smull r3, %0, %2, %4\n\t" \
-- "smlal r3, %0, %3, %5\n\t" \
-- "movs r3, r3, lsl #1\n\t" \
-- "adc %0, %0, %0\n\t" \
-- "smull r3, %1, %2, %6\n\t" \
-- "smlal r3, %1, %4, %3\n\t" \
-- "movs r3, r3, lsl #1\n\t" \
-- "adc %1, %1, %1\n\t" \
-- : "=&r" (tre), "=&r" (tim) \
-- : "r" (are), "r" (aim), "r" (bre), "r" (-(bim)), "r" (bim) \
-- : "r3", "cc" \
-- ); \
-- dre = tre; \
-- dim = tim; \
--} while (0)
-+#define cmuls(dre, dim, are, aim, bre, bim) \
-+ do { \
-+ register int32_t tre, tim; \
-+ asm("smull r3, %0, %2, %4\n\t" \
-+ "smlal r3, %0, %3, %5\n\t" \
-+ "movs r3, r3, lsl #1\n\t" \
-+ "adc %0, %0, %0\n\t" \
-+ "smull r3, %1, %2, %6\n\t" \
-+ "smlal r3, %1, %4, %3\n\t" \
-+ "movs r3, r3, lsl #1\n\t" \
-+ "adc %1, %1, %1\n\t" \
-+ : "=&r"(tre), "=&r"(tim) \
-+ : "r"(are), "r"(aim), "r"(bre), "r"(-(bim)), "r"(bim) \
-+ : "r3", "cc"); \
-+ dre = tre; \
-+ dim = tim; \
-+ } while (0)
-
- #if __ARM_ARCH >= 6
--static inline uint32_t SWAB32(uint32_t x)
--{
-- asm ("rev %0, %1" : "=r" (x) : "r" (x));
-- return x;
-+static inline uint32_t SWAB32(uint32_t x) {
-+ asm("rev %0, %1" : "=r"(x) : "r"(x));
-+ return x;
- }
- #define SWAB32 SWAB32
- #endif
-diff --git a/src/lib/reservoir.c b/src/lib/reservoir.c
-index ca84f3d..cea0a9b 100644
---- a/src/lib/reservoir.c
-+++ b/src/lib/reservoir.c
-@@ -2,13 +2,13 @@
- * Layer3 bit reservoir: Described in C.1.5.4.2.2 of the IS
- */
-
--#include "types.h"
--#include "layer3.h"
--#include "l3loop.h"
--#include "huffman.h"
-+#include "reservoir.h"
- #include "bitstream.h"
-+#include "huffman.h"
- #include "l3bitstream.h"
--#include "reservoir.h"
-+#include "l3loop.h"
-+#include "layer3.h"
-+#include "types.h"
-
- /*
- * shine_max_reservoir_bits:
-@@ -17,36 +17,34 @@
- * allowance for the current granule based on reservoir size
- * and perceptual entropy.
- */
--int shine_max_reservoir_bits (double *pe, shine_global_config *config )
--{
-+int shine_max_reservoir_bits(double *pe, shine_global_config *config) {
- int more_bits, max_bits, add_bits, over_bits;
- int mean_bits = config->mean_bits;
-
- mean_bits /= config->wave.channels;
- max_bits = mean_bits;
-
-- if(max_bits>4095)
-+ if (max_bits > 4095)
- max_bits = 4095;
-- if(!config->ResvMax)
-+ if (!config->ResvMax)
- return max_bits;
-
- more_bits = *pe * 3.1 - mean_bits;
- add_bits = 0;
-- if(more_bits>100)
-- {
-+ if (more_bits > 100) {
- int frac = (config->ResvSize * 6) / 10;
-
-- if(frac<more_bits)
-+ if (frac < more_bits)
- add_bits = frac;
- else
- add_bits = more_bits;
- }
-- over_bits = config->ResvSize - ((config->ResvMax <<3) / 10) - add_bits;
-- if (over_bits>0)
-+ over_bits = config->ResvSize - ((config->ResvMax << 3) / 10) - add_bits;
-+ if (over_bits > 0)
- add_bits += over_bits;
-
- max_bits += add_bits;
-- if(max_bits>4095)
-+ if (max_bits > 4095)
- max_bits = 4095;
- return max_bits;
- }
-@@ -57,9 +55,9 @@ int shine_max_reservoir_bits (double *pe, shine_global_config *config )
- * Called after a granule's bit allocation. Readjusts the size of
- * the reservoir to reflect the granule's usage.
- */
--void shine_ResvAdjust(gr_info *gi, shine_global_config *config )
--{
-- config->ResvSize += (config->mean_bits / config->wave.channels) - gi->part2_3_length;
-+void shine_ResvAdjust(gr_info *gi, shine_global_config *config) {
-+ config->ResvSize +=
-+ (config->mean_bits / config->wave.channels) - gi->part2_3_length;
- }
-
- /*
-@@ -71,8 +69,7 @@ void shine_ResvAdjust(gr_info *gi, shine_global_config *config )
- * part2_3_length. The bitstream formatter will detect this and write the
- * appropriate stuffing bits to the bitstream.
- */
--void shine_ResvFrameEnd(shine_global_config *config )
--{
-+void shine_ResvFrameEnd(shine_global_config *config) {
- gr_info *gi;
- int gr, ch, ancillary_pad, stuffingBits;
- int over_bits;
-@@ -81,42 +78,38 @@ void shine_ResvFrameEnd(shine_global_config *config )
- ancillary_pad = 0;
-
- /* just in case mean_bits is odd, this is necessary... */
-- if((config->wave.channels==2) && (config->mean_bits & 1))
-+ if ((config->wave.channels == 2) && (config->mean_bits & 1))
- config->ResvSize += 1;
-
- over_bits = config->ResvSize - config->ResvMax;
-- if(over_bits<0)
-+ if (over_bits < 0)
- over_bits = 0;
-
- config->ResvSize -= over_bits;
- stuffingBits = over_bits + ancillary_pad;
-
- /* we must be byte aligned */
-- if((over_bits = config->ResvSize % 8))
-- {
-+ if ((over_bits = config->ResvSize % 8)) {
- stuffingBits += over_bits;
- config->ResvSize -= over_bits;
- }
-
-- if(stuffingBits)
-- {
-+ if (stuffingBits) {
- /*
- * plan a: put all into the first granule
- * This was preferred by someone designing a
- * real-time decoder...
- */
-- gi = (gr_info *) &(l3_side->gr[0].ch[0]);
-+ gi = (gr_info *)&(l3_side->gr[0].ch[0]);
-
-- if ( gi->part2_3_length + stuffingBits < 4095 )
-+ if (gi->part2_3_length + stuffingBits < 4095)
- gi->part2_3_length += stuffingBits;
-- else
-- {
-+ else {
- /* plan b: distribute throughout the granules */
-- for (gr = 0; gr < config->mpeg.granules_per_frame; gr++ )
-- for (ch = 0; ch < config->wave.channels; ch++ )
-- {
-+ for (gr = 0; gr < config->mpeg.granules_per_frame; gr++)
-+ for (ch = 0; ch < config->wave.channels; ch++) {
- int extraBits, bitsThisGr;
-- gr_info *gi = (gr_info *) &(l3_side->gr[gr].ch[ch]);
-+ gr_info *gi = (gr_info *)&(l3_side->gr[gr].ch[ch]);
- if (!stuffingBits)
- break;
- extraBits = 4095 - gi->part2_3_length;
-@@ -133,5 +126,3 @@ void shine_ResvFrameEnd(shine_global_config *config )
- }
- }
- }
--
--
-diff --git a/src/lib/reservoir.h b/src/lib/reservoir.h
-index 2f1ffa5..2245778 100644
---- a/src/lib/reservoir.h
-+++ b/src/lib/reservoir.h
-@@ -1,9 +1,11 @@
- #ifndef RESERVOIR_H
- #define RESERVOIR_H
-
-+#include "types.h"
-+
- void shine_ResvFrameBegin(int frameLength, shine_global_config *config);
--int shine_max_reservoir_bits (double *pe, shine_global_config *config);
--void shine_ResvAdjust (gr_info *gi, shine_global_config *config );
--void shine_ResvFrameEnd (shine_global_config *config );
-+int shine_max_reservoir_bits(double *pe, shine_global_config *config);
-+void shine_ResvAdjust(gr_info *gi, shine_global_config *config);
-+void shine_ResvFrameEnd(shine_global_config *config);
-
- #endif
-diff --git a/src/lib/tables.c b/src/lib/tables.c
-index ff7e374..3c63b4f 100644
---- a/src/lib/tables.c
-+++ b/src/lib/tables.c
-@@ -7,120 +7,171 @@
-
- #include "tables.h"
-
--const int shine_slen1_tab[16] = { 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
--const int shine_slen2_tab[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3 };
-+const int shine_slen1_tab[16] = {0, 0, 0, 0, 3, 1, 1, 1,
-+ 2, 2, 2, 3, 3, 3, 4, 4};
-+const int shine_slen2_tab[16] = {0, 1, 2, 3, 0, 1, 2, 3,
-+ 1, 2, 3, 1, 2, 3, 2, 3};
-
- /* Valid samplerates and bitrates. */
- const int samplerates[9] = {
-- 44100, 48000, 32000, /* MPEG-I */
-- 22050, 24000, 16000, /* MPEG-II */
-- 11025, 12000, 8000 /* MPEG-2.5 */
-+ 44100, 48000, 32000, /* MPEG-I */
-+ 22050, 24000, 16000, /* MPEG-II */
-+ 11025, 12000, 8000 /* MPEG-2.5 */
- };
-
- const int bitrates[16][4] = {
-- /* MPEG version:
-- * 2.5, reserved, II, I */
-- { -1, -1, -1, -1},
-- { 8, -1, 8, 32},
-- { 16, -1, 16, 40},
-- { 24, -1, 24, 48},
-- { 32, -1, 32, 56},
-- { 40, -1, 40, 64},
-- { 48, -1, 48, 80},
-- { 56, -1, 56, 96},
-- { 64, -1, 64, 112},
-- { -1, -1, 80, 128},
-- { -1, -1, 96, 160},
-- { -1, -1, 112, 192},
-- { -1, -1, 128, 224},
-- { -1, -1, 144, 256},
-- { -1, -1, 160, 320},
-- { -1, -1, -1, -1}
--};
-+ /* MPEG version:
-+ * 2.5, reserved, II, I */
-+ {-1, -1, -1, -1}, {8, -1, 8, 32}, {16, -1, 16, 40},
-+ {24, -1, 24, 48}, {32, -1, 32, 56}, {40, -1, 40, 64},
-+ {48, -1, 48, 80}, {56, -1, 56, 96}, {64, -1, 64, 112},
-+ {-1, -1, 80, 128}, {-1, -1, 96, 160}, {-1, -1, 112, 192},
-+ {-1, -1, 128, 224}, {-1, -1, 144, 256}, {-1, -1, 160, 320},
-+ {-1, -1, -1, -1}};
-
--const int shine_scale_fact_band_index[9][23] =
--{
-- /* MPEG-I */
-+const int shine_scale_fact_band_index[9][23] = {
-+ /* MPEG-I */
- /* Table B.8.b: 44.1 kHz */
-- {0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576},
-+ {0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62,
-+ 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576},
- /* Table B.8.c: 48 kHz */
-- {0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576},
-+ {0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60,
-+ 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576},
- /* Table B.8.a: 32 kHz */
-- {0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576},
-- /* MPEG-II */
-+ {0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66,
-+ 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576},
-+ /* MPEG-II */
- /* Table B.2.b: 22.05 kHz */
-- {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
-+ {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,
-+ 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
- /* Table B.2.c: 24 kHz */
-- {0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,330,394,464,540,576},
-+ {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,
-+ 114, 136, 162, 194, 232, 278, 330, 394, 464, 540, 576},
- /* Table B.2.a: 16 kHz */
-- {0,6,12,18,24,30,36,44,45,66,80,96,116,140,168,200,238,248,336,396,464,522,576},
-+ {0, 6, 12, 18, 24, 30, 36, 44, 45, 66, 80, 96,
-+ 116, 140, 168, 200, 238, 248, 336, 396, 464, 522, 576},
-
-- /* MPEG-2.5 */
-+ /* MPEG-2.5 */
- /* 11.025 kHz */
-- {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
-+ {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,
-+ 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
- /* 12 kHz */
-- {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
-+ {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,
-+ 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
- /* MPEG-2.5 8 kHz */
-- {0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576},
-+ {0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192,
-+ 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576},
- };
-
- /* note. 0.035781 is shine_enwindow maximum value */
- /* scale and convert to fixed point before storing */
--#define SHINE_EW(x) (int32_t)((double)(x) * 0x7fffffff)
--#define SHINE_EW2(a,b) SHINE_EW(a), SHINE_EW(b)
--#define SHINE_EW10(a,b,c,d,e,f,g,h,i,j) SHINE_EW2(a,b), SHINE_EW2(c,d), SHINE_EW2(e,f), SHINE_EW2(g,h), SHINE_EW2(i,j)
-+#define SHINE_EW(x) (int32_t)((double)(x)*0x7fffffff)
-+#define SHINE_EW2(a, b) SHINE_EW(a), SHINE_EW(b)
-+#define SHINE_EW10(a, b, c, d, e, f, g, h, i, j) \
-+ SHINE_EW2(a, b), SHINE_EW2(c, d), SHINE_EW2(e, f), SHINE_EW2(g, h), \
-+ SHINE_EW2(i, j)
-
- const int32_t shine_enwindow[] = {
--SHINE_EW10( 0.000000, -0.000000, -0.000000, -0.000000, -0.000000, -0.000000, -0.000000, -0.000001, -0.000001, -0.000001),
--SHINE_EW10( -0.000001, -0.000001, -0.000001, -0.000002, -0.000002, -0.000002, -0.000002, -0.000003, -0.000003, -0.000003),
--SHINE_EW10( -0.000004, -0.000004, -0.000005, -0.000005, -0.000006, -0.000007, -0.000008, -0.000008, -0.000009, -0.000010),
--SHINE_EW10( -0.000011, -0.000012, -0.000014, -0.000015, -0.000017, -0.000018, -0.000020, -0.000021, -0.000023, -0.000025),
--SHINE_EW10( -0.000028, -0.000030, -0.000032, -0.000035, -0.000038, -0.000041, -0.000043, -0.000046, -0.000050, -0.000053),
--SHINE_EW10( -0.000056, -0.000060, -0.000063, -0.000066, -0.000070, -0.000073, -0.000077, -0.000081, -0.000084, -0.000087),
--SHINE_EW10( -0.000091, -0.000093, -0.000096, -0.000099, 0.000102, 0.000104, 0.000106, 0.000107, 0.000108, 0.000109),
--SHINE_EW10( 0.000109, 0.000108, 0.000107, 0.000105, 0.000103, 0.000099, 0.000095, 0.000090, 0.000084, 0.000078),
--SHINE_EW10( 0.000070, 0.000061, 0.000051, 0.000040, 0.000027, 0.000014, -0.000001, -0.000017, -0.000034, -0.000053),
--SHINE_EW10( -0.000073, -0.000094, -0.000116, -0.000140, -0.000165, -0.000191, -0.000219, -0.000247, -0.000277, -0.000308),
--SHINE_EW10( -0.000339, -0.000371, -0.000404, -0.000438, -0.000473, -0.000507, -0.000542, -0.000577, -0.000612, -0.000647),
--SHINE_EW10( -0.000681, -0.000714, -0.000747, -0.000779, -0.000810, -0.000839, -0.000866, -0.000892, -0.000915, -0.000936),
--SHINE_EW10( -0.000954, -0.000969, -0.000981, -0.000989, -0.000994, -0.000995, -0.000992, -0.000984, 0.000971, 0.000954),
--SHINE_EW10( 0.000931, 0.000903, 0.000869, 0.000829, 0.000784, 0.000732, 0.000674, 0.000610, 0.000539, 0.000463),
--SHINE_EW10( 0.000379, 0.000288, 0.000192, 0.000088, -0.000021, -0.000137, -0.000260, -0.000388, -0.000522, -0.000662),
--SHINE_EW10( -0.000807, -0.000957, -0.001111, -0.001270, -0.001432, -0.001598, -0.001767, -0.001937, -0.002110, -0.002283),
--SHINE_EW10( -0.002457, -0.002631, -0.002803, -0.002974, -0.003142, -0.003307, -0.003467, -0.003623, -0.003772, -0.003914),
--SHINE_EW10( -0.004049, -0.004175, -0.004291, -0.004396, -0.004490, -0.004570, -0.004638, -0.004691, -0.004728, -0.004749),
--SHINE_EW10( -0.004752, -0.004737, -0.004703, -0.004649, -0.004574, -0.004477, -0.004358, -0.004215, -0.004049, -0.003859),
--SHINE_EW10( -0.003643, -0.003402, 0.003135, 0.002841, 0.002522, 0.002175, 0.001801, 0.001400, 0.000971, 0.000516),
--SHINE_EW10( 0.000033, -0.000476, -0.001012, -0.001574, -0.002162, -0.002774, -0.003411, -0.004072, -0.004756, -0.005462),
--SHINE_EW10( -0.006189, -0.006937, -0.007703, -0.008487, -0.009288, -0.010104, -0.010933, -0.011775, -0.012628, -0.013489),
--SHINE_EW10( -0.014359, -0.015234, -0.016113, -0.016994, -0.017876, -0.018757, -0.019634, -0.020507, -0.021372, -0.022229),
--SHINE_EW10( -0.023074, -0.023907, -0.024725, -0.025527, -0.026311, -0.027074, -0.027815, -0.028533, -0.029225, -0.029890),
--SHINE_EW10( -0.030527, -0.031133, -0.031707, -0.032248, -0.032755, -0.033226, -0.033660, -0.034056, -0.034413, -0.034730),
--SHINE_EW10( -0.035007, -0.035242, -0.035435, -0.035586, -0.035694, -0.035759, 0.035781, 0.035759, 0.035694, 0.035586),
--SHINE_EW10( 0.035435, 0.035242, 0.035007, 0.034730, 0.034413, 0.034056, 0.033660, 0.033226, 0.032755, 0.032248),
--SHINE_EW10( 0.031707, 0.031133, 0.030527, 0.029890, 0.029225, 0.028533, 0.027815, 0.027074, 0.026311, 0.025527),
--SHINE_EW10( 0.024725, 0.023907, 0.023074, 0.022229, 0.021372, 0.020507, 0.019634, 0.018757, 0.017876, 0.016994),
--SHINE_EW10( 0.016113, 0.015234, 0.014359, 0.013489, 0.012628, 0.011775, 0.010933, 0.010104, 0.009288, 0.008487),
--SHINE_EW10( 0.007703, 0.006937, 0.006189, 0.005462, 0.004756, 0.004072, 0.003411, 0.002774, 0.002162, 0.001574),
--SHINE_EW10( 0.001012, 0.000476, -0.000033, -0.000516, -0.000971, -0.001400, -0.001801, -0.002175, -0.002522, -0.002841),
--SHINE_EW10( 0.003135, 0.003402, 0.003643, 0.003859, 0.004049, 0.004215, 0.004358, 0.004477, 0.004574, 0.004649),
--SHINE_EW10( 0.004703, 0.004737, 0.004752, 0.004749, 0.004728, 0.004691, 0.004638, 0.004570, 0.004490, 0.004396),
--SHINE_EW10( 0.004291, 0.004175, 0.004049, 0.003914, 0.003772, 0.003623, 0.003467, 0.003307, 0.003142, 0.002974),
--SHINE_EW10( 0.002803, 0.002631, 0.002457, 0.002283, 0.002110, 0.001937, 0.001767, 0.001598, 0.001432, 0.001270),
--SHINE_EW10( 0.001111, 0.000957, 0.000807, 0.000662, 0.000522, 0.000388, 0.000260, 0.000137, 0.000021, -0.000088),
--SHINE_EW10( -0.000192, -0.000288, -0.000379, -0.000463, -0.000539, -0.000610, -0.000674, -0.000732, -0.000784, -0.000829),
--SHINE_EW10( -0.000869, -0.000903, -0.000931, -0.000954, 0.000971, 0.000984, 0.000992, 0.000995, 0.000994, 0.000989),
--SHINE_EW10( 0.000981, 0.000969, 0.000954, 0.000936, 0.000915, 0.000892, 0.000866, 0.000839, 0.000810, 0.000779),
--SHINE_EW10( 0.000747, 0.000714, 0.000681, 0.000647, 0.000612, 0.000577, 0.000542, 0.000507, 0.000473, 0.000438),
--SHINE_EW10( 0.000404, 0.000371, 0.000339, 0.000308, 0.000277, 0.000247, 0.000219, 0.000191, 0.000165, 0.000140),
--SHINE_EW10( 0.000116, 0.000094, 0.000073, 0.000053, 0.000034, 0.000017, 0.000001, -0.000014, -0.000027, -0.000040),
--SHINE_EW10( -0.000051, -0.000061, -0.000070, -0.000078, -0.000084, -0.000090, -0.000095, -0.000099, -0.000103, -0.000105),
--SHINE_EW10( -0.000107, -0.000108, -0.000109, -0.000109, -0.000108, -0.000107, -0.000106, -0.000104, 0.000102, 0.000099),
--SHINE_EW10( 0.000096, 0.000093, 0.000091, 0.000087, 0.000084, 0.000081, 0.000077, 0.000073, 0.000070, 0.000066),
--SHINE_EW10( 0.000063, 0.000060, 0.000056, 0.000053, 0.000050, 0.000046, 0.000043, 0.000041, 0.000038, 0.000035),
--SHINE_EW10( 0.000032, 0.000030, 0.000028, 0.000025, 0.000023, 0.000021, 0.000020, 0.000018, 0.000017, 0.000015),
--SHINE_EW10( 0.000014, 0.000012, 0.000011, 0.000010, 0.000009, 0.000008, 0.000008, 0.000007, 0.000006, 0.000005),
--SHINE_EW10( 0.000005, 0.000004, 0.000004, 0.000003, 0.000003, 0.000003, 0.000002, 0.000002, 0.000002, 0.000002),
--SHINE_EW10( 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000),
--SHINE_EW2 ( 0.000000, 0.000000)
--};
-+ SHINE_EW10(0.000000, -0.000000, -0.000000, -0.000000, -0.000000, -0.000000,
-+ -0.000000, -0.000001, -0.000001, -0.000001),
-+ SHINE_EW10(-0.000001, -0.000001, -0.000001, -0.000002, -0.000002, -0.000002,
-+ -0.000002, -0.000003, -0.000003, -0.000003),
-+ SHINE_EW10(-0.000004, -0.000004, -0.000005, -0.000005, -0.000006, -0.000007,
-+ -0.000008, -0.000008, -0.000009, -0.000010),
-+ SHINE_EW10(-0.000011, -0.000012, -0.000014, -0.000015, -0.000017, -0.000018,
-+ -0.000020, -0.000021, -0.000023, -0.000025),
-+ SHINE_EW10(-0.000028, -0.000030, -0.000032, -0.000035, -0.000038, -0.000041,
-+ -0.000043, -0.000046, -0.000050, -0.000053),
-+ SHINE_EW10(-0.000056, -0.000060, -0.000063, -0.000066, -0.000070, -0.000073,
-+ -0.000077, -0.000081, -0.000084, -0.000087),
-+ SHINE_EW10(-0.000091, -0.000093, -0.000096, -0.000099, 0.000102, 0.000104,
-+ 0.000106, 0.000107, 0.000108, 0.000109),
-+ SHINE_EW10(0.000109, 0.000108, 0.000107, 0.000105, 0.000103, 0.000099,
-+ 0.000095, 0.000090, 0.000084, 0.000078),
-+ SHINE_EW10(0.000070, 0.000061, 0.000051, 0.000040, 0.000027, 0.000014,
-+ -0.000001, -0.000017, -0.000034, -0.000053),
-+ SHINE_EW10(-0.000073, -0.000094, -0.000116, -0.000140, -0.000165, -0.000191,
-+ -0.000219, -0.000247, -0.000277, -0.000308),
-+ SHINE_EW10(-0.000339, -0.000371, -0.000404, -0.000438, -0.000473, -0.000507,
-+ -0.000542, -0.000577, -0.000612, -0.000647),
-+ SHINE_EW10(-0.000681, -0.000714, -0.000747, -0.000779, -0.000810, -0.000839,
-+ -0.000866, -0.000892, -0.000915, -0.000936),
-+ SHINE_EW10(-0.000954, -0.000969, -0.000981, -0.000989, -0.000994, -0.000995,
-+ -0.000992, -0.000984, 0.000971, 0.000954),
-+ SHINE_EW10(0.000931, 0.000903, 0.000869, 0.000829, 0.000784, 0.000732,
-+ 0.000674, 0.000610, 0.000539, 0.000463),
-+ SHINE_EW10(0.000379, 0.000288, 0.000192, 0.000088, -0.000021, -0.000137,
-+ -0.000260, -0.000388, -0.000522, -0.000662),
-+ SHINE_EW10(-0.000807, -0.000957, -0.001111, -0.001270, -0.001432, -0.001598,
-+ -0.001767, -0.001937, -0.002110, -0.002283),
-+ SHINE_EW10(-0.002457, -0.002631, -0.002803, -0.002974, -0.003142, -0.003307,
-+ -0.003467, -0.003623, -0.003772, -0.003914),
-+ SHINE_EW10(-0.004049, -0.004175, -0.004291, -0.004396, -0.004490, -0.004570,
-+ -0.004638, -0.004691, -0.004728, -0.004749),
-+ SHINE_EW10(-0.004752, -0.004737, -0.004703, -0.004649, -0.004574, -0.004477,
-+ -0.004358, -0.004215, -0.004049, -0.003859),
-+ SHINE_EW10(-0.003643, -0.003402, 0.003135, 0.002841, 0.002522, 0.002175,
-+ 0.001801, 0.001400, 0.000971, 0.000516),
-+ SHINE_EW10(0.000033, -0.000476, -0.001012, -0.001574, -0.002162, -0.002774,
-+ -0.003411, -0.004072, -0.004756, -0.005462),
-+ SHINE_EW10(-0.006189, -0.006937, -0.007703, -0.008487, -0.009288, -0.010104,
-+ -0.010933, -0.011775, -0.012628, -0.013489),
-+ SHINE_EW10(-0.014359, -0.015234, -0.016113, -0.016994, -0.017876, -0.018757,
-+ -0.019634, -0.020507, -0.021372, -0.022229),
-+ SHINE_EW10(-0.023074, -0.023907, -0.024725, -0.025527, -0.026311, -0.027074,
-+ -0.027815, -0.028533, -0.029225, -0.029890),
-+ SHINE_EW10(-0.030527, -0.031133, -0.031707, -0.032248, -0.032755, -0.033226,
-+ -0.033660, -0.034056, -0.034413, -0.034730),
-+ SHINE_EW10(-0.035007, -0.035242, -0.035435, -0.035586, -0.035694, -0.035759,
-+ 0.035781, 0.035759, 0.035694, 0.035586),
-+ SHINE_EW10(0.035435, 0.035242, 0.035007, 0.034730, 0.034413, 0.034056,
-+ 0.033660, 0.033226, 0.032755, 0.032248),
-+ SHINE_EW10(0.031707, 0.031133, 0.030527, 0.029890, 0.029225, 0.028533,
-+ 0.027815, 0.027074, 0.026311, 0.025527),
-+ SHINE_EW10(0.024725, 0.023907, 0.023074, 0.022229, 0.021372, 0.020507,
-+ 0.019634, 0.018757, 0.017876, 0.016994),
-+ SHINE_EW10(0.016113, 0.015234, 0.014359, 0.013489, 0.012628, 0.011775,
-+ 0.010933, 0.010104, 0.009288, 0.008487),
-+ SHINE_EW10(0.007703, 0.006937, 0.006189, 0.005462, 0.004756, 0.004072,
-+ 0.003411, 0.002774, 0.002162, 0.001574),
-+ SHINE_EW10(0.001012, 0.000476, -0.000033, -0.000516, -0.000971, -0.001400,
-+ -0.001801, -0.002175, -0.002522, -0.002841),
-+ SHINE_EW10(0.003135, 0.003402, 0.003643, 0.003859, 0.004049, 0.004215,
-+ 0.004358, 0.004477, 0.004574, 0.004649),
-+ SHINE_EW10(0.004703, 0.004737, 0.004752, 0.004749, 0.004728, 0.004691,
-+ 0.004638, 0.004570, 0.004490, 0.004396),
-+ SHINE_EW10(0.004291, 0.004175, 0.004049, 0.003914, 0.003772, 0.003623,
-+ 0.003467, 0.003307, 0.003142, 0.002974),
-+ SHINE_EW10(0.002803, 0.002631, 0.002457, 0.002283, 0.002110, 0.001937,
-+ 0.001767, 0.001598, 0.001432, 0.001270),
-+ SHINE_EW10(0.001111, 0.000957, 0.000807, 0.000662, 0.000522, 0.000388,
-+ 0.000260, 0.000137, 0.000021, -0.000088),
-+ SHINE_EW10(-0.000192, -0.000288, -0.000379, -0.000463, -0.000539, -0.000610,
-+ -0.000674, -0.000732, -0.000784, -0.000829),
-+ SHINE_EW10(-0.000869, -0.000903, -0.000931, -0.000954, 0.000971, 0.000984,
-+ 0.000992, 0.000995, 0.000994, 0.000989),
-+ SHINE_EW10(0.000981, 0.000969, 0.000954, 0.000936, 0.000915, 0.000892,
-+ 0.000866, 0.000839, 0.000810, 0.000779),
-+ SHINE_EW10(0.000747, 0.000714, 0.000681, 0.000647, 0.000612, 0.000577,
-+ 0.000542, 0.000507, 0.000473, 0.000438),
-+ SHINE_EW10(0.000404, 0.000371, 0.000339, 0.000308, 0.000277, 0.000247,
-+ 0.000219, 0.000191, 0.000165, 0.000140),
-+ SHINE_EW10(0.000116, 0.000094, 0.000073, 0.000053, 0.000034, 0.000017,
-+ 0.000001, -0.000014, -0.000027, -0.000040),
-+ SHINE_EW10(-0.000051, -0.000061, -0.000070, -0.000078, -0.000084, -0.000090,
-+ -0.000095, -0.000099, -0.000103, -0.000105),
-+ SHINE_EW10(-0.000107, -0.000108, -0.000109, -0.000109, -0.000108, -0.000107,
-+ -0.000106, -0.000104, 0.000102, 0.000099),
-+ SHINE_EW10(0.000096, 0.000093, 0.000091, 0.000087, 0.000084, 0.000081,
-+ 0.000077, 0.000073, 0.000070, 0.000066),
-+ SHINE_EW10(0.000063, 0.000060, 0.000056, 0.000053, 0.000050, 0.000046,
-+ 0.000043, 0.000041, 0.000038, 0.000035),
-+ SHINE_EW10(0.000032, 0.000030, 0.000028, 0.000025, 0.000023, 0.000021,
-+ 0.000020, 0.000018, 0.000017, 0.000015),
-+ SHINE_EW10(0.000014, 0.000012, 0.000011, 0.000010, 0.000009, 0.000008,
-+ 0.000008, 0.000007, 0.000006, 0.000005),
-+ SHINE_EW10(0.000005, 0.000004, 0.000004, 0.000003, 0.000003, 0.000003,
-+ 0.000002, 0.000002, 0.000002, 0.000002),
-+ SHINE_EW10(0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
-+ 0.000000, 0.000000, 0.000000, 0.000000),
-+ SHINE_EW2(0.000000, 0.000000)};
-diff --git a/src/lib/tables.h b/src/lib/tables.h
-index 5c94228..fe06502 100644
---- a/src/lib/tables.h
-+++ b/src/lib/tables.h
-@@ -9,8 +9,7 @@ extern const int shine_slen2_tab[16];
- extern const int samplerates[9];
- extern const int bitrates[16][4];
-
--extern const int shine_scale_fact_band_index[9][23];
-+extern const int shine_scale_fact_band_index[9][23];
- extern const int32_t shine_enwindow[];
-
- #endif
--
-diff --git a/src/lib/types.h b/src/lib/types.h
-index f3def1a..11a05fc 100644
---- a/src/lib/types.h
-+++ b/src/lib/types.h
-@@ -2,18 +2,18 @@
- #define PRIV_TYPES_H
-
- #include <stdio.h>
--#include <string.h>
- #include <stdlib.h>
-+#include <string.h>
-
- #include <math.h>
-
--#define GRANULE_SIZE 576
-+#define GRANULE_SIZE 576
-
- #include "bitstream.h"
-
- /* Include arch-specific instructions,
- * when defined. */
--#if defined(__mips__) && (__mips != 64)
-+#if defined(__mips__) && (__mips == 32)
- #include "mult_mips_gcc.h"
- #elif defined(__arm__) && !defined(__thumb__)
- #include "mult_sarm_gcc.h"
-@@ -24,29 +24,32 @@
- #include "mult_noarch_gcc.h"
-
- #ifndef SWAB32
--#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
--#define SWAB32(x) __builtin_bswap32(x)
-+#if defined(__GNUC__) && \
-+ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
-+#define SWAB32(x) __builtin_bswap32(x)
- #else
--#define SWAB32(x) (((unsigned int)(x) >> 24) | (((unsigned int)(x) >> 8) & 0xff00) | (((unsigned int)(x) & 0xff00) << 8) | ((unsigned int)(x) << 24))
-+#define SWAB32(x) \
-+ (((unsigned int)(x) >> 24) | (((unsigned int)(x) >> 8) & 0xff00) | \
-+ (((unsigned int)(x)&0xff00) << 8) | ((unsigned int)(x) << 24))
- #endif
- #endif
-
- /* #define DEBUG if you want the library to dump info to stdout */
-
--#define PI 3.14159265358979
--#define PI4 0.78539816339745
--#define PI12 0.26179938779915
--#define PI36 0.087266462599717
--#define PI64 0.049087385212
--#define SQRT2 1.41421356237
--#define LN2 0.69314718
-+#define PI 3.14159265358979
-+#define PI4 0.78539816339745
-+#define PI12 0.26179938779915
-+#define PI36 0.087266462599717
-+#define PI64 0.049087385212
-+#define SQRT2 1.41421356237
-+#define LN2 0.69314718
- #define LN_TO_LOG10 0.2302585093
--#define BLKSIZE 1024
--#define HAN_SIZE 512 /* for loop unrolling, require that HAN_SIZE%8==0 */
-+#define BLKSIZE 1024
-+#define HAN_SIZE 512 /* for loop unrolling, require that HAN_SIZE%8==0 */
- #define SCALE_BLOCK 12
- #define SCALE_RANGE 64
--#define SCALE 32768
--#define SBLIMIT 32
-+#define SCALE 32768
-+#define SBLIMIT 32
-
- #ifndef MAX_CHANNELS
- #define MAX_CHANNELS 2
-@@ -57,44 +60,44 @@
- #endif
-
- typedef struct {
-- int channels;
-- int samplerate;
-+ int channels;
-+ int samplerate;
- } priv_shine_wave_t;
-
- typedef struct {
-- int version;
-- int layer;
-- int granules_per_frame;
-- int mode; /* + */ /* Stereo mode */
-- int bitr; /* + */ /* Must conform to known bitrate - see Main.c */
-- int emph; /* + */ /* De-emphasis */
-- int padding;
-- int bits_per_frame;
-- int bits_per_slot;
-- double frac_slots_per_frame;
-- double slot_lag;
-- int whole_slots_per_frame;
-- int bitrate_index; /* + */ /* See Main.c and Layer3.c */
-- int samplerate_index; /* + */ /* See Main.c and Layer3.c */
-- int crc;
-- int ext;
-- int mode_ext;
-- int copyright; /* + */
-- int original; /* + */
-+ int version;
-+ int layer;
-+ int granules_per_frame;
-+ int mode; /* + */ /* Stereo mode */
-+ int bitr; /* + */ /* Must conform to known bitrate - see Main.c */
-+ int emph; /* + */ /* De-emphasis */
-+ int padding;
-+ int bits_per_frame;
-+ int bits_per_slot;
-+ double frac_slots_per_frame;
-+ double slot_lag;
-+ int whole_slots_per_frame;
-+ int bitrate_index; /* + */ /* See Main.c and Layer3.c */
-+ int samplerate_index; /* + */ /* See Main.c and Layer3.c */
-+ int crc;
-+ int ext;
-+ int mode_ext;
-+ int copyright; /* + */
-+ int original; /* + */
- } priv_shine_mpeg_t;
-
- typedef struct {
-- int32_t *xr; /* magnitudes of the spectral values */
-- int32_t xrsq[GRANULE_SIZE]; /* xr squared */
-- int32_t xrabs[GRANULE_SIZE]; /* xr absolute */
-- int32_t xrmax; /* maximum of xrabs array */
-- int32_t en_tot[MAX_GRANULES]; /* gr */
-+ int32_t *xr; /* magnitudes of the spectral values */
-+ int32_t xrsq[GRANULE_SIZE]; /* xr squared */
-+ int32_t xrabs[GRANULE_SIZE]; /* xr absolute */
-+ int32_t xrmax; /* maximum of xrabs array */
-+ int32_t en_tot[MAX_GRANULES]; /* gr */
- int32_t en[MAX_GRANULES][21];
- int32_t xm[MAX_GRANULES][21];
- int32_t xrmaxl[MAX_GRANULES];
-- double steptab[128]; /* 2**(-x/4) for x = -127..0 */
-- int32_t steptabi[128]; /* 2**(-x/4) for x = -127..0 */
-- int int2idx[10000]; /* x**(3/4) for x = 0..9999 */
-+ double steptab[128]; /* 2**(-x/4) for x = -127..0 */
-+ int32_t steptabi[128]; /* 2**(-x/4) for x = -127..0 */
-+ int int2idx[10000]; /* x**(3/4) for x = 0..9999 */
- } l3loop_t;
-
- typedef struct {
-@@ -105,7 +108,7 @@ typedef struct {
- int off[MAX_CHANNELS];
- int32_t fl[SBLIMIT][64];
- int32_t x[MAX_CHANNELS][HAN_SIZE];
--} subband_t;
-+} subband_t;
-
- /* Side information */
- typedef struct {
-@@ -130,49 +133,48 @@ typedef struct {
- } gr_info;
-
- typedef struct {
-- unsigned private_bits;
-- int resvDrain;
-- unsigned scfsi[MAX_CHANNELS][4];
-+ unsigned private_bits;
-+ int resvDrain;
-+ unsigned scfsi[MAX_CHANNELS][4];
-+ struct {
- struct {
-- struct {
-- gr_info tt;
-- } ch[MAX_CHANNELS];
-- } gr[MAX_GRANULES];
-+ gr_info tt;
-+ } ch[MAX_CHANNELS];
-+ } gr[MAX_GRANULES];
- } shine_side_info_t;
-
- typedef struct {
-- double l[MAX_GRANULES][MAX_CHANNELS][21];
-+ double l[MAX_GRANULES][MAX_CHANNELS][21];
- } shine_psy_ratio_t;
-
- typedef struct {
-- double l[MAX_GRANULES][MAX_CHANNELS][21];
-+ double l[MAX_GRANULES][MAX_CHANNELS][21];
- } shine_psy_xmin_t;
-
- typedef struct {
-- int32_t l[MAX_GRANULES][MAX_CHANNELS][22]; /* [cb] */
-- int32_t s[MAX_GRANULES][MAX_CHANNELS][13][3]; /* [window][cb] */
-+ int32_t l[MAX_GRANULES][MAX_CHANNELS][22]; /* [cb] */
-+ int32_t s[MAX_GRANULES][MAX_CHANNELS][13][3]; /* [window][cb] */
- } shine_scalefac_t;
-
--
--typedef struct shine_global_flags {
-- priv_shine_wave_t wave;
-- priv_shine_mpeg_t mpeg;
-- bitstream_t bs;
-+typedef struct shine_global_flags {
-+ priv_shine_wave_t wave;
-+ priv_shine_mpeg_t mpeg;
-+ bitstream_t bs;
- shine_side_info_t side_info;
-- int sideinfo_len;
-- int mean_bits;
-+ int sideinfo_len;
-+ int mean_bits;
- shine_psy_ratio_t ratio;
-- shine_scalefac_t scalefactor;
-- int16_t *buffer[MAX_CHANNELS];
-- double pe[MAX_CHANNELS][MAX_GRANULES];
-- int l3_enc[MAX_CHANNELS][MAX_GRANULES][GRANULE_SIZE];
-- int32_t l3_sb_sample[MAX_CHANNELS][MAX_GRANULES+1][18][SBLIMIT];
-- int32_t mdct_freq[MAX_CHANNELS][MAX_GRANULES][GRANULE_SIZE];
-- int ResvSize;
-- int ResvMax;
-- l3loop_t l3loop;
-- mdct_t mdct;
-- subband_t subband;
-+ shine_scalefac_t scalefactor;
-+ int16_t *buffer[MAX_CHANNELS];
-+ double pe[MAX_CHANNELS][MAX_GRANULES];
-+ int l3_enc[MAX_CHANNELS][MAX_GRANULES][GRANULE_SIZE];
-+ int32_t l3_sb_sample[MAX_CHANNELS][MAX_GRANULES + 1][18][SBLIMIT];
-+ int32_t mdct_freq[MAX_CHANNELS][MAX_GRANULES][GRANULE_SIZE];
-+ int ResvSize;
-+ int ResvMax;
-+ l3loop_t l3loop;
-+ mdct_t mdct;
-+ subband_t subband;
- } shine_global_config;
-
- #endif
diff --git a/multimedia/shine/shine.SlackBuild b/multimedia/shine/shine.SlackBuild
index 81d701d8f3..14cac1b0cb 100644
--- a/multimedia/shine/shine.SlackBuild
+++ b/multimedia/shine/shine.SlackBuild
@@ -25,10 +25,12 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=shine
-VERSION=${VERSION:-3.1.1}
+VERSION=${VERSION:-ab5e352_20230101}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+COMMIT=${COMMIT:-ab5e3526b64af1a2eaa43aa6f441a7312e013519}
+COMMITDATE=${COMMITDATE:-20230101}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -67,9 +69,9 @@ trap 'echo "$0 FAILED at line $LINENO!" | tee -a $OUTPUT/error-${PRGNAM}.log' ER
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM-$COMMIT
+tar xvf $CWD/$PRGNAM-$COMMIT.tar.gz
+cd $PRGNAM-$COMMIT
chown -R root:root .
find -L . \
@@ -78,8 +80,6 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-patch -p1 --verbose --unified < $CWD/fix-bugs.patch
-
./bootstrap
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -90,6 +90,8 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
+ --enable-shared \
+ --disable-static \
--build=$ARCH-slackware-linux
make
diff --git a/multimedia/shine/shine.info b/multimedia/shine/shine.info
index 401505a283..32ae886033 100644
--- a/multimedia/shine/shine.info
+++ b/multimedia/shine/shine.info
@@ -1,8 +1,8 @@
PRGNAM="shine"
-VERSION="3.1.1"
+VERSION="ab5e352_20230101"
HOMEPAGE="https://github.com/toots/shine"
-DOWNLOAD="https://github.com/toots/shine/archive/3.1.1/shine-3.1.1.tar.gz"
-MD5SUM="ff41cb139c25470f2d9c9acc9f97cc8d"
+DOWNLOAD="https://github.com/toots/shine/archive/ab5e352/shine-ab5e3526b64af1a2eaa43aa6f441a7312e013519.tar.gz"
+MD5SUM="1f8ac33d4819acf526b5de4a9a5c1bec"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/spot/spot.SlackBuild b/multimedia/spot/spot.SlackBuild
index 5247d6c524..3149a1c5d8 100644
--- a/multimedia/spot/spot.SlackBuild
+++ b/multimedia/spot/spot.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=spot
-VERSION=${VERSION:-0.4.0}
+VERSION=${VERSION:-0.3.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/multimedia/spot/spot.info b/multimedia/spot/spot.info
index 63c2125237..8cc72d3ca2 100644
--- a/multimedia/spot/spot.info
+++ b/multimedia/spot/spot.info
@@ -1,742 +1,700 @@
PRGNAM="spot"
-VERSION="0.4.0"
+VERSION="0.3.3"
HOMEPAGE="https://github.com/xou816/spot"
-DOWNLOAD="https://github.com/xou816/spot/archive/refs/tags/0.4.0/spot-0.4.0.tar.gz \
- https://static.crates.io/crates/addr2line/addr2line-0.19.0.crate \
- https://static.crates.io/crates/adler/adler-1.0.2.crate \
+DOWNLOAD="https://github.com/xou816/spot/archive/refs/tags/0.3.3/spot-0.3.3.tar.gz \
+ https://static.crates.io/crates/kernel32-sys/kernel32-sys-0.2.2.crate \
https://static.crates.io/crates/aes/aes-0.6.0.crate \
- https://static.crates.io/crates/aes/aes-0.7.5.crate \
https://static.crates.io/crates/aes-ctr/aes-ctr-0.6.0.crate \
https://static.crates.io/crates/aes-soft/aes-soft-0.6.4.crate \
https://static.crates.io/crates/aesni/aesni-0.10.0.crate \
- https://static.crates.io/crates/aho-corasick/aho-corasick-0.7.20.crate \
+ https://static.crates.io/crates/aho-corasick/aho-corasick-0.7.18.crate \
+ https://static.crates.io/crates/alsa/alsa-0.5.0.crate \
https://static.crates.io/crates/alsa/alsa-0.6.0.crate \
https://static.crates.io/crates/alsa-sys/alsa-sys-0.3.1.crate \
- https://static.crates.io/crates/android_system_properties/android_system_properties-0.1.5.crate \
- https://static.crates.io/crates/anyhow/anyhow-1.0.69.crate \
- https://static.crates.io/crates/async-broadcast/async-broadcast-0.5.0.crate \
- https://static.crates.io/crates/async-channel/async-channel-1.8.0.crate \
- https://static.crates.io/crates/async-executor/async-executor-1.5.0.crate \
- https://static.crates.io/crates/async-global-executor/async-global-executor-2.3.1.crate \
- https://static.crates.io/crates/async-io/async-io-1.12.0.crate \
- https://static.crates.io/crates/async-lock/async-lock-2.6.0.crate \
- https://static.crates.io/crates/async-recursion/async-recursion-1.0.2.crate \
- https://static.crates.io/crates/async-std/async-std-1.12.0.crate \
- https://static.crates.io/crates/async-task/async-task-4.3.0.crate \
- https://static.crates.io/crates/async-trait/async-trait-0.1.64.crate \
- https://static.crates.io/crates/atomic-waker/atomic-waker-1.1.0.crate \
+ https://static.crates.io/crates/anyhow/anyhow-1.0.53.crate \
+ https://static.crates.io/crates/async-broadcast/async-broadcast-0.3.4.crate \
+ https://static.crates.io/crates/async-channel/async-channel-1.6.1.crate \
+ https://static.crates.io/crates/async-executor/async-executor-1.4.1.crate \
+ https://static.crates.io/crates/async-global-executor/async-global-executor-2.0.2.crate \
+ https://static.crates.io/crates/async-io/async-io-1.6.0.crate \
+ https://static.crates.io/crates/async-lock/async-lock-2.4.0.crate \
+ https://static.crates.io/crates/async-mutex/async-mutex-1.4.0.crate \
+ https://static.crates.io/crates/async-recursion/async-recursion-0.3.2.crate \
+ https://static.crates.io/crates/async-std/async-std-1.10.0.crate \
+ https://static.crates.io/crates/async-task/async-task-4.1.0.crate \
+ https://static.crates.io/crates/async-trait/async-trait-0.1.52.crate \
+ https://static.crates.io/crates/atomic-waker/atomic-waker-1.0.0.crate \
https://static.crates.io/crates/atty/atty-0.2.14.crate \
https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate \
- https://static.crates.io/crates/backtrace/backtrace-0.3.67.crate \
- https://static.crates.io/crates/base64/base64-0.13.1.crate \
- https://static.crates.io/crates/bindgen/bindgen-0.61.0.crate \
+ https://static.crates.io/crates/base64/base64-0.13.0.crate \
+ https://static.crates.io/crates/bindgen/bindgen-0.56.0.crate \
https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
https://static.crates.io/crates/block/block-0.1.6.crate \
https://static.crates.io/crates/block-buffer/block-buffer-0.9.0.crate \
- https://static.crates.io/crates/block-buffer/block-buffer-0.10.3.crate \
- https://static.crates.io/crates/block-modes/block-modes-0.8.1.crate \
+ https://static.crates.io/crates/block-modes/block-modes-0.7.0.crate \
https://static.crates.io/crates/block-padding/block-padding-0.2.1.crate \
- https://static.crates.io/crates/blocking/blocking-1.3.0.crate \
- https://static.crates.io/crates/bumpalo/bumpalo-3.12.0.crate \
+ https://static.crates.io/crates/blocking/blocking-1.1.0.crate \
+ https://static.crates.io/crates/bumpalo/bumpalo-3.9.1.crate \
https://static.crates.io/crates/byteorder/byteorder-1.4.3.crate \
- https://static.crates.io/crates/bytes/bytes-1.4.0.crate \
- https://static.crates.io/crates/cairo-rs/cairo-rs-0.17.0.crate \
- https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.17.0.crate \
+ https://static.crates.io/crates/bytes/bytes-1.1.0.crate \
+ https://static.crates.io/crates/cache-padded/cache-padded-1.2.0.crate \
+ https://static.crates.io/crates/cairo-rs/cairo-rs-0.15.1.crate \
+ https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.15.1.crate \
https://static.crates.io/crates/castaway/castaway-0.1.2.crate \
- https://static.crates.io/crates/cc/cc-1.0.79.crate \
+ https://static.crates.io/crates/cc/cc-1.0.72.crate \
https://static.crates.io/crates/cesu8/cesu8-1.1.0.crate \
- https://static.crates.io/crates/cexpr/cexpr-0.6.0.crate \
- https://static.crates.io/crates/cfg-expr/cfg-expr-0.11.0.crate \
+ https://static.crates.io/crates/cexpr/cexpr-0.4.0.crate \
+ https://static.crates.io/crates/cfg-expr/cfg-expr-0.9.1.crate \
+ https://static.crates.io/crates/cfg-if/cfg-if-0.1.10.crate \
https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate \
- https://static.crates.io/crates/chrono/chrono-0.4.23.crate \
+ https://static.crates.io/crates/chrono/chrono-0.4.19.crate \
https://static.crates.io/crates/cipher/cipher-0.2.5.crate \
- https://static.crates.io/crates/cipher/cipher-0.3.0.crate \
- https://static.crates.io/crates/clang-sys/clang-sys-1.4.0.crate \
- https://static.crates.io/crates/codespan-reporting/codespan-reporting-0.11.1.crate \
- https://static.crates.io/crates/combine/combine-4.6.6.crate \
- https://static.crates.io/crates/concurrent-queue/concurrent-queue-2.1.0.crate \
+ https://static.crates.io/crates/clang-sys/clang-sys-1.3.1.crate \
+ https://static.crates.io/crates/combine/combine-4.6.3.crate \
+ https://static.crates.io/crates/concurrent-queue/concurrent-queue-1.2.2.crate \
https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.3.crate \
https://static.crates.io/crates/coreaudio-rs/coreaudio-rs-0.10.0.crate \
- https://static.crates.io/crates/coreaudio-sys/coreaudio-sys-0.2.11.crate \
+ https://static.crates.io/crates/coreaudio-sys/coreaudio-sys-0.2.9.crate \
https://static.crates.io/crates/cpal/cpal-0.13.5.crate \
- https://static.crates.io/crates/cpufeatures/cpufeatures-0.2.5.crate \
- https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.14.crate \
- https://static.crates.io/crates/crypto-common/crypto-common-0.1.6.crate \
+ https://static.crates.io/crates/cpufeatures/cpufeatures-0.2.1.crate \
+ https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.7.crate \
+ https://static.crates.io/crates/crypto-mac/crypto-mac-0.10.1.crate \
https://static.crates.io/crates/crypto-mac/crypto-mac-0.11.1.crate \
- https://static.crates.io/crates/ctor/ctor-0.1.26.crate \
+ https://static.crates.io/crates/ctor/ctor-0.1.21.crate \
https://static.crates.io/crates/ctr/ctr-0.6.0.crate \
- https://static.crates.io/crates/curl/curl-0.4.44.crate \
- https://static.crates.io/crates/curl-sys/curl-sys-0.4.59+curl-7.86.0.crate \
- https://static.crates.io/crates/cxx/cxx-1.0.90.crate \
- https://static.crates.io/crates/cxx-build/cxx-build-1.0.90.crate \
- https://static.crates.io/crates/cxxbridge-flags/cxxbridge-flags-1.0.90.crate \
- https://static.crates.io/crates/cxxbridge-macro/cxxbridge-macro-1.0.90.crate \
- https://static.crates.io/crates/darling/darling-0.13.4.crate \
- https://static.crates.io/crates/darling_core/darling_core-0.13.4.crate \
- https://static.crates.io/crates/darling_macro/darling_macro-0.13.4.crate \
+ https://static.crates.io/crates/curl/curl-0.4.42.crate \
+ https://static.crates.io/crates/curl-sys/curl-sys-0.4.52+curl-7.81.0.crate \
+ https://static.crates.io/crates/darling/darling-0.13.1.crate \
+ https://static.crates.io/crates/darling_core/darling_core-0.13.1.crate \
+ https://static.crates.io/crates/darling_macro/darling_macro-0.13.1.crate \
https://static.crates.io/crates/derivative/derivative-2.2.0.crate \
https://static.crates.io/crates/digest/digest-0.9.0.crate \
- https://static.crates.io/crates/digest/digest-0.10.6.crate \
- https://static.crates.io/crates/dirs/dirs-4.0.0.crate \
- https://static.crates.io/crates/dirs-sys/dirs-sys-0.3.7.crate \
- https://static.crates.io/crates/encoding_rs/encoding_rs-0.8.32.crate \
- https://static.crates.io/crates/enumflags2/enumflags2-0.7.5.crate \
- https://static.crates.io/crates/enumflags2_derive/enumflags2_derive-0.7.4.crate \
- https://static.crates.io/crates/env_logger/env_logger-0.9.3.crate \
- https://static.crates.io/crates/event-listener/event-listener-2.5.3.crate \
- https://static.crates.io/crates/fastrand/fastrand-1.8.0.crate \
+ https://static.crates.io/crates/easy-parallel/easy-parallel-3.2.0.crate \
+ https://static.crates.io/crates/encoding_rs/encoding_rs-0.8.30.crate \
+ https://static.crates.io/crates/enumflags2/enumflags2-0.6.4.crate \
+ https://static.crates.io/crates/enumflags2/enumflags2-0.7.3.crate \
+ https://static.crates.io/crates/enumflags2_derive/enumflags2_derive-0.6.4.crate \
+ https://static.crates.io/crates/enumflags2_derive/enumflags2_derive-0.7.3.crate \
+ https://static.crates.io/crates/env_logger/env_logger-0.8.4.crate \
+ https://static.crates.io/crates/env_logger/env_logger-0.9.0.crate \
+ https://static.crates.io/crates/event-listener/event-listener-2.5.2.crate \
+ https://static.crates.io/crates/fastrand/fastrand-1.7.0.crate \
https://static.crates.io/crates/field-offset/field-offset-0.3.4.crate \
- https://static.crates.io/crates/fixedbitset/fixedbitset-0.4.2.crate \
https://static.crates.io/crates/fnv/fnv-1.0.7.crate \
- https://static.crates.io/crates/form_urlencoded/form_urlencoded-1.1.0.crate \
- https://static.crates.io/crates/futures/futures-0.3.26.crate \
- https://static.crates.io/crates/futures-channel/futures-channel-0.3.26.crate \
- https://static.crates.io/crates/futures-core/futures-core-0.3.26.crate \
- https://static.crates.io/crates/futures-executor/futures-executor-0.3.26.crate \
- https://static.crates.io/crates/futures-io/futures-io-0.3.26.crate \
+ https://static.crates.io/crates/form_urlencoded/form_urlencoded-1.0.1.crate \
+ https://static.crates.io/crates/futures/futures-0.3.21.crate \
+ https://static.crates.io/crates/futures-channel/futures-channel-0.3.21.crate \
+ https://static.crates.io/crates/futures-core/futures-core-0.3.21.crate \
+ https://static.crates.io/crates/futures-executor/futures-executor-0.3.21.crate \
+ https://static.crates.io/crates/futures-io/futures-io-0.3.21.crate \
https://static.crates.io/crates/futures-lite/futures-lite-1.12.0.crate \
- https://static.crates.io/crates/futures-macro/futures-macro-0.3.26.crate \
- https://static.crates.io/crates/futures-sink/futures-sink-0.3.26.crate \
- https://static.crates.io/crates/futures-task/futures-task-0.3.26.crate \
- https://static.crates.io/crates/futures-util/futures-util-0.3.26.crate \
- https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.17.0.crate \
- https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.17.0.crate \
- https://static.crates.io/crates/gdk4/gdk4-0.6.0.crate \
- https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.6.0.crate \
- https://static.crates.io/crates/generic-array/generic-array-0.14.6.crate \
+ https://static.crates.io/crates/futures-macro/futures-macro-0.3.21.crate \
+ https://static.crates.io/crates/futures-sink/futures-sink-0.3.21.crate \
+ https://static.crates.io/crates/futures-task/futures-task-0.3.21.crate \
+ https://static.crates.io/crates/futures-util/futures-util-0.3.21.crate \
+ https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.15.6.crate \
+ https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.15.1.crate \
+ https://static.crates.io/crates/gdk4/gdk4-0.4.6.crate \
+ https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.4.2.crate \
+ https://static.crates.io/crates/generic-array/generic-array-0.14.5.crate \
https://static.crates.io/crates/getopts/getopts-0.2.21.crate \
- https://static.crates.io/crates/getrandom/getrandom-0.2.8.crate \
+ https://static.crates.io/crates/getrandom/getrandom-0.2.4.crate \
https://static.crates.io/crates/gettext-rs/gettext-rs-0.7.0.crate \
- https://static.crates.io/crates/gettext-sys/gettext-sys-0.21.3.crate \
- https://static.crates.io/crates/gimli/gimli-0.27.1.crate \
- https://static.crates.io/crates/gio/gio-0.17.0.crate \
- https://static.crates.io/crates/gio-sys/gio-sys-0.17.0.crate \
- https://static.crates.io/crates/glib/glib-0.17.1.crate \
- https://static.crates.io/crates/glib-macros/glib-macros-0.17.1.crate \
- https://static.crates.io/crates/glib-sys/glib-sys-0.17.0.crate \
- https://static.crates.io/crates/glob/glob-0.3.1.crate \
- https://static.crates.io/crates/gloo-timers/gloo-timers-0.2.6.crate \
- https://static.crates.io/crates/gobject-sys/gobject-sys-0.17.0.crate \
- https://static.crates.io/crates/graphene-rs/graphene-rs-0.17.1.crate \
- https://static.crates.io/crates/graphene-sys/graphene-sys-0.17.0.crate \
- https://static.crates.io/crates/gsk4/gsk4-0.6.0.crate \
- https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.6.0.crate \
- https://static.crates.io/crates/gtk4/gtk4-0.6.1.crate \
- https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.6.0.crate \
- https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.6.0.crate \
- https://static.crates.io/crates/hashbrown/hashbrown-0.12.3.crate \
- https://static.crates.io/crates/headers/headers-0.3.8.crate \
+ https://static.crates.io/crates/gettext-sys/gettext-sys-0.21.2.crate \
+ https://static.crates.io/crates/gio/gio-0.15.7.crate \
+ https://static.crates.io/crates/gio-sys/gio-sys-0.15.5.crate \
+ https://static.crates.io/crates/glib/glib-0.15.9.crate \
+ https://static.crates.io/crates/glib-macros/glib-macros-0.15.3.crate \
+ https://static.crates.io/crates/glib-sys/glib-sys-0.15.5.crate \
+ https://static.crates.io/crates/glob/glob-0.3.0.crate \
+ https://static.crates.io/crates/gloo-timers/gloo-timers-0.2.3.crate \
+ https://static.crates.io/crates/gobject-sys/gobject-sys-0.15.5.crate \
+ https://static.crates.io/crates/graphene-rs/graphene-rs-0.15.1.crate \
+ https://static.crates.io/crates/graphene-sys/graphene-sys-0.15.1.crate \
+ https://static.crates.io/crates/gsk4/gsk4-0.4.6.crate \
+ https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.4.2.crate \
+ https://static.crates.io/crates/gtk4/gtk4-0.4.6.crate \
+ https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.4.3.crate \
+ https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.4.5.crate \
+ https://static.crates.io/crates/hashbrown/hashbrown-0.11.2.crate \
+ https://static.crates.io/crates/headers/headers-0.3.6.crate \
https://static.crates.io/crates/headers-core/headers-core-0.2.0.crate \
- https://static.crates.io/crates/heck/heck-0.4.1.crate \
+ https://static.crates.io/crates/heck/heck-0.4.0.crate \
https://static.crates.io/crates/hermit-abi/hermit-abi-0.1.19.crate \
- https://static.crates.io/crates/hermit-abi/hermit-abi-0.2.6.crate \
https://static.crates.io/crates/hex/hex-0.4.3.crate \
- https://static.crates.io/crates/hkdf/hkdf-0.12.3.crate \
+ https://static.crates.io/crates/hkdf/hkdf-0.10.0.crate \
+ https://static.crates.io/crates/hmac/hmac-0.10.1.crate \
https://static.crates.io/crates/hmac/hmac-0.11.0.crate \
- https://static.crates.io/crates/hmac/hmac-0.12.1.crate \
https://static.crates.io/crates/hostname/hostname-0.3.1.crate \
- https://static.crates.io/crates/http/http-0.2.8.crate \
- https://static.crates.io/crates/http-body/http-body-0.4.5.crate \
- https://static.crates.io/crates/httparse/httparse-1.8.0.crate \
+ https://static.crates.io/crates/http/http-0.2.6.crate \
+ https://static.crates.io/crates/http-body/http-body-0.4.4.crate \
+ https://static.crates.io/crates/httparse/httparse-1.5.1.crate \
https://static.crates.io/crates/httpdate/httpdate-1.0.2.crate \
https://static.crates.io/crates/humantime/humantime-2.1.0.crate \
- https://static.crates.io/crates/hyper/hyper-0.14.24.crate \
+ https://static.crates.io/crates/hyper/hyper-0.14.16.crate \
https://static.crates.io/crates/hyper-proxy/hyper-proxy-0.9.1.crate \
- https://static.crates.io/crates/iana-time-zone/iana-time-zone-0.1.53.crate \
- https://static.crates.io/crates/iana-time-zone-haiku/iana-time-zone-haiku-0.1.1.crate \
https://static.crates.io/crates/ident_case/ident_case-1.0.1.crate \
- https://static.crates.io/crates/idna/idna-0.3.0.crate \
- https://static.crates.io/crates/if-addrs/if-addrs-0.7.0.crate \
- https://static.crates.io/crates/indexmap/indexmap-1.9.2.crate \
+ https://static.crates.io/crates/idna/idna-0.2.3.crate \
+ https://static.crates.io/crates/if-addrs/if-addrs-0.6.7.crate \
+ https://static.crates.io/crates/if-addrs-sys/if-addrs-sys-0.3.2.crate \
+ https://static.crates.io/crates/indexmap/indexmap-1.8.0.crate \
https://static.crates.io/crates/instant/instant-0.1.12.crate \
- https://static.crates.io/crates/isahc/isahc-1.7.2.crate \
- https://static.crates.io/crates/itoa/itoa-1.0.5.crate \
+ https://static.crates.io/crates/isahc/isahc-1.7.0.crate \
+ https://static.crates.io/crates/itoa/itoa-0.4.8.crate \
+ https://static.crates.io/crates/itoa/itoa-1.0.1.crate \
https://static.crates.io/crates/jni/jni-0.19.0.crate \
https://static.crates.io/crates/jni-sys/jni-sys-0.3.0.crate \
- https://static.crates.io/crates/jobserver/jobserver-0.1.25.crate \
- https://static.crates.io/crates/js-sys/js-sys-0.3.61.crate \
+ https://static.crates.io/crates/jobserver/jobserver-0.1.24.crate \
+ https://static.crates.io/crates/js-sys/js-sys-0.3.56.crate \
https://static.crates.io/crates/kv-log-macro/kv-log-macro-1.0.7.crate \
https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate \
https://static.crates.io/crates/lazycell/lazycell-1.3.0.crate \
https://static.crates.io/crates/lewton/lewton-0.10.2.crate \
- https://static.crates.io/crates/libadwaita/libadwaita-0.3.0.crate \
- https://static.crates.io/crates/libadwaita-sys/libadwaita-sys-0.3.0.crate \
- https://static.crates.io/crates/libc/libc-0.2.139.crate \
- https://static.crates.io/crates/libloading/libloading-0.7.4.crate \
- https://static.crates.io/crates/libm/libm-0.2.6.crate \
- https://static.crates.io/crates/libmdns/libmdns-0.7.4.crate \
+ https://static.crates.io/crates/libadwaita/libadwaita-0.1.0.crate \
+ https://static.crates.io/crates/libadwaita-sys/libadwaita-sys-0.1.0.crate \
+ https://static.crates.io/crates/libc/libc-0.2.117.crate \
+ https://static.crates.io/crates/libloading/libloading-0.7.3.crate \
+ https://static.crates.io/crates/libm/libm-0.2.2.crate \
+ https://static.crates.io/crates/libmdns/libmdns-0.6.2.crate \
https://static.crates.io/crates/libnghttp2-sys/libnghttp2-sys-0.1.7+1.45.0.crate \
- https://static.crates.io/crates/libpulse-binding/libpulse-binding-2.27.1.crate \
- https://static.crates.io/crates/libpulse-simple-binding/libpulse-simple-binding-2.27.1.crate \
- https://static.crates.io/crates/libpulse-simple-sys/libpulse-simple-sys-1.20.1.crate \
- https://static.crates.io/crates/libpulse-sys/libpulse-sys-1.20.1.crate \
- https://static.crates.io/crates/librespot/librespot-0.4.2.crate \
- https://static.crates.io/crates/librespot-audio/librespot-audio-0.4.2.crate \
- https://static.crates.io/crates/librespot-connect/librespot-connect-0.4.2.crate \
- https://static.crates.io/crates/librespot-core/librespot-core-0.4.2.crate \
- https://static.crates.io/crates/librespot-discovery/librespot-discovery-0.4.2.crate \
- https://static.crates.io/crates/librespot-metadata/librespot-metadata-0.4.2.crate \
- https://static.crates.io/crates/librespot-playback/librespot-playback-0.4.2.crate \
- https://static.crates.io/crates/librespot-protocol/librespot-protocol-0.4.2.crate \
- https://static.crates.io/crates/libz-sys/libz-sys-1.1.8.crate \
- https://static.crates.io/crates/link-cplusplus/link-cplusplus-1.0.8.crate \
+ https://static.crates.io/crates/libpulse-binding/libpulse-binding-2.26.0.crate \
+ https://static.crates.io/crates/libpulse-simple-binding/libpulse-simple-binding-2.25.0.crate \
+ https://static.crates.io/crates/libpulse-simple-sys/libpulse-simple-sys-1.19.2.crate \
+ https://static.crates.io/crates/libpulse-sys/libpulse-sys-1.19.3.crate \
+ https://static.crates.io/crates/librespot/librespot-0.3.1.crate \
+ https://static.crates.io/crates/librespot-audio/librespot-audio-0.3.1.crate \
+ https://static.crates.io/crates/librespot-connect/librespot-connect-0.3.1.crate \
+ https://static.crates.io/crates/librespot-core/librespot-core-0.3.1.crate \
+ https://static.crates.io/crates/librespot-discovery/librespot-discovery-0.3.1.crate \
+ https://static.crates.io/crates/librespot-metadata/librespot-metadata-0.3.1.crate \
+ https://static.crates.io/crates/librespot-playback/librespot-playback-0.3.1.crate \
+ https://static.crates.io/crates/librespot-protocol/librespot-protocol-0.3.1.crate \
+ https://static.crates.io/crates/libz-sys/libz-sys-1.1.3.crate \
https://static.crates.io/crates/locale_config/locale_config-0.3.0.crate \
- https://static.crates.io/crates/lock_api/lock_api-0.4.9.crate \
- https://static.crates.io/crates/log/log-0.4.17.crate \
+ https://static.crates.io/crates/lock_api/lock_api-0.4.6.crate \
+ https://static.crates.io/crates/log/log-0.4.14.crate \
https://static.crates.io/crates/mach/mach-0.3.2.crate \
https://static.crates.io/crates/malloc_buf/malloc_buf-0.0.6.crate \
https://static.crates.io/crates/match_cfg/match_cfg-0.1.0.crate \
- https://static.crates.io/crates/memchr/memchr-2.5.0.crate \
+ https://static.crates.io/crates/matches/matches-0.1.9.crate \
+ https://static.crates.io/crates/memchr/memchr-2.4.1.crate \
https://static.crates.io/crates/memoffset/memoffset-0.6.5.crate \
https://static.crates.io/crates/mime/mime-0.3.16.crate \
- https://static.crates.io/crates/minimal-lexical/minimal-lexical-0.2.1.crate \
- https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.6.2.crate \
- https://static.crates.io/crates/mio/mio-0.8.5.crate \
+ https://static.crates.io/crates/mio/mio-0.8.0.crate \
+ https://static.crates.io/crates/miow/miow-0.3.7.crate \
https://static.crates.io/crates/multimap/multimap-0.8.3.crate \
+ https://static.crates.io/crates/nb-connect/nb-connect-1.2.0.crate \
https://static.crates.io/crates/ndk/ndk-0.6.0.crate \
- https://static.crates.io/crates/ndk-context/ndk-context-0.1.1.crate \
- https://static.crates.io/crates/ndk-glue/ndk-glue-0.6.2.crate \
+ https://static.crates.io/crates/ndk-glue/ndk-glue-0.6.0.crate \
https://static.crates.io/crates/ndk-macro/ndk-macro-0.3.0.crate \
https://static.crates.io/crates/ndk-sys/ndk-sys-0.3.0.crate \
- https://static.crates.io/crates/nix/nix-0.23.2.crate \
- https://static.crates.io/crates/nix/nix-0.25.1.crate \
- https://static.crates.io/crates/nom/nom-7.1.3.crate \
- https://static.crates.io/crates/nom8/nom8-0.2.0.crate \
- https://static.crates.io/crates/num/num-0.4.0.crate \
+ https://static.crates.io/crates/nix/nix-0.17.0.crate \
+ https://static.crates.io/crates/nix/nix-0.20.0.crate \
+ https://static.crates.io/crates/nix/nix-0.23.1.crate \
+ https://static.crates.io/crates/nom/nom-5.1.2.crate \
+ https://static.crates.io/crates/ntapi/ntapi-0.3.6.crate \
+ https://static.crates.io/crates/num/num-0.3.1.crate \
+ https://static.crates.io/crates/num-bigint/num-bigint-0.3.3.crate \
https://static.crates.io/crates/num-bigint/num-bigint-0.4.3.crate \
- https://static.crates.io/crates/num-complex/num-complex-0.4.3.crate \
+ https://static.crates.io/crates/num-complex/num-complex-0.3.1.crate \
https://static.crates.io/crates/num-derive/num-derive-0.3.3.crate \
- https://static.crates.io/crates/num-integer/num-integer-0.1.45.crate \
- https://static.crates.io/crates/num-iter/num-iter-0.1.43.crate \
- https://static.crates.io/crates/num-rational/num-rational-0.4.1.crate \
- https://static.crates.io/crates/num-traits/num-traits-0.2.15.crate \
- https://static.crates.io/crates/num_cpus/num_cpus-1.15.0.crate \
- https://static.crates.io/crates/num_enum/num_enum-0.5.9.crate \
- https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.5.9.crate \
+ https://static.crates.io/crates/num-integer/num-integer-0.1.44.crate \
+ https://static.crates.io/crates/num-iter/num-iter-0.1.42.crate \
+ https://static.crates.io/crates/num-rational/num-rational-0.3.2.crate \
+ https://static.crates.io/crates/num-traits/num-traits-0.2.14.crate \
+ https://static.crates.io/crates/num_cpus/num_cpus-1.13.1.crate \
+ https://static.crates.io/crates/num_enum/num_enum-0.5.6.crate \
+ https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.5.6.crate \
https://static.crates.io/crates/objc/objc-0.2.7.crate \
https://static.crates.io/crates/objc-foundation/objc-foundation-0.1.1.crate \
https://static.crates.io/crates/objc_id/objc_id-0.1.1.crate \
- https://static.crates.io/crates/object/object-0.30.3.crate \
- https://static.crates.io/crates/oboe/oboe-0.4.6.crate \
+ https://static.crates.io/crates/oboe/oboe-0.4.5.crate \
https://static.crates.io/crates/oboe-sys/oboe-sys-0.4.5.crate \
https://static.crates.io/crates/ogg/ogg-0.8.0.crate \
- https://static.crates.io/crates/once_cell/once_cell-1.17.0.crate \
+ https://static.crates.io/crates/once_cell/once_cell-1.9.0.crate \
https://static.crates.io/crates/opaque-debug/opaque-debug-0.3.0.crate \
https://static.crates.io/crates/openssl-probe/openssl-probe-0.1.5.crate \
- https://static.crates.io/crates/openssl-sys/openssl-sys-0.9.80.crate \
- https://static.crates.io/crates/ordered-stream/ordered-stream-0.2.0.crate \
- https://static.crates.io/crates/pango/pango-0.17.0.crate \
- https://static.crates.io/crates/pango-sys/pango-sys-0.17.0.crate \
+ https://static.crates.io/crates/openssl-sys/openssl-sys-0.9.72.crate \
+ https://static.crates.io/crates/ordered-stream/ordered-stream-0.0.1.crate \
+ https://static.crates.io/crates/pango/pango-0.15.2.crate \
+ https://static.crates.io/crates/pango-sys/pango-sys-0.15.1.crate \
https://static.crates.io/crates/parking/parking-2.0.0.crate \
https://static.crates.io/crates/parking_lot/parking_lot-0.11.2.crate \
- https://static.crates.io/crates/parking_lot/parking_lot-0.12.1.crate \
- https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.8.6.crate \
- https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.9.7.crate \
+ https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.8.5.crate \
https://static.crates.io/crates/pbkdf2/pbkdf2-0.8.0.crate \
https://static.crates.io/crates/peeking_take_while/peeking_take_while-0.1.2.crate \
- https://static.crates.io/crates/percent-encoding/percent-encoding-2.2.0.crate \
- https://static.crates.io/crates/pest/pest-2.5.5.crate \
- https://static.crates.io/crates/petgraph/petgraph-0.6.3.crate \
- https://static.crates.io/crates/pin-project/pin-project-1.0.12.crate \
- https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.0.12.crate \
- https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.9.crate \
+ https://static.crates.io/crates/percent-encoding/percent-encoding-2.1.0.crate \
+ https://static.crates.io/crates/pest/pest-2.1.3.crate \
+ https://static.crates.io/crates/pin-project/pin-project-1.0.10.crate \
+ https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.0.10.crate \
+ https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.8.crate \
https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate \
- https://static.crates.io/crates/pkg-config/pkg-config-0.3.26.crate \
- https://static.crates.io/crates/polling/polling-2.5.2.crate \
- https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.17.crate \
- https://static.crates.io/crates/priority-queue/priority-queue-1.3.1.crate \
- https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-1.3.0.crate \
+ https://static.crates.io/crates/pkg-config/pkg-config-0.3.24.crate \
+ https://static.crates.io/crates/polling/polling-2.2.0.crate \
+ https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.16.crate \
+ https://static.crates.io/crates/priority-queue/priority-queue-1.2.1.crate \
+ https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-0.1.5.crate \
+ https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-1.1.0.crate \
https://static.crates.io/crates/proc-macro-error/proc-macro-error-1.0.4.crate \
https://static.crates.io/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate \
- https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.51.crate \
- https://static.crates.io/crates/protobuf/protobuf-2.28.0.crate \
- https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.28.0.crate \
- https://static.crates.io/crates/protobuf-codegen-pure/protobuf-codegen-pure-2.28.0.crate \
- https://static.crates.io/crates/quote/quote-1.0.23.crate \
+ https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.36.crate \
+ https://static.crates.io/crates/protobuf/protobuf-2.27.1.crate \
+ https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.27.1.crate \
+ https://static.crates.io/crates/protobuf-codegen-pure/protobuf-codegen-pure-2.27.1.crate \
+ https://static.crates.io/crates/quote/quote-1.0.15.crate \
https://static.crates.io/crates/rand/rand-0.8.5.crate \
https://static.crates.io/crates/rand_chacha/rand_chacha-0.3.1.crate \
- https://static.crates.io/crates/rand_core/rand_core-0.6.4.crate \
+ https://static.crates.io/crates/rand_core/rand_core-0.6.3.crate \
https://static.crates.io/crates/rand_distr/rand_distr-0.4.3.crate \
- https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.16.crate \
- https://static.crates.io/crates/redox_users/redox_users-0.4.3.crate \
+ https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.10.crate \
https://static.crates.io/crates/ref_filter_map/ref_filter_map-1.0.1.crate \
- https://static.crates.io/crates/regex/regex-1.7.1.crate \
- https://static.crates.io/crates/regex-syntax/regex-syntax-0.6.28.crate \
+ https://static.crates.io/crates/regex/regex-1.5.5.crate \
+ https://static.crates.io/crates/regex-syntax/regex-syntax-0.6.25.crate \
https://static.crates.io/crates/remove_dir_all/remove_dir_all-0.5.3.crate \
- https://static.crates.io/crates/rodio/rodio-0.15.0.crate \
- https://static.crates.io/crates/rpassword/rpassword-6.0.1.crate \
- https://static.crates.io/crates/rustc-demangle/rustc-demangle-0.1.21.crate \
+ https://static.crates.io/crates/rodio/rodio-0.14.0.crate \
+ https://static.crates.io/crates/rpassword/rpassword-5.0.1.crate \
https://static.crates.io/crates/rustc-hash/rustc-hash-1.1.0.crate \
https://static.crates.io/crates/rustc_version/rustc_version-0.3.3.crate \
https://static.crates.io/crates/rustc_version/rustc_version-0.4.0.crate \
- https://static.crates.io/crates/ryu/ryu-1.0.12.crate \
+ https://static.crates.io/crates/ryu/ryu-1.0.9.crate \
https://static.crates.io/crates/same-file/same-file-1.0.6.crate \
- https://static.crates.io/crates/schannel/schannel-0.1.21.crate \
+ https://static.crates.io/crates/schannel/schannel-0.1.19.crate \
+ https://static.crates.io/crates/scoped-tls/scoped-tls-1.0.0.crate \
https://static.crates.io/crates/scopeguard/scopeguard-1.1.0.crate \
- https://static.crates.io/crates/scratch/scratch-1.0.3.crate \
- https://static.crates.io/crates/secret-service/secret-service-3.0.1.crate \
+ https://static.crates.io/crates/secret-service/secret-service-2.0.1.crate \
https://static.crates.io/crates/semver/semver-0.11.0.crate \
- https://static.crates.io/crates/semver/semver-1.0.16.crate \
+ https://static.crates.io/crates/semver/semver-1.0.5.crate \
https://static.crates.io/crates/semver-parser/semver-parser-0.10.2.crate \
- https://static.crates.io/crates/serde/serde-1.0.152.crate \
- https://static.crates.io/crates/serde_derive/serde_derive-1.0.152.crate \
- https://static.crates.io/crates/serde_json/serde_json-1.0.93.crate \
- https://static.crates.io/crates/serde_repr/serde_repr-0.1.10.crate \
+ https://static.crates.io/crates/serde/serde-1.0.136.crate \
+ https://static.crates.io/crates/serde_derive/serde_derive-1.0.136.crate \
+ https://static.crates.io/crates/serde_json/serde_json-1.0.79.crate \
+ https://static.crates.io/crates/serde_repr/serde_repr-0.1.7.crate \
https://static.crates.io/crates/sha-1/sha-1-0.9.8.crate \
- https://static.crates.io/crates/sha1/sha1-0.10.5.crate \
- https://static.crates.io/crates/sha2/sha2-0.10.6.crate \
+ https://static.crates.io/crates/sha1/sha1-0.6.1.crate \
+ https://static.crates.io/crates/sha1_smol/sha1_smol-1.0.0.crate \
+ https://static.crates.io/crates/sha2/sha2-0.9.9.crate \
https://static.crates.io/crates/shannon/shannon-0.2.0.crate \
https://static.crates.io/crates/shell-words/shell-words-1.1.0.crate \
- https://static.crates.io/crates/shlex/shlex-1.1.0.crate \
- https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate \
- https://static.crates.io/crates/slab/slab-0.4.7.crate \
+ https://static.crates.io/crates/shlex/shlex-0.1.1.crate \
+ https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.0.crate \
+ https://static.crates.io/crates/slab/slab-0.4.5.crate \
https://static.crates.io/crates/sluice/sluice-0.5.5.crate \
- https://static.crates.io/crates/smallvec/smallvec-1.10.0.crate \
- https://static.crates.io/crates/socket2/socket2-0.4.7.crate \
+ https://static.crates.io/crates/smallvec/smallvec-1.8.0.crate \
+ https://static.crates.io/crates/socket2/socket2-0.4.4.crate \
https://static.crates.io/crates/static_assertions/static_assertions-1.1.0.crate \
https://static.crates.io/crates/stdweb/stdweb-0.1.3.crate \
https://static.crates.io/crates/strsim/strsim-0.10.0.crate \
https://static.crates.io/crates/subtle/subtle-2.4.1.crate \
- https://static.crates.io/crates/syn/syn-1.0.107.crate \
- https://static.crates.io/crates/system-deps/system-deps-6.0.3.crate \
+ https://static.crates.io/crates/syn/syn-1.0.86.crate \
+ https://static.crates.io/crates/synstructure/synstructure-0.12.6.crate \
+ https://static.crates.io/crates/system-deps/system-deps-6.0.1.crate \
https://static.crates.io/crates/temp-dir/temp-dir-0.1.11.crate \
https://static.crates.io/crates/tempfile/tempfile-3.3.0.crate \
- https://static.crates.io/crates/termcolor/termcolor-1.2.0.crate \
- https://static.crates.io/crates/thiserror/thiserror-1.0.38.crate \
- https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.38.crate \
- https://static.crates.io/crates/thread-id/thread-id-4.0.0.crate \
- https://static.crates.io/crates/time/time-0.1.45.crate \
- https://static.crates.io/crates/tinyvec/tinyvec-1.6.0.crate \
- https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate \
- https://static.crates.io/crates/tokio/tokio-1.25.0.crate \
- https://static.crates.io/crates/tokio-macros/tokio-macros-1.8.2.crate \
- https://static.crates.io/crates/tokio-stream/tokio-stream-0.1.11.crate \
- https://static.crates.io/crates/tokio-util/tokio-util-0.7.7.crate \
- https://static.crates.io/crates/toml/toml-0.5.11.crate \
- https://static.crates.io/crates/toml_datetime/toml_datetime-0.5.1.crate \
- https://static.crates.io/crates/toml_edit/toml_edit-0.18.1.crate \
- https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate \
- https://static.crates.io/crates/tracing/tracing-0.1.37.crate \
- https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.23.crate \
- https://static.crates.io/crates/tracing-core/tracing-core-0.1.30.crate \
+ https://static.crates.io/crates/termcolor/termcolor-1.1.2.crate \
+ https://static.crates.io/crates/thiserror/thiserror-1.0.30.crate \
+ https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.30.crate \
+ https://static.crates.io/crates/time/time-0.1.43.crate \
+ https://static.crates.io/crates/tinyvec/tinyvec-1.5.1.crate \
+ https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.0.crate \
+ https://static.crates.io/crates/tokio/tokio-1.17.0.crate \
+ https://static.crates.io/crates/tokio-macros/tokio-macros-1.7.0.crate \
+ https://static.crates.io/crates/tokio-stream/tokio-stream-0.1.8.crate \
+ https://static.crates.io/crates/tokio-util/tokio-util-0.6.9.crate \
+ https://static.crates.io/crates/toml/toml-0.5.8.crate \
+ https://static.crates.io/crates/tower-service/tower-service-0.3.1.crate \
+ https://static.crates.io/crates/tracing/tracing-0.1.30.crate \
+ https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.19.crate \
+ https://static.crates.io/crates/tracing-core/tracing-core-0.1.22.crate \
https://static.crates.io/crates/tracing-futures/tracing-futures-0.2.5.crate \
- https://static.crates.io/crates/try-lock/try-lock-0.2.4.crate \
- https://static.crates.io/crates/typenum/typenum-1.16.0.crate \
- https://static.crates.io/crates/ucd-trie/ucd-trie-0.1.5.crate \
- https://static.crates.io/crates/uds_windows/uds_windows-1.0.2.crate \
- https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.10.crate \
- https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.6.crate \
- https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.22.crate \
- https://static.crates.io/crates/unicode-width/unicode-width-0.1.10.crate \
- https://static.crates.io/crates/url/url-2.3.1.crate \
- https://static.crates.io/crates/uuid/uuid-1.3.0.crate \
- https://static.crates.io/crates/value-bag/value-bag-1.0.0-alpha.9.crate \
+ https://static.crates.io/crates/try-lock/try-lock-0.2.3.crate \
+ https://static.crates.io/crates/typenum/typenum-1.15.0.crate \
+ https://static.crates.io/crates/ucd-trie/ucd-trie-0.1.3.crate \
+ https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.7.crate \
+ https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.19.crate \
+ https://static.crates.io/crates/unicode-width/unicode-width-0.1.9.crate \
+ https://static.crates.io/crates/unicode-xid/unicode-xid-0.2.2.crate \
+ https://static.crates.io/crates/url/url-2.2.2.crate \
+ https://static.crates.io/crates/uuid/uuid-0.8.2.crate \
+ https://static.crates.io/crates/value-bag/value-bag-1.0.0-alpha.8.crate \
https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate \
https://static.crates.io/crates/vergen/vergen-3.2.0.crate \
- https://static.crates.io/crates/version-compare/version-compare-0.1.1.crate \
+ https://static.crates.io/crates/version-compare/version-compare-0.1.0.crate \
https://static.crates.io/crates/version_check/version_check-0.9.4.crate \
+ https://static.crates.io/crates/void/void-1.0.2.crate \
https://static.crates.io/crates/waker-fn/waker-fn-1.1.0.crate \
https://static.crates.io/crates/walkdir/walkdir-2.3.2.crate \
https://static.crates.io/crates/want/want-0.3.0.crate \
- https://static.crates.io/crates/wasi/wasi-0.10.0+wasi-snapshot-preview1.crate \
- https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate \
- https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.84.crate \
- https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.84.crate \
- https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.34.crate \
- https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.84.crate \
- https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.84.crate \
- https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.84.crate \
- https://static.crates.io/crates/web-sys/web-sys-0.3.61.crate \
+ https://static.crates.io/crates/wasi/wasi-0.10.2+wasi-snapshot-preview1.crate \
+ https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.79.crate \
+ https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.79.crate \
+ https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.29.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.79.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.79.crate \
+ https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.79.crate \
+ https://static.crates.io/crates/web-sys/web-sys-0.3.56.crate \
https://static.crates.io/crates/wepoll-ffi/wepoll-ffi-0.1.2.crate \
https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi-util/winapi-util-0.1.5.crate \
https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
- https://static.crates.io/crates/windows-sys/windows-sys-0.42.0.crate \
- https://static.crates.io/crates/windows-sys/windows-sys-0.45.0.crate \
- https://static.crates.io/crates/windows-targets/windows-targets-0.42.1.crate \
- https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.1.crate \
- https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.1.crate \
- https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.42.1.crate \
- https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.42.1.crate \
- https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.1.crate \
- https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.1.crate \
- https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.1.crate \
- https://static.crates.io/crates/zbus/zbus-3.10.0.crate \
- https://static.crates.io/crates/zbus_macros/zbus_macros-3.10.0.crate \
- https://static.crates.io/crates/zbus_names/zbus_names-2.5.0.crate \
- https://static.crates.io/crates/zerocopy/zerocopy-0.6.1.crate \
- https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.3.2.crate \
- https://static.crates.io/crates/zvariant/zvariant-3.11.0.crate \
- https://static.crates.io/crates/zvariant_derive/zvariant_derive-3.11.0.crate"
-MD5SUM="baecd514a5312ce09063632318d74b09 \
- b8e7ee27350aad1efd1cbe7a6a32c551 \
- 669215548c64019c08c92b2c1afd3deb \
+ https://static.crates.io/crates/zbus/zbus-1.9.1.crate \
+ https://static.crates.io/crates/zbus/zbus-2.1.1.crate \
+ https://static.crates.io/crates/zbus_macros/zbus_macros-1.9.1.crate \
+ https://static.crates.io/crates/zbus_macros/zbus_macros-2.1.1.crate \
+ https://static.crates.io/crates/zbus_names/zbus_names-2.1.0.crate \
+ https://static.crates.io/crates/zerocopy/zerocopy-0.3.0.crate \
+ https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.2.0.crate \
+ https://static.crates.io/crates/zvariant/zvariant-2.10.0.crate \
+ https://static.crates.io/crates/zvariant/zvariant-3.1.2.crate \
+ https://static.crates.io/crates/zvariant_derive/zvariant_derive-2.10.0.crate \
+ https://static.crates.io/crates/zvariant_derive/zvariant_derive-3.1.2.crate"
+MD5SUM="1ab5f9d3e76d2e99691c6337c2657d7e \
+ 9d033cc2daa6924420a4a89e6705773f \
bd53a9f0ec43690f84e8c96bba8e538d \
- 815dfe34d3e7a3ab4fdd827fde9e3d04 \
db6f9a586bda62de931be1b2bce9cd34 \
b14b12cd0e866930de1993132c85705b \
58a6326364dbe6f5168f3f3a341f360e \
- 96f06331c915195bce97c8542c0eb728 \
+ 425b8fdf70df59998d9b7c89083e48d1 \
+ fce951b34a5c1b8edb8c104987637fd3 \
bd278d96770173a5298bea9ebdba03f7 \
730ff1a5c2f3becc07743810ad47e66e \
- bf23cd323c33a8c283c41bb9b79e4ce4 \
- ee4e2682a0fe87a36210b97aea8b9634 \
- 1b4533e03596b7ae7c7a3e6ab07a73ae \
- 3b66520f824a5a16dbb507acdcf897d3 \
- 8afc9ce101e88b32ebd62dedc5caf0fd \
- 791074db008026b2bae6850084353574 \
- e0430976e568e5dea0515b49f6e8bb56 \
- c50a8ba12ca56e1c583be8038950a0eb \
- f3e1ce5b1080bac150445a888b32a735 \
- 1aea297795331d5e82ad16b0fca71748 \
- 2fe91c987ca3f910aad12f4913e6e631 \
- 5d2d3892ddd169a55043e2aeb96a5359 \
- b1c7932139530dfc5c984fbba7d40b81 \
+ 7814be2d45d822ba919dc9e6b70ac44e \
+ b2733911430dec241671728239f8924e \
+ 218d9b779b991e39e2e3fd2f299a9864 \
+ 50806ccba0af9b3fdd3e37c6b651059c \
+ 44dc698c2ff129b4592c402dd9a4501a \
+ 8588bed0c242a7e964ac4cf236dbccd2 \
+ ae1a5d749e1a8af706a5c9104bb0923b \
+ 6a5fb43167d44652c51e3ceb9c2b8c23 \
+ c33a5eb809e9f42be5388d47c80f6eeb \
+ 8b03718de9cf7106f0b77b87e1bda5fb \
+ f8e2c3f07b084e1aece1741f58ec28d1 \
+ f3bf7f61aeafc26eea205f0e05f1beea \
+ 6a2f7b82f00aaf8f9124cbae817980ac \
142cb4b9a653e56e56311f0c883b8582 \
05d77ef52e90ad161fdd41b252420467 \
- 58637599fb4e68ecbca68939709aca1a \
- 3d192a852cb456a965c5d64db624c915 \
- 53536a7f4250f679d3aaf112874e08a2 \
+ 80a2c27647a6acb1890a3a7de8fded72 \
+ bbc1b4852c4eb23effe97764def8d1ce \
a295edb6953237ebbdfa8e731229f9a3 \
ea2d23ceb9f98853a7dffc6c02884464 \
c7fbaf61245dc847237ab7c72b3ee9ea \
- 7caa371ca22e7a14288920a69c081d40 \
- 9d5be2ea9722444b02b39f3e70012325 \
+ 25bcf8d84152a1c93f2767715c250779 \
3518756a1af12a80e9c872091cdec5d5 \
- 1907c0d2a97e835ad0a442415e3d4bc1 \
- a931236e210885462e4b4b92ea47e246 \
+ b56e5ae6b74252e4d9b89a06adf510c5 \
+ 79173170388e20507a241b355ef521e3 \
1e704be5ddde9d6b5383ef1035309f91 \
- 596cab766930d487256260ab9ca55b71 \
- 899ea6bce8f704ca9d5e90878179e3a8 \
- 20bceb66cef4cc995d004267009e6a49 \
+ df3ac16302a9dd29508eda92aa402a9b \
+ ca7e295f50617a33e02283d3ef93ff99 \
+ 6d0a8ceae87853ef8947455469cefda9 \
+ 4b84cfa4a4822e326a5dcd8d1bdfd030 \
6473ba7813c7756738489dbc0b6203b9 \
- 7d83f411bb22318c65fec8bbee937ece \
+ 00cc3eeabff68c61e5aacdb5ea9d16ac \
267fc4a374516caa7ab495f0c607c1b4 \
- 10b68ba1e7093d889e9198dcd0ea2a3e \
- ea38f5bb1eaab6580d9ac0d41b230ed1 \
+ dcb58f182347515cab229f836dd8e6d1 \
+ 76d8f58004ba41bc3cd6bcfa48cb229b \
+ 882dbbc613a93f64c3709b0a2bd0d6dc \
74634128440dbc3766bda76fdf0aaa05 \
- 4a9390915b209721b7a1b87e2bb5c571 \
+ 1581b390d17f6e73a43ffc8a7b009e57 \
5184822d3fd9f30dfa4bc922ffa4143c \
- 5f2578209a4d7964623462e402375ac0 \
- 7c28deaed5c3327645cffe40430aecf0 \
- faa32da3be14130a4525bb7ba601c62e \
- 8b15d333a98fc02a34909961900246a4 \
- f6af8b98a829bb06cffbf425e5694e5e \
+ ad93a9f51606d9d5eba5c8c057a14f14 \
+ 457e008da6d6f7863eb8b037d61ec5c2 \
+ f637bf20fac185ee2687bb2a08325e59 \
d05cbf26ed52299487a802688a1d22cb \
092c01b71d220e9e742d1ce83040f9ba \
- 2d596b8162dae46a0c1aeb05020ae35d \
+ adb22c60d90fc92bce0e9e0cad12eab8 \
5c0b974591c88858125a1bb4e64d7bdc \
- ebdc1f779823eaad615501b1cd3822b1 \
- 9924872c20a6be30ea1120cd899d2c18 \
- 89e88633cab0e4b6f3d3878b84dffe8b \
+ 70afc41079e42a402066ce556552a478 \
+ 26a9ff1052f12176f2d168f1e41b339e \
+ f77fc9fd7b24926d6cfc9881cc0efab8 \
ed0342f94ffebe96d5650f55c23b12a1 \
- 39cd2aade20a2eab4779f1a3db530209 \
+ 10c9ec124683092e8fc0cb93ce0de640 \
cf52970ee52905ad114b93571dd9c6c6 \
- 2055aa2a8c9da89dadfd1e9012a26a20 \
- 6c14cc803de55e30a66331bb24e626d1 \
- d422955b622bd73be3e85d4e8fd2e2ca \
- 8dd01b9b3dadff7246c8afdc079f68ff \
- bd7e89cd9afc8d87dfa1f59eb403ea44 \
- aa1b8e906b7459f042f80b6574ee23e1 \
- f28e4363b28774af3f8127ed40bcdc9f \
- c1713950e7088b216d011fc5c2bdd661 \
- 6129e036328e2ec678c8d5d9be3c5e59 \
+ 603aaa62874e458ebecb55bd8b249edb \
+ 8a4686ec3b3d644f70e6780462a755b1 \
+ 3391bb3a172bd8aab0c0dc61b31c459c \
+ d39ccc2276d4c0b11ee46aa82d31acb5 \
+ 4c5c5dd84fee3aa2dc530702bddc85e8 \
59978ef7bcea7bc55e24d06a2d32a32c \
493a2f042d86baa5c6bac75202c64554 \
- 732c54e5b65b869d7301eec81c97f6a1 \
- 889fdcd1499ef5939caaafab5c09729e \
- 4c21da37e71a52f26c8c5490f3ec4837 \
- 28925d0d3649d0577f07bc9ab288999c \
- 7718afd363b2ef45c28cbe9e06b562c5 \
- 1370f13d01572cc80e4a11bfbecd73c6 \
- c25e1a69f2d40b3f6f8dae4b4459413d \
- 65934957ea79137686ded549467e1329 \
- d59e1fe9834d52c50e2414a34945e479 \
+ baac29564e83e3957b1976f3a1d92ba6 \
+ a6242be0e2040974cb83dc7c4c67b761 \
+ 8c1bba1510c915f915a9eca6fa95f476 \
+ 19070d2b1f030565e3d994df2fd9cb6c \
+ 3d2977b047e366303274ab03ebef1c2b \
+ 9f40837910054385d663c557f735b03a \
+ 3fa75bcd254d37247ec3e97bad1dd445 \
+ 33ee4fa20d181488961006de02740b50 \
+ 782fd3cac41045c0d89d69b90012d8b7 \
+ e08921c68133df2e254fe723b368bae3 \
52f1c0adc1d0fb68e8608b8c4faa3c71 \
- a1e1c92075e77d61acf61a094a68fa61 \
8dab3b3ec00dc56cffde0b0c410d47b5 \
- 357f2bcdc622476ad883fe9d07f874c3 \
- 316fcebbe23696d8e2ec15617d4f5cb3 \
- 33c6a65a07354886102e917783ba4e13 \
- 5329468d3efc2b43dd628f8bdb4397e5 \
- 50217439ab76fc1ee930bf4df3804799 \
- af48680d31f067c33ef15f9a2a91c713 \
+ 7ee8703970c3fa6a2e37893de742824b \
+ bece18dd831ac2ce1e26e92271e6d832 \
+ 5d404b52af03b999e7fb74fbe16d3bd0 \
+ 8aa040d9c661f68ebb67d5b71813473b \
+ 1e0ad6e5cdab371cabd218748fee9b6d \
+ 74d9ab54981e8f02e7eb683ac0a8a6b9 \
3763e6c936b1accbd2e9a7c8118793e0 \
- d641a02cecdf39645bef945598d49b35 \
- 1736d597947715518fb4928a67e37af3 \
- 53030efc4eb919791407c0b49790ffc3 \
- 49ccc67d2ee6e8506790f4bb551340bc \
- e567b304bfe4a274f7e974bd4c63ec3c \
- 0d0c5c91c20090babcfe008a5c59a490 \
- bd1291c8e5cb564d5418e874814c774e \
- 0cec39953242b532648f356dba65d0a0 \
- e3480971fb7f7462149056fd70df74e2 \
+ 750ca4b374c5cd501a612a841f7362a9 \
+ a46bd303e3155f7975b167af12435e5e \
+ 1ab2952ce15d2f9cfe279821274133eb \
+ 8071e8e030bee77619611dbb4e508864 \
+ 32c8f5f8523fd26925e2a6495604bb93 \
+ 53c91805e78e1ab2a34282be3aecbe94 \
+ 324bb5f02dba12add6dc16c10bfbce6c \
+ e62727696767b6ef195e3b50e42817c1 \
+ 4824dbe307f1d20e74a4ebad2b7e4d6e \
c3ec5977ecc0f6244ef3be87f5325e72 \
- 7e3435db94bbfde52efb6e639cfff542 \
+ d3f5e27649cc6184d1bca2d065d2a092 \
bb072f15d5e4067bea6933a4fbeb9c0a \
- 9486190bcfe1c4af6a50d265a113ac12 \
- eff6e29698ea257ad7fb7dd1e388e2e4 \
- 8290950f13be0f28845795158c343ce7 \
- 069aa7ed2552b2623af2a8e282baffb0 \
- 73f6c15be7000350ba8970c9c6545269 \
- 93bf413572d8ae35ce16f82b533e1b8a \
- 0c938328d6424744c46943938ed6a4ee \
- 2d6d28ec311884da69bcaf320ada8ad5 \
- 606e9b910c315b6197ba83fad7dd13a0 \
- 276a77a39cba360dfb2f45df2d71be9a \
- 509f1c8b700b622dd92656b3877f3f89 \
- e4abcad3267eb3d01687e21d46992235 \
- acf918834a1556abdbcda627816f3ff3 \
- dc1e00a2654c3b921658d01e1c617539 \
- ce8b343f8221ffb572b3a5b2b0702249 \
- b9f1f29a4012cc3c7bce83511f40c5b5 \
- f4e9294066cbc6503b6e0ef703a6b565 \
- 1b41b97d982520b7364a87a39e2a1ed8 \
- d7c035eba93308f73ce4f04ae2c9a674 \
+ 92f23eb502ec2add616257ca9ea8823e \
+ 27e0b5429881ec07a10c75803f572312 \
+ 7bfceacb0504ab8f7cc961f0c81bb844 \
+ 60134448c463c3e2645353f8de19f669 \
+ fe5d62a5aa97e780833348f5d9a6ec9b \
+ 3d41dae1c09c54f19d224f58e98e5a89 \
+ e7c07242a95ee1df865efe9534e10a34 \
+ 8d0a78969cbc0ceb1787bcd02430cefd \
+ 6d39e92a8d9bac6e8613eae79b4ac637 \
+ 97a0c8bef92ca2df111b6067deea1630 \
+ 8dbc13bf4848e7a0f39572be8c9c319c \
+ 5af6733a9e5107b2df46a32fa1e1ef7b \
+ dd838e84196263901190504f44053a5f \
+ 474ea5fc0ec36be109eba41e9ff92595 \
+ 799f84552a7a943a492fb3f27f1d6b1e \
+ 8488e9acd924b1baf4f97cbb3ca418f6 \
+ 62b3edf8c2db7fccb1a6a41134b84e62 \
+ d84097823667ed4c3f938da04a13992c \
0372a8de508e57da4d4869f058bcb630 \
- b92fa50f56a1e06a7f1bf665442d4a73 \
+ 4fd75413081a400a1c230f0700732611 \
0b7994d1256215201bdfb810a357ffa2 \
- 4bb3ee6be8ce77402250dd0d0f26e131 \
1d3e530a3410fc95a6987d70f84a6332 \
- 761cd5ae202c54efba117f5d68c57756 \
+ ff7c38e023578064f54c98f7b0f7d2c2 \
+ b57599fc2bb8cfd76567e656070d0d72 \
656eb112c9634812796a81803b04a3e6 \
- 4e0c068ba38fa8e0aa6c46bce5e9d2ab \
d15066ccf2d33bbd8afdb9036ba47da5 \
- 5a454a33646271c81e6b2f70e8ca1b83 \
- c21c16e3bdc619cf65a31b23136d62ce \
- 92968aee56cb2f162a55008fedddbb78 \
+ df09b038f991ff902161d83159d4871a \
+ e685b43c1f198999c125bc7bbe084ab3 \
+ e40d2efcee31e346fbc82277683422ea \
4918da28fbc2f6888ad71c159996a9b5 \
c01022fe0357c10ca1d48b16187f81bd \
- 2dd38d9f88feab3e6067874e535dc758 \
+ 8e87a3c1697ca04a19ebde7187f15156 \
31667fab2083c342c85bb51c2cba6d58 \
- b6c59717dc5601672c3e73fa2258e64c \
- 1e49f16311d2a62e44c05750c0ec0dc7 \
fe77a3f609b6fd8d5b08f3b2ef14d2ad \
- c3425a02781d0bb3c4f8d5d025d12266 \
- 237b55fa488d3be0c5c6c0aba4dfa913 \
- 7e70355483fc2559770b4db2ff32bcde \
+ f50aaf5171cbc0327f8d18a4ec7405fb \
+ c3fe94727289a0f8f47b149810022900 \
+ df401fb6d6fe40c02ecea514716ee96a \
+ bd04a204662b00e7d773d0a753bd0928 \
5f153f7135dceb02f88266121c836b4e \
- bab7df9c671c07b763e33245de65336b \
- f2ffcbe94a83f2437ffe47d7dbf4ad04 \
+ 057d52b1e2b951597cc4a82876e7646b \
+ 06e7dbde9932c6a9bac63d9288670678 \
+ 5c98b89b530b563b6e5f6e1b631c4b35 \
b30ef1414dde99d96e89aeea2b3fc094 \
73272fe4aadb91d550dca8fc7ead8bf7 \
- 75e2156746dcd795a4fcfeee4ce4953f \
- 0779350c00b03603f72eef7f737686ad \
+ 3aefa31e8413112958290a6ca004b096 \
+ 60bcdfbbaca59d4c147f4fa11c592c68 \
e155c3d45440413eec6db44f68a21b69 \
fba3b040a55c01be7376d3dd5c4d4920 \
23cc9e52c52465f5b225e62ab7cc3457 \
d3d110551104b00b42c9920958939391 \
- 1286030c54134a42189f312a2671fa87 \
- 0f36c4a4835a1163b5c070ea94ababff \
- 2f4991ee29e75b732dbfbbe637506066 \
- 02e14c7718a87f6c90ba05b62fd5c706 \
- 5cef28504e265f32f3caec4684a5ead2 \
- 738cf4fc881596b1977847f0d393bfd2 \
+ 03f9ff96b48b1a661e6804fe63d7d6a2 \
+ c34dcfcdcf62d89900e94a6a7b1ed0d7 \
+ 7077d380579b979cd864756ac90e3f9c \
+ a087f8a5947ecf4e734ac9cfe695469c \
+ 0764d84de2302fda8d1d72b95f31a0b8 \
+ cc9ba5bc2cc1f60765c57f5d6cc10042 \
a63fa50b0954c349c74980347253f06e \
- 918e7eb38af0848dc112f929e73718a0 \
- 27688de4059dd10d56d79dc3db1e8786 \
- 06a6fac6e221a2496763bd255609c35e \
- 13ce2239c2c3873c6ea715c5d70a6021 \
- 7b9e2b22daa94d69a7e8515ae7ad3a1d \
- d5619cd692cdf95bddb994fa4351e4a5 \
- 1587213d8240da87a9593fa110654c7d \
- 2ba6cd31b6ef69fdcbec450eb07fb2ed \
- 66f2e78effb16e788e09b6b2c353c26e \
- 1a9824f887b3ef3150c93c087bbb10fb \
- 067ca67cf5dc5d2eb25c03e491ceb395 \
- bd13e165196e3470237b852d347cbb9b \
- 591b0243c421bf8e6df09e3209fce861 \
- 06356b72118cb4ea0f63177479b7575a \
+ a2db9e4d802b919606c596d7d95ef251 \
+ d07af7d3cab8ed749a8310a89be6b1ff \
+ 4ba60e706b5e69a88192ff773b27a229 \
+ 58d0064087bc800cf6ee10d667651491 \
+ 84a3537d01f17e0e19f28000bb445c6b \
+ 2721e88844fd0335095f7e99df1ebbb9 \
+ 0bedbc5d1b29e4d6a7fbae0e6d1e146a \
+ e85f829193ea1afa080dcff7f77cf945 \
+ c6acde76d0fbb62b7eda3857d8a73436 \
+ 9e3ea187f6e3f01e3c9590782c744b3e \
+ c000dfa6a77a58ede02be41418056bf3 \
+ 9e0bf233b47424b8449a928bd31a1470 \
+ 9160664d20c024783323f5b90ca74d2d \
6fa7c4b0da26b511570845e41527bc8f \
- 426eb9e22cbb36480e13fd265be87b4c \
- b31bf94ffe7e0f2ada93afae1076eaeb \
+ 825ecc659b700477535aa5c7dea95a82 \
+ 40e508baeee8cdccbc471489b0f449ff \
7b3195612bc6090f0fa759e747a9e91c \
7c81e7a61ec172a229d6fdbc553e883d \
ccc5ff9ff4a431e36c0b6dd9f640ab58 \
- 94b8bf179385ff071bdc33b58bf047c0 \
+ 5ac809692422b722eaded90be3c4d9c2 \
+ d75b1c734f85b007c55ca84217df4201 \
76124c2327f642cddf19a4aa50cbcb7d \
a362e890dd0dfe51ecd95a4a1be6e28c \
- 8b708bc4b33c5e1683467444c9ed41b0 \
- bb21a8ff26ec16bc15758b1625bc0f46 \
- a8a1c536701e539cdce215fd7f55de9f \
+ b0a7859b81eeead5a15800d489e07347 \
+ 4604959975c2154a14f6b5e97444e2c8 \
5a4f0e9922683867565531089e3c417f \
+ 4917ff4eaed099a21ff16b96f0df49cb \
1a6e77e2f6f916ef7a5a9481ed426b76 \
- 7e395ce2e673b7d9665751cbbe3cbcdc \
- 5f5168cd7b4aad8ae68f4d1e32a1e0e2 \
+ e01c75ca9113d2af67ae903fa39e14be \
97b832ecaac0eee2b644fd42f2931160 \
b235f97b3139681d61419166e7c00e3c \
- e3bd46e4620b19864b2dd3542bb14c1c \
- b97a98b82065343e45f160671f6ffe8e \
- f17aecb8887cf0ecd823623160aed7db \
- 8e44066df6dc8663faaab84eddabf721 \
- 1081c01b2d9b17a33c3d0156193be592 \
+ c45800f4dfb888a928c772b081065214 \
+ 2e504fc2b79dc46f983c960e30be1702 \
+ 675fcfdbc94cd10b26b71965d3c3807b \
+ bd9b057de16e5b299bcda0894cfd823e \
+ 420f93a43fa603c1253213bdf28983df \
+ ebe381c6ee4281c78701e79a2cf90bc8 \
+ 0ce3cb22636a6b7992a2cd5b106f54ea \
9c414752deabb69c93aa3911422a960c \
- c71701508a4b5fa358c3efc4f0469fa2 \
+ 4b8c01a755ea55d3344d9ccb07c093ca \
56c34619687723fa3fc23213471e8545 \
- 073b4c53e303ccf2a807dfce7f5e986a \
- 44ef8a2279dadf391881a69c60d29197 \
- 00ebf3254ed74711c1f6717de3012350 \
- a0de6eabdeb1320350abcbd7c02df6ac \
- 09adf9a15c5576d25da061a0e576d056 \
- bee49068dd525d22d350dcd0d7543183 \
- f1917a7199fd7217e71efa6bbcb715cb \
+ a8ec1126ef06244ac1e3773981a005f1 \
+ 4b9ee6818517941de3ad6d645b77af3a \
+ d631c116041b5f68abc8680fa82feedf \
+ c0e036fd990d0c9cae11b5876a5cb572 \
+ c5e50e299295e662ad19c58428d6e085 \
+ a8bd18783d4b87808a6dad6814f297b6 \
+ 2493cc854d9a4fb0a1ed78595a5b667a \
b4dcac855af5df71f3383d86c4a96b78 \
aecd889de42c8168e1bc97a6f2720d8f \
fd9aa273ad560dedd00ddcf3dbe808ce \
- e1a629a86bfa03f5c17180a8b213c74c \
- 980c225025b646fa54a9450d22688ad0 \
+ 0b06dd6bef5cc7724c3daf6c900d38d0 \
af692853d165edb9c5df23627b2f8e04 \
e460418ee4f5508bc53c97e809331882 \
- dc9b023a3d3833fa5a853d950b54d944 \
+ 9e544fc057bf6032dd55b02f87b8dbf4 \
653e04baa68a4484b3b839c19221e474 \
907244c0d3791f3f981c7cc8e4cad0a3 \
- 99094dc9de392d7b233df089aaec5589 \
- 481cc7357cb8bfd6a728e7b47dee84b1 \
- 18d9fbe67f19564599ed55389e357232 \
- 6475ac2c917c96d375eb56f1761eea0a \
+ 50bcf9c0d46f49e8fdbbe9ffa1a73c56 \
+ 7e12f02e9742f49de13bbeacfe2906b8 \
+ f1adbc335ff6dd6692959688dedd9484 \
+ af00c723f5d3b3e4e6e388e98d6bf7f1 \
205459def23510e8815562e73a65c898 \
12e4ba5909e1f30b9142932571eaa4da \
- 1be45f99109d447849f4244b58c5a470 \
- b1713fb3ae03d434680cff5fb4c14144 \
- 1dd7189bccf7a3cfb69fd1dc213f660e \
+ 233dee08f26c9cbe78f29b66c0c20ccd \
cf2f0435bd5b5111fea46e8d9dc6522d \
7e264bc8f23a45ad680668cb5e57d9fd \
- c7ce684666ac9c76223b1a0a5034ce99 \
- 655de4844e5024d64d6c45296ec1ba42 \
- 445f5eb8b47aa8f2ff66b5f5bca00096 \
- ee800c5e7efc827cefe64af7d380cea5 \
- c775911c38f984e3cacad6c3d0691618 \
- ce6dde2ea2691fdd97632fb8c9b3e042 \
+ f490982aceabdbd515348f63e638a782 \
+ 37cf6acd1c3259eefeba636e4cc9b365 \
+ 228eb40a277a6dda01626b6e9287ee66 \
+ 8ff78776b6140283bd558ad74554cb16 \
+ 5e9fce0f8489727426f9b155cd08d8e3 \
07c75fec267864bcbb800ca7709ceae2 \
- 57a5575d623bcbc7ba5c033c9f87744f \
- 2c7870ed53f4e906876bd7901a10164f \
- 5c69337d37e58a380e00eac9ce0373bb \
- 61d3f525a24a154550d2d307121f89dd \
- 517af3607e2042ad806635bec4b1780e \
+ 42b88767a9db3d9fe6e59b5dff52abf5 \
+ 1d827ececfe381f71248b88ec399f359 \
+ ae91c97885d67994a342820cf7d59fb2 \
+ d6291d0e18f55b8364b36a7f5e1af699 \
+ 5ecf56203dda9419751b532d99c3601d \
+ 0baac9bed3d6065b6128aa8a888e5eb9 \
6a32bab57772c3a1146d599b65ffb0cb \
7d76a523677de261dda1b65d29a93c4e \
- cd9614d4d4afcfe5e26c118a42120d40 \
- 5770ccff26d6481010ab6c6006cda25a \
- c2a8746886f9f7bcc8fb9dd539183e44 \
- 4785f3ef9f313f11aae87120112c45b6 \
- 41defdffa40e7cbcc7e17a933c5660ab \
+ 5af0856196b1bb934f25a66b082c4131 \
+ 256e8677308aa17acc8c82b54d8a4fae \
+ 1810d970f84683a419d7b9aa6740f8a6 \
+ aca51d2a40262bfd8e69fbf6b2b01ed2 \
+ 418d3ebc9610905ab514667dad302f56 \
ee7a5f842c39bc47c474196e83b0df5f \
e30085994bbeb4b7f4895d48216d5476 \
- a1626b8f4d165b1b60d960862eba4cf0 \
+ ae5dab3db7dc317e16bb6f9e7eb15d14 \
a661e92ffd6cb9f0893126e3cde3fffc \
- 16111f31a29feae4ce4a324b83dc0189 \
- 2793ed3e6807d79ff72271baec586531 \
+ 4a80ab58144fc731cd12abc6d5139d7f \
d1e5569ab3528bea44f2a7ebb1ec0a35 \
- 267efbd05da2900424b1fa6e841d1280 \
- 39cfd27d1728af99cbae763b4f81acd3 \
+ 6b5c7401117316735435311bf551515b \
+ 82401c70623ccc1bfc0bcb5c3b0ac8b7 \
0538d1da369f3e3f0412aa4d735c1b61 \
- ee620998fafcd5665f24897e37c0d57e \
- 961872666d1de352fd4936d0b18581dd \
- 6eb014e73f66bc13226e0ef6d815d375 \
+ 4ac453abdecd6346f92989b4f789ac84 \
+ 1e585d25db7b5bb009b060befc74e9fe \
7b1261ea730a9314bc9bcdf4a379bf98 \
93aeba00993f0ed8c474864e455cf584 \
fdf3aa5e1f6c33e4f68b0f7b08e1e94e \
- 4ca29f2ce41fb9f282c527c1d8ae5cc4 \
+ 7fe15f165a1812b23e5b1980aa364de2 \
2d8d8b377d144f5e32b4f65a69eb0b24 \
- 0bf4ac47fef874d61250f4d4afe4866b \
+ f505a218806e44b2369671089d65e839 \
+ fc60e4ecd18db5e582b9e7dd19dd62e4 \
b4a0a98a54439a5a37952c8879187ee3 \
- a661bb863762e9f20761215a7650e6d5 \
- 4b09ca5c71f379ebcfa3c06222a082b2 \
+ f916271c81cfe339d66df629e3828392 \
d2cc4e584ed64165fc56d2c9081eb3ee \
- 3828d2d048ce354388c0de6ba5649754 \
+ 461fc1209ec16fb35a70adebd0f3c09f \
42408be0352a76b14f1e77a6b8858a77 \
- 2d82330c9f218f42ccc9e44c2d18ff8f \
- 3338953ce1388e5ff5fef5aac76ab1f5 \
- de68d2e964ba3b051ca2107aa12ebe4f \
- 7ade79d246bedd718a9eac604282dab2 \
+ c8ae0dd2469d51f273abdbfb24adceac \
+ 7c532e05dc3b2bd295136a297260c4dc \
+ c8f9eb4d5f0173b70647e559b03e85fb \
+ e3932c56e06c7d1e780242ca5feba32f \
82078b82ed1c52aac9552a39ead691a0 \
- 602d4f1e2fe53f870b70e83c8cee49db \
- e3e93a5606f450c13fcad764fa1c4bed \
+ ff221db0109795b44f92352780cd1901 \
+ 74d8afce717ff89fb2cb5141f121782b \
+ 9420cc533b8572ae0d04750421127f80 \
31bc883e6f9b36925f55460401197274 \
ce622fdb8d18cd1c13ed8fadc5400c10 \
- 0bfb08b9dd5df72ba5ed7d74dd5fe6eb \
- 22e95901b912671da26457ac33e36a23 \
- 9b7ebf6b588afaad70bf48a742973a30 \
+ e4e7efe2ab7921499d5c247a349e9e1f \
+ 21b43d5721b3a9c16059acb691f4314d \
+ 2fcf5fe983975bbcea43129c9fb31923 \
06ed54fefb2e737e18d586bfa7ad44fe \
- a8014a7c865aa54f305e8cda3ef02019 \
- 362eebacce3b2c9204fdef6d1c04d757 \
+ 6249245cf12427da0a4f37bc3d294ff4 \
+ f8839491f88f7a15ac8a5bdd787de442 \
c9defe80406280bcfce4ecf31c0200b3 \
43661dc16a38eb42bd49a11b9f00d6f4 \
82d98dc87dc8503400aa095f5aa70f13 \
8e053c23f1d36fbf3f276fbf501e3e35 \
- 8efa8e23cddda0540efe4ba8ff60840b \
- f05de931658b166a05c5520720fdba07 \
+ 67def8e3d7d4b26b803a2d0799ef31b9 \
+ 8f6b6cc71be0473b79c65abfea592c07 \
+ 10e133f0f33f0f41bc7fdad56e85a35b \
73ff8cffc66d065488dcf50e3b8c0c1f \
f29a1bb1b5f3f29cedb36f40f720d765 \
- 36c7197f00034ff87f3b849dd6b98b6e \
- 3d2277774414ad0f59584e7021b9be06 \
- 44e45d4d9b0904fd06d6f46107eda592 \
- 66345b13fd97229fefe61ba6457dfe66 \
- dc9491aba5e393b587f4bbffab58ed52 \
- 5f0470696baaa4e5953bddbf196998f9 \
- c678a7da0ee4b850ebde0474144a0415 \
- 3516a8d8c8e682ac47b252c447fcea75 \
- d6f24a12196b2e717d4fd869f3410e7f \
- e2d8018fa3841938e750da57b706852c \
- b5670d9b6d6560440845d23ca563d44d \
- b21820f2664242498beba7783b32bef4 \
- 7a55379fb7eaef176e373798441e7836 \
- bc4ac3f5c142859e5dfeb45a31866eeb \
- 60d7c3a9f75ac64cffbb9ccda7c1c8e5 \
- 97e8197912c3d06f0b7486d07c31e182 \
- 45c1d005c5df9e62640b4bbb1f79090a \
- e3189db1511d7f2fe59fd1b15ebac8ff \
+ ebdff467249aa3dca005a441dc824236 \
+ cc180843b3b626ede01ebd9a0d9fbdaa \
+ 3e61457993a6e3fdaaf2fbe82bd7dff3 \
+ 9d66208e00715217a8c1f2e40efe4a0c \
+ 90a6772f747261b181e3801bf51d9379 \
+ 7bfcad253aff26bc26c5e3521f3ba891 \
+ 4625feab41aceeb81e268cf272a8cb43 \
+ 64c940cf10c49b34761e1a4dbf2b023f \
+ 97aab350fb2614818580f00d1fb284ad \
+ 3b23aa9eb619cbfd68d96719db904597 \
+ db6fe956ec67f88412df3a627158a7ba \
+ 519bfbdd19531f1d7b775bfa7ce4ee80 \
+ 6a50f7029b3a8cc76f5f50ef9ee0b4aa \
+ 610bf72284e8f22d831d2f4ab3b87809 \
+ b7bf9803f61dcdcfc0bc07dfe5c6c249 \
f601f89fde92362c93611ef2358e1bc1 \
- a25ff12cdf468d4a5b4bf75b7fc6d743 \
- 63ce54e1fcbbdb45c15146fd082528bb \
- 11ad59bd731103e90d688afc5f35271b \
- 39ad78aa5442d71ddece93677f24d408 \
- 19f44a64888c1c2ff5ac943b066141f1 \
- e522898b2cb1fd23af2695324b3a5c78 \
- c12d182417999fc365f952e701f6071f \
- 7d6d4fc9fad200d6e295f6930e97e022 \
- 41a9cb1cc86d75f991241c9c3f725556 \
- 4518a0588a916a89400a31c2064a60ce \
- 6e71c4d256f4d02355b5b722e7d481be \
+ e876964c7b83db85fb7897bee7ad0f45 \
+ 7b38b145ae3f6d7d09a1a7a98396f1a2 \
+ 6cae4969689ecc3b4b4c31a9fb9539a6 \
+ dfbd8371187d9453f7461825972272bb \
+ 10291d9a0022076bc0827250816d3476 \
+ a42cc2834b2150027d7b427558a87803 \
+ 087bfc476e9d73628cebd265590f11f7 \
+ eb721c4d9e5dba8f93e9de0a80036ec3 \
+ 43f743c17293ad2404a9a4967f4e570b \
+ c9bde3bd6ba907b5319657c3b65e1191 \
e900a384ac7dbb320fe6a7279fbfef89 \
c4769705079e88d68739e6089e8769a3 \
- d4e6a3f2d7286408592d08defd7de156 \
+ f15c7457b6f2e06ee2037472d2f9a0fd \
d18d362345c4fe512ef67b738b239fb8 \
+ 689203efc084fc0f1d1f74f5d354ae75 \
274f9bcda1e4afd4a290329eff9267ad \
580dd7d12690c726da7d5075f3442a74 \
e334c03160b1e0989c2a71ca55f631fc \
- a312b55a428f827a91097d1d8497b02b \
- e972ea58ec203bfa6c79c1207852298b \
- 5ad255225437a92850eaea3cd7aa0051 \
- a277676f11a4b8df65f0bd10cf91c34d \
- 6dedf2077979fbca816469b7685d9e28 \
- 8c58a7b08dcaaf1e6bc55616ce88582e \
- edd96c9a12dc3e04aa4d9a345ee6dd0f \
- eff90729cd4a439c36ff89f3ee0904d0 \
- d04b3c91526662b97397fc1e04e007b1 \
+ a061ad1db3e0d839725b037ff8be84e7 \
+ 89f443c919328fcc7b985e262823f0ab \
+ a4dca633705dd04abd9a35e0b794d3d4 \
+ e5e5a1190e8e84eda279934d60ec4d48 \
+ 5909d8a50e0749f6aa8cfea853f161f0 \
+ 37869fac434114d80ef4af359f0a6a12 \
+ 4b9f324ed896f7e327f561e2341ac9ea \
+ 812034252008acfa704cbc65c505bdf2 \
20cfa8aba7521c8767344b06c39479f7 \
0498c4a11448bfc35dc7bb2caa64c753 \
db96b50050277bf05a3c68534bbb9586 \
b9e37d5fc4ad28b612b78ad37816684d \
09de9d01e7331ff3da11f58be8bef0df \
- 110789f2dd21a2ea820ebed976b4b1c2 \
- b58284cb8ce52b8de07e09f4f8fb9653 \
- 25cf36fbb4f7adb02f3d9fa24ccaef4f \
- 5ac131337793334dce7adbf1116671b3 \
- 8f5702706600f24bf7332043c15aa566 \
- dd86cb477e0b0b1411a5c92cba244b42 \
- 0f6b457ea783c088dff026ce39ce72ca \
- 23d20707b55228cb9b4328a26ddca724 \
- 62e05b432403f316d86f7af8af0839e3 \
- 8893d419a205b225e4010d7d02a15c6a \
- 1da18746ec7044fab3be0166f21975fa \
- 98c6613744636d05e6cdd64d6a74bba8 \
- 1cb886a35a22cdc6b930f58e748ca172 \
- 2af5c75a55a2e46662c060100d5c3222 \
- b063b98a03b5b198c528b842e1530a95 \
- 19e6057d49c1b26f0cf24cd98d88553f \
- 5d6f4bdeea0e991c8b894331501a6c04"
+ 57b0fdc06f3330e9cafafe88af48c0cf \
+ 1736946acda05e1e94b814f3e3c0145a \
+ 803148006d757487c3767bcdfffd8eb1 \
+ 0fa82df5a92ae7acde1f67130935c17b \
+ 53fc83d016a4a5c3d69a099eb3d10e1d \
+ 7a5233ce3372d0ac3adc2c85f616e3ad \
+ 338a919a7f8b6a7b1eb23272a2b7a237 \
+ 0137ff709b7fe58cc99d835bb01a84bf \
+ 71835a55bbab1c98313163f2fe78138e \
+ 9196c9f6e81d7775d63a9444b4fdfd3d \
+ 9a3b018157fc6d55b895dd429e54bcc2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libadwaita"
diff --git a/multimedia/svt-av1/changelog b/multimedia/svt-av1/changelog
index bb5e72ef9c..7a9d90ac55 100644
--- a/multimedia/svt-av1/changelog
+++ b/multimedia/svt-av1/changelog
@@ -20,3 +20,7 @@ Updated to version 1.5.0
06/02/2024:
Updated to version 1.8.0
+
+23/04/2024:
+
+Updated to version 2.0.0
diff --git a/multimedia/svt-av1/svt-av1.SlackBuild b/multimedia/svt-av1/svt-av1.SlackBuild
index d66709b419..7ed3a966e9 100644
--- a/multimedia/svt-av1/svt-av1.SlackBuild
+++ b/multimedia/svt-av1/svt-av1.SlackBuild
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=svt-av1
-VERSION=${VERSION:-1.8.0}
+VERSION=${VERSION:-2.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-DIR=${DIR:-SVT-AV1-v1.8.0}
+DIR=${DIR:-SVT-AV1-v2.0.0}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/multimedia/svt-av1/svt-av1.info b/multimedia/svt-av1/svt-av1.info
index 9db5e3318e..2ab059c95e 100644
--- a/multimedia/svt-av1/svt-av1.info
+++ b/multimedia/svt-av1/svt-av1.info
@@ -1,8 +1,8 @@
PRGNAM="svt-av1"
-VERSION="1.8.0"
+VERSION="2.0.0"
HOMEPAGE="https://gitlab.com/AOMediaCodec/SVT-AV1/"
-DOWNLOAD="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.8.0/SVT-AV1-v1.8.0.tar.gz"
-MD5SUM="9dbfc9b448cf50835b86b07803d4769b"
+DOWNLOAD="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v2.0.0/SVT-AV1-v2.0.0.tar.gz"
+MD5SUM="8ed7d1859108ef57985507a94c749172"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/uavs3d/changelog b/multimedia/uavs3d/changelog
deleted file mode 100644
index 478e92d365..0000000000
--- a/multimedia/uavs3d/changelog
+++ /dev/null
@@ -1,21 +0,0 @@
-Changelog for uavs3d SlackBuild Script
---------------------------------------------------------------------
-
-27/08/2022:
-
-Added to SBo
-
-05/02/2023:
-
-Updated to Github commit 0133ee4
-Patched the cmakelist file to build in i586 and i686 platforms.
-Also patched the file to set the correct lib dir in 64 bit
-platforms.
-
-21/02/2024:
-
-Switched to a versioned one and
-patched it to latest git commit.
-From now on this will build only on x86 and x86_64.
-upstream hasn't made a release yet but they have
-upgraded the version to 1.2.0 internally.
diff --git a/multimedia/uavs3d/fix-build-issue.patch b/multimedia/uavs3d/fix-build-issue.patch
deleted file mode 100644
index 8aa66107a7..0000000000
--- a/multimedia/uavs3d/fix-build-issue.patch
+++ /dev/null
@@ -1,7618 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5118377..46458c7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,15 +1,20 @@
--cmake_minimum_required(VERSION 2.8)
-+cmake_minimum_required(VERSION 3.1)
-
- project(uavs3d)
-
-+option(COMPILE_10BIT "Enable 10bit streams decoding support." OFF)
-+
-+set(CMAKE_C_STANDARD 99)
-+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-+
- aux_source_directory(./test DIR_SRC_TEST)
--set_source_files_properties(${DIR_SRC_TEST} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99 -O3")
-
- add_subdirectory(./source)
-
- add_executable(uavs3dec ${DIR_SRC_TEST})
-
--target_link_libraries(uavs3dec m)
-+if (NOT MSVC)
-+ target_link_libraries(uavs3dec m)
-+endif()
- target_link_libraries(uavs3dec uavs3d)
- #target_link_libraries(uavs3dec dl)
--
-diff --git a/COPYING b/COPYING
-index 409d303..ce30f0f 100644
---- a/COPYING
-+++ b/COPYING
-@@ -1,4 +1,4 @@
--Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School", "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
-+Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School", "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
-
- All rights reserved.
-
-@@ -9,10 +9,7 @@ modification, are permitted provided that the following conditions are met:
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
--3. All advertising materials mentioning features or use of this software
-- must display the following acknowledgement:
-- This product includes the software uAVS3d developed by Peking University Shenzhen Graduate School, Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation.
--4. Neither the name of the organizations (Peking University Shenzhen Graduate School, Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation)
-+3. Neither the name of the organizations (Peking University Shenzhen Graduate School, Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation)
- nor the names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-diff --git a/README.md b/README.md
-index e46ada8..9ce6a2a 100644
---- a/README.md
-+++ b/README.md
-@@ -5,15 +5,16 @@
- 2) supports to compile for Android/IOS/Windows/Linux/MacOS systems.
- 3) optimized for ARMv7/ARMv8/SSE4/AVX2 chips.
- 4) 10bit decoding on all supported platforms.
--
-+ 5) The uavs3 codec has supported x86 and arm platforms, and has been tested and verified on the Kunpeng processor.
-+ 6) The ARM platform recommends the Kunpeng processor.
- # license
- Copyright reserved by “Peking University Shenzhen Graduate School”, “Peng Cheng Laboratory”, and “Guangdong Bohua UHD Innovation Corporation” <br><br>
-- This program is a free software. You can redistribute it and/or modify it under the terms of the BSD 4-clause license. <br>
-+ This program is a free software. You can redistribute it and/or modify it under the terms of the BSD 3-clause license. <br>
- For more details, please view the file "COPYING" in the project.
-
- # compile
- The default configuration only support 8bit decoding. <br>
-- To support 10bit streams decoding, edit source/decore/com_def.h : #define BIT_DEPTH 10
-+ To support 10bit streams decoding: cmake -DCOMPILE_10BIT=1
-
- ## windows
- Prerequisites:
-@@ -22,17 +23,20 @@ Prerequisites:
- build:
- 1. ./version.bat (to generate version.h)
- 2. solution file: build/x86_windows/uavs3d.sln
-+
-+ To support 10bit streams decoding, edit source/decore/com_def.h : #define COMPILE_10BIT 1
-
- ## linux/mac
- Prerequisites:
- 1. gawk (http://www.gnu.org/software/gawk/)
-- 2. CMake (https://cmake.org) version 2.8 or higher
-+ 2. CMake (https://cmake.org) version 3.1 or higher
-
- Build:
- 1. mkdir build/linux
-- 2. cd build/linux && cmake ../..
-+ 2. cd build/linux && cmake -DCOMPILE_10BIT=0 ../..
- 3. make && make install
-
-+ To support 10bit streams decoding: cmake -DCOMPILE_10BIT=1
- to build shared library, set BUILD_SHARED_LIBS=1 please.
-
- ## ios
-@@ -40,8 +44,11 @@ Prerequisites:
- XCode
-
- Build:
--1. ./version.sh (generate the version.h)
--2. xcode solution file: build/ios/uavs3d.xcodeproj
-+ 1. ./version.sh (generate the version.h)
-+ 2. xcode solution file: build/ios/uavs3d.xcodeproj
-+
-+ To support 10bit streams decoding:
-+ Find Xcode -> PROJECT -> Build Settings -> Preprocessor Macros, add COMPILE_10BIT=1
-
- ## android
- Prerequisites:
-@@ -51,8 +58,10 @@ Build ndk library or executable file:
- 1. ./version.sh (generate the version.h)
- 2. cd build/android/ndk/jni
- 3. $NDK_PATH/ndk-build
-+
-+ To support 10bit streams decoding: edit build/android/ndk/jni/uavs3d_main.mk:
-
--The executable application for arm64-v8a is generated by default. <br>To generate static or shared library for other platforms, modify correlative options in Android.mk and Application.mk.
-+ LOCAL_CFLAGS += -DCOMPILE_10BIT=1
-
- # Run tests
- ## window/linux/mac/android
-diff --git a/build/android/ndk/jni/Android.mk b/build/android/ndk/jni/Android.mk
-index fe79947..88d57f4 100644
---- a/build/android/ndk/jni/Android.mk
-+++ b/build/android/ndk/jni/Android.mk
-@@ -5,53 +5,26 @@ SRC_PATH := ../../../../source
- INCLUDE_PATH := ../../../../source/decore
-
- ### Name of the local module
--include $(CLEAR_VARS)
--LOCAL_MODULE := uavs3d
-+include $(LOCAL_PATH)/uavs3d_clear_vars.mk
-+LOCAL_MODULE := uavs3d-static
-+LOCAL_MODULE_FILENAME := libuavs3d
-+include $(LOCAL_PATH)/uavs3d_main.mk
-+include $(BUILD_STATIC_LIBRARY)
-+
-+include $(LOCAL_PATH)/uavs3d_clear_vars.mk
-+LOCAL_MODULE := uavs3d-shared
-+LOCAL_MODULE_FILENAME := libuavs3d
- LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -lm -llog
--
--### for posix pthread
--#LOCAL_SHARED_LIBRARIES := libcutil
--
--### include search path when compiling all sources (C,C++,Assembly)
--LOCAL_C_INCLUDES +=$(INCLUDE_PATH) \
-- $(LOCAL_PATH)/../app
--
--### c source code
--uavs3d_srcs_c += $(SRC_PATH)/decore/alf.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/deblock.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/inter_pred.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/intra_pred.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/inv_trans.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/pic_manager.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/recon.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/sao.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/com_table.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/threadpool.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/win32thread.c
--uavs3d_srcs_c += $(SRC_PATH)/decore/com_util.c
--uavs3d_srcs_c += $(SRC_PATH)/decoder/uavs3d.c
--uavs3d_srcs_c += $(SRC_PATH)/decoder/bitstream.c
--uavs3d_srcs_c += $(SRC_PATH)/decoder/parser.c
--uavs3d_srcs_c += $(SRC_PATH)/decoder/dec_util.c
--
--LOCAL_CFLAGS += -O3 -fPIC -std=gnu99
- LOCAL_LDFLAGS += -fPIC
-+include $(LOCAL_PATH)/uavs3d_main.mk
-+include $(BUILD_SHARED_LIBRARY)
-+
-
--#if build_executable
-+include $(LOCAL_PATH)/uavs3d_clear_vars.mk
-+LOCAL_MODULE := uavs3d
-+LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -lm -llog
- LOCAL_CFLAGS += -pie -fPIE
- LOCAL_LDFLAGS += -pie -fPIE
--uavs3d_srcs_test+= $(SRC_PATH)/../test/utest.c
--#endif
--
--#if build armv7a
--#LOCAL_CFLAGS += -mfpu=neon
--#include $(LOCAL_PATH)/uavs3d_armv7a.mk
--#elif build arm64
--include $(LOCAL_PATH)/uavs3d_arm64.mk
--#endif
--
--LOCAL_SRC_FILES := $(uavs3d_srcs_c) $(uavs3d_srcs_arm) $(uavs3d_srcs_test)
--
--#include $(BUILD_SHARED_LIBRARY)
--#include $(BUILD_STATIC_LIBRARY)
-+uavs3d_srcs_test+= $(SRC_PATH)/../test/utest.c
-+include $(LOCAL_PATH)/uavs3d_main.mk
- include $(BUILD_EXECUTABLE)
-diff --git a/build/android/ndk/jni/Application.mk b/build/android/ndk/jni/Application.mk
-index 292946e..29e7e02 100644
---- a/build/android/ndk/jni/Application.mk
-+++ b/build/android/ndk/jni/Application.mk
-@@ -1,8 +1,9 @@
- # APP_ABI := armeabi-v7a
-- APP_ABI := arm64-v8a
-+# APP_ABI := arm64-v8a
- # APP_ABI := armeabi
- # APP_ABI := x86
- # APP_ABI := x86_64
-+APP_ABI := all
- APP_OPTIM := release
- # TARGET_BUILD_TYPE=release
-
-diff --git a/build/android/ndk/jni/uavs3d_avx2.mk b/build/android/ndk/jni/uavs3d_avx2.mk
-new file mode 100644
-index 0000000..d80401a
---- /dev/null
-+++ b/build/android/ndk/jni/uavs3d_avx2.mk
-@@ -0,0 +1,11 @@
-+
-+AVX_SRC_PATH:=../../../../source/decore/avx2
-+
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/alf_avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/inter_pred_avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/intra_pred_avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/itrans_avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/pixel_avx2.c
-+uavs3d_srcs_avx += $(AVX_SRC_PATH)/sao_avx2.c
-+
-diff --git a/build/android/ndk/jni/uavs3d_clear_vars.mk b/build/android/ndk/jni/uavs3d_clear_vars.mk
-new file mode 100644
-index 0000000..0c47cfc
---- /dev/null
-+++ b/build/android/ndk/jni/uavs3d_clear_vars.mk
-@@ -0,0 +1,6 @@
-+include $(CLEAR_VARS)
-+uavs3d_srcs_c :=
-+uavs3d_srcs_test :=
-+uavs3d_srcs_arm :=
-+uavs3d_srcs_sse :=
-+uavs3d_srcs_avx :=
-diff --git a/build/android/ndk/jni/uavs3d_main.mk b/build/android/ndk/jni/uavs3d_main.mk
-new file mode 100644
-index 0000000..6506e89
---- /dev/null
-+++ b/build/android/ndk/jni/uavs3d_main.mk
-@@ -0,0 +1,61 @@
-+
-+### for posix pthread
-+#LOCAL_SHARED_LIBRARIES := libcutil
-+
-+### include search path when compiling all sources (C,C++,Assembly)
-+LOCAL_C_INCLUDES +=$(INCLUDE_PATH) \
-+ $(LOCAL_PATH)/../app
-+
-+### c source code
-+uavs3d_srcs_c += $(SRC_PATH)/decore/alf.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/deblock.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/inter_pred.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/intra_pred.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/inv_trans.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/pic_manager.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/recon.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/sao.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/com_table.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/threadpool.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/win32thread.c
-+uavs3d_srcs_c += $(SRC_PATH)/decore/com_util.c
-+uavs3d_srcs_c += $(SRC_PATH)/decoder/uavs3d.c
-+uavs3d_srcs_c += $(SRC_PATH)/decoder/bitstream.c
-+uavs3d_srcs_c += $(SRC_PATH)/decoder/parser.c
-+uavs3d_srcs_c += $(SRC_PATH)/decoder/dec_util.c
-+
-+
-+LOCAL_CFLAGS += -O3 -fPIC -std=gnu99 -I../../../source/decore
-+
-+### To support 10bit streams decoding: edit it to -DCOMPILE_10BIT=1
-+LOCAL_CFLAGS += -DCOMPILE_10BIT=0
-+
-+ifeq ($(TARGET_ARCH),arm)
-+ ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
-+ # build armv7a
-+ LOCAL_CFLAGS += -mfpu=neon -D_armv7a
-+ include $(LOCAL_PATH)/uavs3d_armv7a.mk
-+ endif
-+endif
-+
-+ifeq ($(TARGET_ARCH),arm64)
-+ # build arm64
-+ LOCAL_CFLAGS += -D_arm64
-+ include $(LOCAL_PATH)/uavs3d_arm64.mk
-+endif
-+
-+ifeq ($(TARGET_ARCH),x86)
-+ # build x86
-+ LOCAL_CFLAGS += -msse4.2 -mavx2
-+ include $(LOCAL_PATH)/uavs3d_sse2.mk
-+ include $(LOCAL_PATH)/uavs3d_avx2.mk
-+endif
-+
-+ifeq ($(TARGET_ARCH),x86_64)
-+ # build x86_64
-+ LOCAL_CFLAGS += -msse4.2 -mavx2
-+ include $(LOCAL_PATH)/uavs3d_sse2.mk
-+ include $(LOCAL_PATH)/uavs3d_avx2.mk
-+endif
-+
-+LOCAL_SRC_FILES := $(uavs3d_srcs_c) $(uavs3d_srcs_arm) $(uavs3d_srcs_sse) $(uavs3d_srcs_avx) $(uavs3d_srcs_test)
-diff --git a/build/android/ndk/jni/uavs3d_sse2.mk b/build/android/ndk/jni/uavs3d_sse2.mk
-new file mode 100644
-index 0000000..1f8847a
---- /dev/null
-+++ b/build/android/ndk/jni/uavs3d_sse2.mk
-@@ -0,0 +1,11 @@
-+
-+SSE_SRC_PATH:=../../../../source/decore/sse
-+
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/alf_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/deblock_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/inter_pred_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/intra_pred_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/itrans_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/pixel_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/sao_sse.c
-+uavs3d_srcs_sse += $(SSE_SRC_PATH)/sse.c
-diff --git a/build/x86_windows/common.vcxproj b/build/vs2017/common.vcxproj
-similarity index 61%
-rename from build/x86_windows/common.vcxproj
-rename to build/vs2017/common.vcxproj
-index c8cd533..95de5c4 100644
---- a/build/x86_windows/common.vcxproj
-+++ b/build/vs2017/common.vcxproj
-@@ -1,157 +1,249 @@
--<?xml version="1.0" encoding="utf-8"?>
--<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-- <ItemGroup Label="ProjectConfigurations">
-- <ProjectConfiguration Include="Debug|x64">
-- <Configuration>Debug</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- <ProjectConfiguration Include="Release|x64">
-- <Configuration>Release</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- </ItemGroup>
-- <ItemGroup>
-- <ClCompile Include="..\..\source\decore\alf.c" />
-- <ClCompile Include="..\..\source\decore\avx2\alf_avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\inter_pred_avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\intra_pred_avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\itrans_avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\pixel_avx2.c" />
-- <ClCompile Include="..\..\source\decore\avx2\sao_avx2.c" />
-- <ClCompile Include="..\..\source\decore\com_table.c" />
-- <ClCompile Include="..\..\source\decore\com_util.c" />
-- <ClCompile Include="..\..\source\decore\deblock.c" />
-- <ClCompile Include="..\..\source\decore\inter_pred.c" />
-- <ClCompile Include="..\..\source\decore\intra_pred.c" />
-- <ClCompile Include="..\..\source\decore\inv_trans.c" />
-- <ClCompile Include="..\..\source\decore\pic_manager.c" />
-- <ClCompile Include="..\..\source\decore\recon.c" />
-- <ClCompile Include="..\..\source\decore\sao.c" />
-- <ClCompile Include="..\..\source\decore\sse\alf_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\deblock_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\inter_pred_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\intra_pred_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\itrans_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\pixel_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\sao_sse.c" />
-- <ClCompile Include="..\..\source\decore\sse\sse.c" />
-- <ClCompile Include="..\..\source\decore\threadpool.c" />
-- <ClCompile Include="..\..\source\decore\win32thread.c" />
-- </ItemGroup>
-- <ItemGroup>
-- <ClInclude Include="..\..\source\decore\avx2\avx2.h" />
-- <ClInclude Include="..\..\source\decore\com_def.h" />
-- <ClInclude Include="..\..\source\decore\com_sys.h" />
-- <ClInclude Include="..\..\source\decore\com_table.h" />
-- <ClInclude Include="..\..\source\decore\com_type.h" />
-- <ClInclude Include="..\..\source\decore\com_util.h" />
-- <ClInclude Include="..\..\source\decore\modules.h" />
-- <ClInclude Include="..\..\source\decore\sse\sse.h" />
-- <ClInclude Include="..\..\source\decore\threadpool.h" />
-- <ClInclude Include="..\..\source\decore\win32thread.h" />
-- </ItemGroup>
-- <PropertyGroup Label="Globals">
-- <ProjectGuid>{3F9C7116-C287-40D7-865C-D8C89CF4FF31}</ProjectGuid>
-- <Keyword>Win32Proj</Keyword>
-- <RootNamespace>com_lib_vs17</RootNamespace>
-- <ProjectName>common</ProjectName>
-- <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-- <ConfigurationType>StaticLibrary</ConfigurationType>
-- <UseDebugLibraries>true</UseDebugLibraries>
-- <CharacterSet>MultiByte</CharacterSet>
-- <PlatformToolset>v141</PlatformToolset>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-- <ConfigurationType>StaticLibrary</ConfigurationType>
-- <UseDebugLibraries>false</UseDebugLibraries>
-- <WholeProgramOptimization>true</WholeProgramOptimization>
-- <CharacterSet>MultiByte</CharacterSet>
-- <PlatformToolset>v141</PlatformToolset>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-- <ImportGroup Label="ExtensionSettings">
-- </ImportGroup>
-- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <PropertyGroup Label="UserMacros" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <OutDir>..\..\lib\</OutDir>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <TargetName>$(ProjectName)</TargetName>
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <OutDir>..\..\lib\</OutDir>
-- <TargetName>$(ProjectName)</TargetName>
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- </PropertyGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <ClCompile>
-- <PrecompiledHeader>NotUsing</PrecompiledHeader>
-- <WarningLevel>Level3</WarningLevel>
-- <Optimization>Disabled</Optimization>
-- <PreprocessorDefinitions>WIN64;X86F;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
-- <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-- <PrecompiledHeaderFile>
-- </PrecompiledHeaderFile>
-- <PrecompiledHeaderOutputFile>
-- </PrecompiledHeaderOutputFile>
-- <CompileAs>CompileAsC</CompileAs>
-- <ErrorReporting>Prompt</ErrorReporting>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <SubSystem>Windows</SubSystem>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- </Link>
-- <Lib>
-- <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-- </Lib>
-- </ItemDefinitionGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <ClCompile>
-- <WarningLevel>Level3</WarningLevel>
-- <PrecompiledHeader>NotUsing</PrecompiledHeader>
-- <Optimization>MaxSpeed</Optimization>
-- <FunctionLevelLinking>true</FunctionLevelLinking>
-- <IntrinsicFunctions>true</IntrinsicFunctions>
-- <PreprocessorDefinitions>WIN64;X86F;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);</PreprocessorDefinitions>
-- <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-- <PrecompiledHeaderFile>
-- </PrecompiledHeaderFile>
-- <PrecompiledHeaderOutputFile>
-- </PrecompiledHeaderOutputFile>
-- <CompileAs>CompileAsC</CompileAs>
-- <ErrorReporting>Prompt</ErrorReporting>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <SubSystem>Windows</SubSystem>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- <EnableCOMDATFolding>true</EnableCOMDATFolding>
-- <OptimizeReferences>true</OptimizeReferences>
-- </Link>
-- <Lib>
-- <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-- </Lib>
-- </ItemDefinitionGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-- <ImportGroup Label="ExtensionTargets">
-- </ImportGroup>
-+<?xml version="1.0" encoding="utf-8"?>
-+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-+ <ItemGroup Label="ProjectConfigurations">
-+ <ProjectConfiguration Include="Debug|Win32">
-+ <Configuration>Debug</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Debug|x64">
-+ <Configuration>Debug</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|Win32">
-+ <Configuration>Release</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|x64">
-+ <Configuration>Release</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ClCompile Include="..\..\source\decore\alf.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\alf_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\inter_pred_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\intra_pred_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\itrans_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\pixel_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\avx2\sao_avx2.c" />
-+ <ClCompile Include="..\..\source\decore\com_table.c" />
-+ <ClCompile Include="..\..\source\decore\com_util.c" />
-+ <ClCompile Include="..\..\source\decore\deblock.c" />
-+ <ClCompile Include="..\..\source\decore\inter_pred.c" />
-+ <ClCompile Include="..\..\source\decore\intra_pred.c" />
-+ <ClCompile Include="..\..\source\decore\inv_trans.c" />
-+ <ClCompile Include="..\..\source\decore\pic_manager.c" />
-+ <ClCompile Include="..\..\source\decore\recon.c" />
-+ <ClCompile Include="..\..\source\decore\sao.c" />
-+ <ClCompile Include="..\..\source\decore\sse\alf_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\deblock_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\inter_pred_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\intra_pred_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\itrans_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\pixel_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\sao_sse.c" />
-+ <ClCompile Include="..\..\source\decore\sse\sse.c" />
-+ <ClCompile Include="..\..\source\decore\threadpool.c" />
-+ <ClCompile Include="..\..\source\decore\win32thread.c" />
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ClInclude Include="..\..\source\decore\avx2\avx2.h" />
-+ <ClInclude Include="..\..\source\decore\com_def.h" />
-+ <ClInclude Include="..\..\source\decore\com_sys.h" />
-+ <ClInclude Include="..\..\source\decore\com_table.h" />
-+ <ClInclude Include="..\..\source\decore\com_type.h" />
-+ <ClInclude Include="..\..\source\decore\com_util.h" />
-+ <ClInclude Include="..\..\source\decore\modules.h" />
-+ <ClInclude Include="..\..\source\decore\sse\sse.h" />
-+ <ClInclude Include="..\..\source\decore\threadpool.h" />
-+ <ClInclude Include="..\..\source\decore\win32thread.h" />
-+ </ItemGroup>
-+ <PropertyGroup Label="Globals">
-+ <ProjectGuid>{3F9C7116-C287-40D7-865C-D8C89CF4FF31}</ProjectGuid>
-+ <Keyword>Win32Proj</Keyword>
-+ <RootNamespace>com_lib_vs17</RootNamespace>
-+ <ProjectName>common</ProjectName>
-+ <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+ <ConfigurationType>StaticLibrary</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-+ <ConfigurationType>StaticLibrary</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+ <ConfigurationType>StaticLibrary</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-+ <ConfigurationType>StaticLibrary</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-+ <ImportGroup Label="ExtensionSettings">
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <PropertyGroup Label="UserMacros" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <OutDir>..\..\lib\</OutDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <TargetName>$(ProjectName)</TargetName>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <TargetName>$(ProjectName)</TargetName>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <OutDir>..\..\lib\</OutDir>
-+ <TargetName>$(ProjectName)</TargetName>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <TargetName>$(ProjectName)</TargetName>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <ClCompile>
-+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <PreprocessorDefinitions>WIN64;X86F;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-+ <PrecompiledHeaderFile>
-+ </PrecompiledHeaderFile>
-+ <PrecompiledHeaderOutputFile>
-+ </PrecompiledHeaderOutputFile>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ErrorReporting>Prompt</ErrorReporting>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Windows</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ </Link>
-+ <Lib>
-+ <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-+ </Lib>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <ClCompile>
-+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <PreprocessorDefinitions>WIN64;X86F;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-+ <PrecompiledHeaderFile>
-+ </PrecompiledHeaderFile>
-+ <PrecompiledHeaderOutputFile>
-+ </PrecompiledHeaderOutputFile>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ErrorReporting>Prompt</ErrorReporting>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Windows</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ </Link>
-+ <Lib>
-+ <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-+ </Lib>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <PreprocessorDefinitions>WIN64;X86F;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+ <PrecompiledHeaderFile>
-+ </PrecompiledHeaderFile>
-+ <PrecompiledHeaderOutputFile>
-+ </PrecompiledHeaderOutputFile>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ErrorReporting>Prompt</ErrorReporting>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Windows</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ </Link>
-+ <Lib>
-+ <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-+ </Lib>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <PreprocessorDefinitions>WIN64;X86F;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\source\decore</AdditionalIncludeDirectories>
-+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+ <PrecompiledHeaderFile>
-+ </PrecompiledHeaderFile>
-+ <PrecompiledHeaderOutputFile>
-+ </PrecompiledHeaderOutputFile>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ErrorReporting>Prompt</ErrorReporting>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Windows</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ </Link>
-+ <Lib>
-+ <OutputFile>..\..\lib\$(ProjectName).lib</OutputFile>
-+ </Lib>
-+ </ItemDefinitionGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-+ <ImportGroup Label="ExtensionTargets">
-+ </ImportGroup>
- </Project>
-\ No newline at end of file
-diff --git a/build/x86_windows/common.vcxproj.filters b/build/vs2017/common.vcxproj.filters
-similarity index 100%
-rename from build/x86_windows/common.vcxproj.filters
-rename to build/vs2017/common.vcxproj.filters
-diff --git a/build/x86_windows/libuavs3d.vcxproj b/build/vs2017/libuavs3d.vcxproj
-similarity index 55%
-rename from build/x86_windows/libuavs3d.vcxproj
-rename to build/vs2017/libuavs3d.vcxproj
-index d92a51f..bb42a6c 100644
---- a/build/x86_windows/libuavs3d.vcxproj
-+++ b/build/vs2017/libuavs3d.vcxproj
-@@ -1,115 +1,193 @@
--<?xml version="1.0" encoding="utf-8"?>
--<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-- <ItemGroup Label="ProjectConfigurations">
-- <ProjectConfiguration Include="Debug|x64">
-- <Configuration>Debug</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- <ProjectConfiguration Include="Release|x64">
-- <Configuration>Release</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- </ItemGroup>
-- <ItemGroup>
-- <ClCompile Include="..\..\source\decoder\bitstream.c" />
-- <ClCompile Include="..\..\source\decoder\dec_util.c" />
-- <ClCompile Include="..\..\source\decoder\parser.c" />
-- <ClCompile Include="..\..\source\decoder\uavs3d.c" />
-- </ItemGroup>
-- <ItemGroup>
-- <ClInclude Include="..\..\contributor.h" />
-- <ClInclude Include="..\..\source\decoder\bitstream.h" />
-- <ClInclude Include="..\..\source\decoder\dec_type.h" />
-- <ClInclude Include="..\..\source\decoder\dec_util.h" />
-- <ClInclude Include="..\..\source\decoder\parser.h" />
-- <ClInclude Include="..\..\source\decoder\uavs3d.h" />
-- </ItemGroup>
-- <PropertyGroup Label="Globals">
-- <ProjectGuid>{40B445E8-306A-4C77-9B19-FC76C2379F79}</ProjectGuid>
-- <RootNamespace>dec_lib</RootNamespace>
-- <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
-- <ProjectName>libuavs3d</ProjectName>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-- <ConfigurationType>DynamicLibrary</ConfigurationType>
-- <UseDebugLibraries>true</UseDebugLibraries>
-- <PlatformToolset>v141</PlatformToolset>
-- <CharacterSet>MultiByte</CharacterSet>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-- <ConfigurationType>DynamicLibrary</ConfigurationType>
-- <UseDebugLibraries>false</UseDebugLibraries>
-- <PlatformToolset>v141</PlatformToolset>
-- <WholeProgramOptimization>true</WholeProgramOptimization>
-- <CharacterSet>MultiByte</CharacterSet>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-- <ImportGroup Label="ExtensionSettings">
-- </ImportGroup>
-- <ImportGroup Label="Shared">
-- </ImportGroup>
-- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <PropertyGroup Label="UserMacros" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- <OutDir>..\..\bin</OutDir>
-- <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- <OutDir>..\..\bin</OutDir>
-- <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-- </PropertyGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <ClCompile>
-- <WarningLevel>Level3</WarningLevel>
-- <Optimization>Disabled</Optimization>
-- <SDLCheck>true</SDLCheck>
-- <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;_DEBUG</PreprocessorDefinitions>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-- <ShowProgress>NotSet</ShowProgress>
-- <Version>1.0</Version>
-- </Link>
-- </ItemDefinitionGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <ClCompile>
-- <WarningLevel>Level3</WarningLevel>
-- <Optimization>MaxSpeed</Optimization>
-- <FunctionLevelLinking>true</FunctionLevelLinking>
-- <IntrinsicFunctions>true</IntrinsicFunctions>
-- <SDLCheck>true</SDLCheck>
-- <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-- <CompileAs>CompileAsC</CompileAs>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;</PreprocessorDefinitions>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- <EnableCOMDATFolding>true</EnableCOMDATFolding>
-- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-- <ShowProgress>NotSet</ShowProgress>
-- <Version>1.0</Version>
-- </Link>
-- </ItemDefinitionGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-- <ImportGroup Label="ExtensionTargets">
-- </ImportGroup>
-+<?xml version="1.0" encoding="utf-8"?>
-+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-+ <ItemGroup Label="ProjectConfigurations">
-+ <ProjectConfiguration Include="Debug|Win32">
-+ <Configuration>Debug</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Debug|x64">
-+ <Configuration>Debug</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|Win32">
-+ <Configuration>Release</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|x64">
-+ <Configuration>Release</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ClCompile Include="..\..\source\decoder\bitstream.c" />
-+ <ClCompile Include="..\..\source\decoder\dec_util.c" />
-+ <ClCompile Include="..\..\source\decoder\parser.c" />
-+ <ClCompile Include="..\..\source\decoder\uavs3d.c" />
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ClInclude Include="..\..\contributor.h" />
-+ <ClInclude Include="..\..\source\decoder\bitstream.h" />
-+ <ClInclude Include="..\..\source\decoder\dec_type.h" />
-+ <ClInclude Include="..\..\source\decoder\dec_util.h" />
-+ <ClInclude Include="..\..\source\decoder\parser.h" />
-+ <ClInclude Include="..\..\source\decoder\uavs3d.h" />
-+ </ItemGroup>
-+ <PropertyGroup Label="Globals">
-+ <ProjectGuid>{40B445E8-306A-4C77-9B19-FC76C2379F79}</ProjectGuid>
-+ <RootNamespace>dec_lib</RootNamespace>
-+ <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
-+ <ProjectName>libuavs3d</ProjectName>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+ <ConfigurationType>DynamicLibrary</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <PlatformToolset>v141</PlatformToolset>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-+ <ConfigurationType>DynamicLibrary</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <PlatformToolset>v141</PlatformToolset>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+ <ConfigurationType>DynamicLibrary</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <PlatformToolset>v141</PlatformToolset>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-+ <ConfigurationType>DynamicLibrary</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <PlatformToolset>v141</PlatformToolset>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-+ <ImportGroup Label="ExtensionSettings">
-+ </ImportGroup>
-+ <ImportGroup Label="Shared">
-+ </ImportGroup>
-+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <PropertyGroup Label="UserMacros" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ <OutDir>..\..\bin</OutDir>
-+ <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ <OutDir>..\..\bin</OutDir>
-+ <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <LibraryPath>..\..\lib;$(LibraryPath)</LibraryPath>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <SDLCheck>true</SDLCheck>
-+ <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;_DEBUG</PreprocessorDefinitions>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <ShowProgress>NotSet</ShowProgress>
-+ <Version>1.0</Version>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <SDLCheck>true</SDLCheck>
-+ <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;_DEBUG</PreprocessorDefinitions>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <ShowProgress>NotSet</ShowProgress>
-+ <Version>1.0</Version>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <SDLCheck>true</SDLCheck>
-+ <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;</PreprocessorDefinitions>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <ShowProgress>NotSet</ShowProgress>
-+ <Version>1.0</Version>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <SDLCheck>true</SDLCheck>
-+ <AdditionalIncludeDirectories>..\..\source\decore;..\..\source\decoder</AdditionalIncludeDirectories>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <CompileAs>CompileAsC</CompileAs>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <PreprocessorDefinitions>WIN64;;%(PreprocessorDefinitions);UAVS3D_EXPORTS;</PreprocessorDefinitions>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ <AdditionalDependencies>common.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <ShowProgress>NotSet</ShowProgress>
-+ <Version>1.0</Version>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-+ <ImportGroup Label="ExtensionTargets">
-+ </ImportGroup>
- </Project>
-\ No newline at end of file
-diff --git a/build/x86_windows/uavs3d.sln b/build/vs2017/uavs3d.sln
-similarity index 68%
-rename from build/x86_windows/uavs3d.sln
-rename to build/vs2017/uavs3d.sln
-index e6d34c4..d098d33 100644
---- a/build/x86_windows/uavs3d.sln
-+++ b/build/vs2017/uavs3d.sln
-@@ -1,47 +1,61 @@
--
--Microsoft Visual Studio Solution File, Format Version 12.00
--# Visual Studio 15
--VisualStudioVersion = 15.0.27130.2026
--MinimumVisualStudioVersion = 10.0.40219.1
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{3F9C7116-C287-40D7-865C-D8C89CF4FF31}"
--EndProject
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uavs3d", "uavs3d.vcxproj", "{798F7D68-C94D-41AF-86A4-98F7726D172C}"
-- ProjectSection(ProjectDependencies) = postProject
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31} = {3F9C7116-C287-40D7-865C-D8C89CF4FF31}
-- {40B445E8-306A-4C77-9B19-FC76C2379F79} = {40B445E8-306A-4C77-9B19-FC76C2379F79}
-- EndProjectSection
--EndProject
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libuavs3d", "libuavs3d.vcxproj", "{40B445E8-306A-4C77-9B19-FC76C2379F79}"
-- ProjectSection(ProjectDependencies) = postProject
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31} = {3F9C7116-C287-40D7-865C-D8C89CF4FF31}
-- EndProjectSection
--EndProject
--Global
-- GlobalSection(SolutionConfigurationPlatforms) = preSolution
-- Debug|x64 = Debug|x64
-- Release|x64 = Release|x64
-- EndGlobalSection
-- GlobalSection(ProjectConfigurationPlatforms) = postSolution
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x64.ActiveCfg = Debug|x64
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x64.Build.0 = Debug|x64
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x64.ActiveCfg = Release|x64
-- {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x64.Build.0 = Release|x64
-- {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x64.ActiveCfg = Debug|x64
-- {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x64.Build.0 = Debug|x64
-- {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x64.ActiveCfg = Release|x64
-- {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x64.Build.0 = Release|x64
-- {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x64.ActiveCfg = Debug|x64
-- {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x64.Build.0 = Debug|x64
-- {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x64.ActiveCfg = Release|x64
-- {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x64.Build.0 = Release|x64
-- EndGlobalSection
-- GlobalSection(SolutionProperties) = preSolution
-- HideSolutionNode = FALSE
-- EndGlobalSection
-- GlobalSection(ExtensibilityGlobals) = postSolution
-- SolutionGuid = {ED69324B-A55F-49DC-91D3-5F1D34DF875C}
-- EndGlobalSection
-- GlobalSection(Performance) = preSolution
-- HasPerformanceSessions = true
-- EndGlobalSection
--EndGlobal
-+
-+Microsoft Visual Studio Solution File, Format Version 12.00
-+# Visual Studio 15
-+VisualStudioVersion = 15.0.26228.4
-+MinimumVisualStudioVersion = 10.0.40219.1
-+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{3F9C7116-C287-40D7-865C-D8C89CF4FF31}"
-+EndProject
-+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uavs3d", "uavs3d.vcxproj", "{798F7D68-C94D-41AF-86A4-98F7726D172C}"
-+ ProjectSection(ProjectDependencies) = postProject
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31} = {3F9C7116-C287-40D7-865C-D8C89CF4FF31}
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79} = {40B445E8-306A-4C77-9B19-FC76C2379F79}
-+ EndProjectSection
-+EndProject
-+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libuavs3d", "libuavs3d.vcxproj", "{40B445E8-306A-4C77-9B19-FC76C2379F79}"
-+ ProjectSection(ProjectDependencies) = postProject
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31} = {3F9C7116-C287-40D7-865C-D8C89CF4FF31}
-+ EndProjectSection
-+EndProject
-+Global
-+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
-+ Debug|x64 = Debug|x64
-+ Debug|x86 = Debug|x86
-+ Release|x64 = Release|x64
-+ Release|x86 = Release|x86
-+ EndGlobalSection
-+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x64.ActiveCfg = Debug|x64
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x64.Build.0 = Debug|x64
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x86.ActiveCfg = Debug|Win32
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Debug|x86.Build.0 = Debug|Win32
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x64.ActiveCfg = Release|x64
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x64.Build.0 = Release|x64
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x86.ActiveCfg = Release|Win32
-+ {3F9C7116-C287-40D7-865C-D8C89CF4FF31}.Release|x86.Build.0 = Release|Win32
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x64.ActiveCfg = Debug|x64
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x64.Build.0 = Debug|x64
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x86.ActiveCfg = Debug|Win32
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Debug|x86.Build.0 = Debug|Win32
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x64.ActiveCfg = Release|x64
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x64.Build.0 = Release|x64
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x86.ActiveCfg = Release|Win32
-+ {798F7D68-C94D-41AF-86A4-98F7726D172C}.Release|x86.Build.0 = Release|Win32
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x64.ActiveCfg = Debug|x64
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x64.Build.0 = Debug|x64
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x86.ActiveCfg = Debug|Win32
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Debug|x86.Build.0 = Debug|Win32
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x64.ActiveCfg = Release|x64
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x64.Build.0 = Release|x64
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x86.ActiveCfg = Release|Win32
-+ {40B445E8-306A-4C77-9B19-FC76C2379F79}.Release|x86.Build.0 = Release|Win32
-+ EndGlobalSection
-+ GlobalSection(SolutionProperties) = preSolution
-+ HideSolutionNode = FALSE
-+ EndGlobalSection
-+ GlobalSection(ExtensibilityGlobals) = postSolution
-+ SolutionGuid = {ED69324B-A55F-49DC-91D3-5F1D34DF875C}
-+ EndGlobalSection
-+ GlobalSection(Performance) = preSolution
-+ HasPerformanceSessions = true
-+ EndGlobalSection
-+EndGlobal
-diff --git a/build/x86_windows/uavs3d.vcxproj b/build/vs2017/uavs3d.vcxproj
-similarity index 55%
-rename from build/x86_windows/uavs3d.vcxproj
-rename to build/vs2017/uavs3d.vcxproj
-index 9557243..25603ec 100644
---- a/build/x86_windows/uavs3d.vcxproj
-+++ b/build/vs2017/uavs3d.vcxproj
-@@ -1,118 +1,200 @@
--<?xml version="1.0" encoding="utf-8"?>
--<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-- <ItemGroup Label="ProjectConfigurations">
-- <ProjectConfiguration Include="Debug|x64">
-- <Configuration>Debug</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- <ProjectConfiguration Include="Release|x64">
-- <Configuration>Release</Configuration>
-- <Platform>x64</Platform>
-- </ProjectConfiguration>
-- </ItemGroup>
-- <PropertyGroup Label="Globals">
-- <ProjectGuid>{798F7D68-C94D-41AF-86A4-98F7726D172C}</ProjectGuid>
-- <Keyword>Win32Proj</Keyword>
-- <RootNamespace>dec_test_vs17</RootNamespace>
-- <ProjectName>uavs3d</ProjectName>
-- <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-- <ConfigurationType>Application</ConfigurationType>
-- <UseDebugLibraries>true</UseDebugLibraries>
-- <CharacterSet>MultiByte</CharacterSet>
-- <PlatformToolset>v141</PlatformToolset>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-- <ConfigurationType>Application</ConfigurationType>
-- <UseDebugLibraries>false</UseDebugLibraries>
-- <WholeProgramOptimization>true</WholeProgramOptimization>
-- <CharacterSet>MultiByte</CharacterSet>
-- <PlatformToolset>v141</PlatformToolset>
-- </PropertyGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-- <ImportGroup Label="ExtensionSettings">
-- </ImportGroup>
-- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-- </ImportGroup>
-- <PropertyGroup Label="UserMacros" />
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <LinkIncremental>false</LinkIncremental>
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- <OutDir>$(SolutionDir)\..\..\bin</OutDir>
-- </PropertyGroup>
-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <LinkIncremental>false</LinkIncremental>
-- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-- <OutDir>$(SolutionDir)\..\..\bin</OutDir>
-- </PropertyGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-- <ClCompile>
-- <PrecompiledHeader>
-- </PrecompiledHeader>
-- <WarningLevel>Level3</WarningLevel>
-- <Optimization>Disabled</Optimization>
-- <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions);_DEBUG</PreprocessorDefinitions>
-- <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <SubSystem>Console</SubSystem>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- <AdditionalDependencies>
-- </AdditionalDependencies>
-- <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-- </Link>
-- </ItemDefinitionGroup>
-- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-- <ClCompile>
-- <WarningLevel>Level3</WarningLevel>
-- <PrecompiledHeader>
-- </PrecompiledHeader>
-- <Optimization>MaxSpeed</Optimization>
-- <FunctionLevelLinking>true</FunctionLevelLinking>
-- <IntrinsicFunctions>true</IntrinsicFunctions>
-- <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-- <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-- <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-- <TreatWarningAsError>true</TreatWarningAsError>
-- <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-- </ClCompile>
-- <Link>
-- <SubSystem>Console</SubSystem>
-- <GenerateDebugInformation>true</GenerateDebugInformation>
-- <EnableCOMDATFolding>true</EnableCOMDATFolding>
-- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>
-- </AdditionalDependencies>
-- <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-- </Link>
-- </ItemDefinitionGroup>
-- <ItemGroup>
-- <ClInclude Include="..\..\test\utest.h" />
-- </ItemGroup>
-- <ItemGroup>
-- <ClCompile Include="..\..\test\utest.c" />
-- </ItemGroup>
-- <ItemGroup>
-- <ProjectReference Include="common.vcxproj">
-- <Project>{3f9c7116-c287-40d7-865c-d8c89cf4ff31}</Project>
-- </ProjectReference>
-- <ProjectReference Include="libuavs3d.vcxproj">
-- <Project>{40b445e8-306a-4c77-9b19-fc76c2379f79}</Project>
-- </ProjectReference>
-- </ItemGroup>
-- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-- <ImportGroup Label="ExtensionTargets">
-- </ImportGroup>
-+<?xml version="1.0" encoding="utf-8"?>
-+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-+ <ItemGroup Label="ProjectConfigurations">
-+ <ProjectConfiguration Include="Debug|Win32">
-+ <Configuration>Debug</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Debug|x64">
-+ <Configuration>Debug</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|Win32">
-+ <Configuration>Release</Configuration>
-+ <Platform>Win32</Platform>
-+ </ProjectConfiguration>
-+ <ProjectConfiguration Include="Release|x64">
-+ <Configuration>Release</Configuration>
-+ <Platform>x64</Platform>
-+ </ProjectConfiguration>
-+ </ItemGroup>
-+ <PropertyGroup Label="Globals">
-+ <ProjectGuid>{798F7D68-C94D-41AF-86A4-98F7726D172C}</ProjectGuid>
-+ <Keyword>Win32Proj</Keyword>
-+ <RootNamespace>dec_test_vs17</RootNamespace>
-+ <ProjectName>uavs3d</ProjectName>
-+ <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+ <ConfigurationType>Application</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-+ <ConfigurationType>Application</ConfigurationType>
-+ <UseDebugLibraries>true</UseDebugLibraries>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+ <ConfigurationType>Application</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-+ <ConfigurationType>Application</ConfigurationType>
-+ <UseDebugLibraries>false</UseDebugLibraries>
-+ <WholeProgramOptimization>true</WholeProgramOptimization>
-+ <CharacterSet>MultiByte</CharacterSet>
-+ <PlatformToolset>v141</PlatformToolset>
-+ </PropertyGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-+ <ImportGroup Label="ExtensionSettings">
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+ </ImportGroup>
-+ <PropertyGroup Label="UserMacros" />
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <LinkIncremental>false</LinkIncremental>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ <OutDir>$(SolutionDir)\..\..\bin</OutDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <LinkIncremental>false</LinkIncremental>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <LinkIncremental>false</LinkIncremental>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ <OutDir>$(SolutionDir)\..\..\bin</OutDir>
-+ </PropertyGroup>
-+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <LinkIncremental>false</LinkIncremental>
-+ <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-+ </PropertyGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+ <ClCompile>
-+ <PrecompiledHeader>
-+ </PrecompiledHeader>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions);_DEBUG</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Console</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <AdditionalDependencies>
-+ </AdditionalDependencies>
-+ <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+ <ClCompile>
-+ <PrecompiledHeader>
-+ </PrecompiledHeader>
-+ <WarningLevel>Level3</WarningLevel>
-+ <Optimization>Disabled</Optimization>
-+ <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions);_DEBUG</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Console</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <AdditionalDependencies>
-+ </AdditionalDependencies>
-+ <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <PrecompiledHeader>
-+ </PrecompiledHeader>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Console</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ <AdditionalDependencies>
-+ </AdditionalDependencies>
-+ <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+ <ClCompile>
-+ <WarningLevel>Level3</WarningLevel>
-+ <PrecompiledHeader>
-+ </PrecompiledHeader>
-+ <Optimization>MaxSpeed</Optimization>
-+ <FunctionLevelLinking>true</FunctionLevelLinking>
-+ <IntrinsicFunctions>true</IntrinsicFunctions>
-+ <PreprocessorDefinitions>WIN64;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+ <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
-+ <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-+ <TreatWarningAsError>true</TreatWarningAsError>
-+ <AdditionalOptions>/arch:AVX %(AdditionalOptions)</AdditionalOptions>
-+ </ClCompile>
-+ <Link>
-+ <SubSystem>Console</SubSystem>
-+ <GenerateDebugInformation>true</GenerateDebugInformation>
-+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+ <OptimizeReferences>true</OptimizeReferences>
-+ <AdditionalDependencies>
-+ </AdditionalDependencies>
-+ <AdditionalLibraryDirectories>..\..\lib</AdditionalLibraryDirectories>
-+ </Link>
-+ </ItemDefinitionGroup>
-+ <ItemGroup>
-+ <ClInclude Include="..\..\test\utest.h" />
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ClCompile Include="..\..\test\utest.c" />
-+ </ItemGroup>
-+ <ItemGroup>
-+ <ProjectReference Include="common.vcxproj">
-+ <Project>{3f9c7116-c287-40d7-865c-d8c89cf4ff31}</Project>
-+ </ProjectReference>
-+ <ProjectReference Include="libuavs3d.vcxproj">
-+ <Project>{40b445e8-306a-4c77-9b19-fc76c2379f79}</Project>
-+ </ProjectReference>
-+ </ItemGroup>
-+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-+ <ImportGroup Label="ExtensionTargets">
-+ </ImportGroup>
- </Project>
-\ No newline at end of file
-diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
-index 4530a63..b52363e 100644
---- a/source/CMakeLists.txt
-+++ b/source/CMakeLists.txt
-@@ -1,19 +1,93 @@
-
- set(LIBNAME uavs3d)
-
-+# check cpu
-+if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64" OR
-+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
-+ if(${CMAKE_SIZEOF_VOID_P} EQUAL 4)
-+ set(UAVS3D_TARGET_CPU "x86")
-+ elseif(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
-+ set(UAVS3D_TARGET_CPU "x86_64")
-+ else()
-+ message(FATAL_ERROR
-+ " Unexpected pointer size ${CMAKE_SIZEOF_VOID_P} for ${CMAKE_SYSTEM_PROCESSOR}\n")
-+ endif()
-+elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386" OR
-+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
-+ set(UAVS3D_TARGET_CPU "x86")
-+elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR
-+ "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm64")
-+ set(UAVS3D_TARGET_CPU "arm64")
-+elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "^arm")
-+ set(UAVS3D_TARGET_CPU "armv7")
-+elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "loongarch64")
-+ set(UAVS3D_TARGET_CPU "loongarch64")
-+else()
-+ message(WARNING "unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}\n")
-+ set(UAVS3D_TARGET_CPU "generic")
-+endif()
-+
- # add source
- aux_source_directory(./decoder DIR_UAVS3D_SRC)
- aux_source_directory(./decore DIR_UAVS3D_CORE)
--aux_source_directory(./decore/sse DIR_X86_SRC)
--aux_source_directory(./decore/avx2 DIR_X86_256_SRC)
-
- list(APPEND DIR_UAVS3D_SRC ${DIR_UAVS3D_CORE})
-
- include_directories("decore")
-+set(UAVS3D_ASM_FILES "")
-+
-+if("${UAVS3D_TARGET_CPU}" MATCHES "x86" OR
-+ "${UAVS3D_TARGET_CPU}" MATCHES "x86_64")
-+ aux_source_directory(./decore/sse DIR_X86_SRC)
-+ aux_source_directory(./decore/avx2 DIR_X86_256_SRC)
-+ set_source_files_properties(${DIR_X86_SRC} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
-+ set_source_files_properties(${DIR_X86_256_SRC} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -mavx2")
-+
-+ list(APPEND UAVS3D_ASM_FILES ${DIR_X86_SRC})
-+ list(APPEND UAVS3D_ASM_FILES ${DIR_X86_256_SRC})
-+elseif("${UAVS3D_TARGET_CPU}" MATCHES "armv7")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/armv7.c")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/alf_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/deblock_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/def_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/inter_pred_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/intra_pred_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/dct2_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/itrans_dct8_dst7_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/pixel_armv7.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/sao_armv7.c")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/sao_kernel_armv7.S")
-+
-+ add_definitions(-D _armv7a)
-+ enable_language(ASM)
-+elseif("${UAVS3D_TARGET_CPU}" MATCHES "arm64")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/arm64.c")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/alf_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/deblock_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/def_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/inter_pred_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/intra_pred_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/intra_pred_chroma_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/itrans_arm64.c")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/itrans_dct2_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/itrans_dct8_dst7_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/pixel_arm64.S")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/sao_arm64.c")
-+ list(APPEND UAVS3D_ASM_FILES "./decore/arm64/sao_kernel_arm64.S")
-
--set_source_files_properties(${DIR_UAVS3D_SRC} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -fPIC -std=c99 -O3")
--set_source_files_properties(${DIR_X86_SRC} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -fPIC -std=c99 -O3 -msse4.2")
--set_source_files_properties(${DIR_X86_256_SRC} PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -fPIC -std=c99 -O3 -mavx2")
-+ add_definitions(-D _arm64)
-+ enable_language(ASM)
-+elseif("${UAVS3D_TARGET_CPU}" MATCHES "loongarch64")
-+ # loongarch64
-+endif()
-+
-+if(COMPILE_10BIT)
-+ add_definitions(-DCOMPILE_10BIT=1)
-+ message("-- compile 10bit")
-+else()
-+ add_definitions(-DCOMPILE_10BIT=0)
-+ message("-- compile 8bit")
-+endif()
-
- # get version
- set (CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
-@@ -30,6 +104,7 @@ endfunction()
- extract_version_string("${CONFIG_DIR}/version.h" uavs3d_version)
- MESSAGE(STATUS "uavs3d version \t\t: ${uavs3d_version}")
-
-+MESSAGE(STATUS "Target CPU\t\t\t: ${UAVS3D_TARGET_CPU}")
- # pkg-config
- find_package(Threads REQUIRED)
- set(prefix "${CMAKE_INSTALL_PREFIX}")
-@@ -65,9 +140,11 @@ MESSAGE(STATUS "BUILD_SHARED_LIBS \t\t: true")
- else()
- MESSAGE(STATUS "BUILD_SHARED_LIBS \t\t: false")
- endif()
--add_library(${LIBNAME} ${DIR_UAVS3D_SRC} ${DIR_X86_256_SRC} ${DIR_X86_SRC})
-+add_library(${LIBNAME} ${DIR_UAVS3D_SRC} ${UAVS3D_ASM_FILES})
-
--target_link_libraries(${LIBNAME} m)
-+if (NOT MSVC)
-+ target_link_libraries(${LIBNAME} m)
-+endif()
- if(CMAKE_USE_PTHREADS_INIT)
- target_link_libraries(${LIBNAME} pthread)
- endif()
-@@ -76,4 +153,3 @@ endif()
- install(TARGETS uavs3d LIBRARY DESTINATION ${CMAKE_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIB_DIR})
- install(FILES decoder/uavs3d.h DESTINATION ${CMAKE_INSTALL_INCLUDE_DIR})
- install(FILES ${CONFIG_DIR}/${LIBNAME}.pc DESTINATION ${CMAKE_INSTALL_PKGCONFIG_DIR})
--
-diff --git a/source/decoder/bitstream.c b/source/decoder/bitstream.c
-index 9c433ad..1c3aaac 100644
---- a/source/decoder/bitstream.c
-+++ b/source/decoder/bitstream.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decoder/bitstream.h b/source/decoder/bitstream.h
-index 60052b4..f1b1043 100644
---- a/source/decoder/bitstream.h
-+++ b/source/decoder/bitstream.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decoder/dec_type.h b/source/decoder/dec_type.h
-index 1761605..cfb0442 100644
---- a/source/decoder/dec_type.h
-+++ b/source/decoder/dec_type.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decoder/dec_util.c b/source/decoder/dec_util.c
-index e9374d9..e30e323 100644
---- a/source/decoder/dec_util.c
-+++ b/source/decoder/dec_util.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -250,7 +245,7 @@ static void uavs3d_always_inline com_mv_rounding_affine(s32 hor, s32 ver, s32 *
- }
- }
-
--static void uavs3d_always_inline check_umve_motion_availability(int scup, int cu_width, int cu_height, int i_scu, int neighbor[NUM_SPATIAL_MV], int valid[NUM_SPATIAL_MV], com_scu_t * map_scu, s16(*map_mv)[REFP_NUM][MV_D], s8(*map_refi)[REFP_NUM])
-+static void uavs3d_always_inline check_umve_motion_availability(int scup, int cu_width, int cu_height, int i_scu, int neighbor[5], int valid[5], com_scu_t * map_scu, s16(*map_mv)[REFP_NUM][MV_D], s8(*map_refi)[REFP_NUM])
- {
- int cu_width_in_scu = cu_width >> MIN_CU_LOG2;
- int cu_height_in_scu = cu_height >> MIN_CU_LOG2;
-@@ -985,7 +980,6 @@ static int get_affine_merge_candidate(com_core_t *core, s8 mrg_list_refi[REFP_NU
- int scup = core->cu_scup;
- com_map_t *map = &core->map;
- com_seqh_t *seqhdr = core->seqhdr;
-- com_ref_pic_t(*refp)[REFP_NUM] = core->refp;
- int i_scu = seqhdr->i_scu;
- int lidx, i, k;
- int cu_width = core->cu_width;
-@@ -1112,6 +1106,7 @@ static int get_affine_merge_candidate(com_core_t *core, s8 mrg_list_refi[REFP_NU
- int neb_addr_rb = scup + i_scu * (cu_height_in_scu - 1) + (cu_width_in_scu - 1);
- int scu_y;
- int scup_co = get_colocal_scup(neb_addr_rb, i_scu, seqhdr->pic_width_in_scu, seqhdr->pic_height_in_scu, &scu_y);
-+ com_ref_pic_t(*refp)[REFP_NUM] = core->refp;
-
- if (core->pichdr->slice_type == SLICE_B) {
- uavs3d_check_ref_avaliable(refp[0][REFP_1].pic, scu_y << MIN_CU_LOG2);
-diff --git a/source/decoder/dec_util.h b/source/decoder/dec_util.h
-index 77c00a6..9d46217 100644
---- a/source/decoder/dec_util.h
-+++ b/source/decoder/dec_util.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decoder/parser.c b/source/decoder/parser.c
-index 45bb26a..9405daa 100644
---- a/source/decoder/parser.c
-+++ b/source/decoder/parser.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -88,6 +83,9 @@ int dec_parse_sqh(com_bs_t * bs, com_seqh_t * seqhdr)
- dec_bs_read1(bs, 1); //marker_bit
- seqhdr->vertical_size = dec_bs_read(bs, 14, 0, COM_UINT32_MAX);
-
-+ seqhdr->display_horizontal_size = seqhdr->horizontal_size;
-+ seqhdr->display_vertical_size = seqhdr->vertical_size;
-+
- seqhdr->chroma_format = (u8)dec_bs_read(bs, 2, 1, 1);
- seqhdr->sample_precision = (u8)dec_bs_read(bs, 3, 1, 2);
-
-@@ -262,19 +260,21 @@ static int user_data(com_pic_header_t *pichdr, com_bs_t * bs)
- return RET_OK;
- }
-
--static int sequence_display_extension(com_bs_t * bs)
-+static int sequence_display_extension(com_bs_t * bs, com_seqh_t *seqhdr)
- {
- dec_bs_read(bs, 3, 0, COM_UINT32_MAX); // video_format u(3)
- dec_bs_read1(bs, -1); // sample_range u(1)
-- int colour_description = dec_bs_read1(bs, -1); // colour_description u(1)
-- if (colour_description) {
-- dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // colour_primaries u(8)
-- dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // transfer_characteristics u(8)
-- dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // matrix_coefficients u(8)
-+
-+ seqhdr->colour_description = dec_bs_read1(bs, -1); // colour_description u(1)
-+
-+ if (seqhdr->colour_description) {
-+ seqhdr->colour_primaries = dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // colour_primaries u(8)
-+ seqhdr->transfer_characteristics = dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // transfer_characteristics u(8)
-+ seqhdr->matrix_coefficients = dec_bs_read(bs, 8, 0, COM_UINT32_MAX); // matrix_coefficients u(8)
- }
-- dec_bs_read(bs, 14, 0, COM_UINT32_MAX); // display_horizontal_size u(14)
-+ seqhdr->display_horizontal_size = dec_bs_read(bs, 14, 0, COM_UINT32_MAX); // display_horizontal_size u(14)
- dec_bs_read1(bs, 1); //marker_bit
-- dec_bs_read(bs, 14, 0, COM_UINT32_MAX); // display_vertical_size u(14)
-+ seqhdr->display_vertical_size = dec_bs_read(bs, 14, 0, COM_UINT32_MAX); // display_vertical_size u(14)
- char td_mode_flag = dec_bs_read1(bs, -1); // td_mode_flag u(1)
-
- if (td_mode_flag == 1) {
-@@ -460,7 +460,7 @@ static int extension_data(com_bs_t * bs, com_seqh_t *seqhdr, com_pic_header_t *p
- if (i == 0) {
- int ret = dec_bs_read(bs, 4, 0, COM_UINT32_MAX);
- if (ret == 2) {
-- sequence_display_extension(bs);
-+ sequence_display_extension(bs, seqhdr);
- } else if (ret == 3) {
- temporal_scalability_extension(bs);
- } else if (ret == 4) {
-@@ -1647,7 +1647,7 @@ static uavs3d_always_inline u32 lbac_read_unary_sym_ep(com_lbac_t * lbac)
- low = lbac_refill2(lbac, low);
- }
- val += bin;
-- } while (bin);
-+ } while (bin && lbac->cur < lbac->end);
-
- lbac->range = range;
- lbac->low = low;
-@@ -2834,8 +2834,7 @@ int dec_parse_lcu_delta_qp(com_lbac_t * lbac, int last_dqp)
- bin = lbac_dec_bin(lbac, ctx->lcu_qp_delta + act_ctx);
- act_ctx = min(3, act_ctx + 1);
- act_sym += !bin;
-- }
-- while (!bin);
-+ } while (!bin && lbac->cur < lbac->end);
- }
-
- dquant = (act_sym + 1) >> 1;
-diff --git a/source/decoder/parser.h b/source/decoder/parser.h
-index 20cd103..93fbb1a 100644
---- a/source/decoder/parser.h
-+++ b/source/decoder/parser.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decoder/uavs3d.c b/source/decoder/uavs3d.c
-index 9ac7dc2..7b0491d 100644
---- a/source/decoder/uavs3d.c
-+++ b/source/decoder/uavs3d.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -1060,7 +1055,7 @@ int __cdecl uavs3d_flush(void *h, uavs3d_io_frm_t* frm_out)
-
- void* __cdecl uavs3d_create(uavs3d_cfg_t * dec_cfg, uavs3d_lib_output_callback_t callback, int * err)
- {
-- uavs3d_dec_t *ctx = NULL;
-+ uavs3d_dec_t *ctx;
-
- printf("libuavs3d(%2d): %s_%s, %s\n", BIT_DEPTH, VERSION_STR, VERSION_TYPE, VERSION_SHA1);
-
-diff --git a/source/decoder/uavs3d.h b/source/decoder/uavs3d.h
-index f5ea2b0..1931917 100644
---- a/source/decoder/uavs3d.h
-+++ b/source/decoder/uavs3d.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -137,6 +132,9 @@ typedef struct uavs3d_com_seqh_t {
- unsigned int bbv_buffer_size; /* 18 bits */
- int horizontal_size; /* 14 bits */
- int vertical_size; /* 14 bits */
-+ int display_horizontal_size; /* 14 bits */
-+ int display_vertical_size; /* 14 bits */
-+
- unsigned char log2_max_cu_width_height; /* 3 bits */
- unsigned char min_cu_size;
- unsigned char max_part_ratio_log2;
-@@ -211,6 +209,13 @@ typedef struct uavs3d_com_seqh_t {
-
- /* alf map */
- unsigned char *alf_idx_map;
-+
-+ /* hdr info */
-+ unsigned char colour_description;
-+ unsigned char colour_primaries;
-+ unsigned char transfer_characteristics;
-+ unsigned char matrix_coefficients;
-+
- } com_seqh_t;
-
- #define FRAME_MAX_PLANES 3
-diff --git a/source/decore/alf.c b/source/decore/alf.c
-index 89a2411..111d99f 100644
---- a/source/decore/alf.c
-+++ b/source/decore/alf.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/alf_arm64.S b/source/decore/arm64/alf_arm64.S
-index 49a620f..9998073 100644
---- a/source/decore/arm64/alf_arm64.S
-+++ b/source/decore/arm64/alf_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/arm64.c b/source/decore/arm64/arm64.c
-index 0850349..74c2f81 100644
---- a/source/decore/arm64/arm64.c
-+++ b/source/decore/arm64/arm64.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -102,7 +97,7 @@ static void uavs3d_padding_rows_chroma_arm64(pel *src, int i_src, int width, int
-
- void uavs3d_funs_init_arm64()
- {
--#if (BIT_DEPTH == 8)
-+#if !COMPILE_10BIT
- uavs3d_funs_handle.sao[ Y_C] = uavs3d_sao_on_lcu_arm64;
- uavs3d_funs_handle.sao[UV_C] = uavs3d_sao_on_lcu_chroma_arm64;
- uavs3d_funs_handle.alf[ Y_C] = uavs3d_alf_one_lcu_arm64;
-@@ -311,7 +306,7 @@ void uavs3d_funs_init_arm64()
- uavs3d_funs_handle.itrans_dst7[1] = uavs3d_itrans_dct8_pb8_arm64;
- uavs3d_funs_handle.itrans_dst7[2] = uavs3d_itrans_dct8_pb16_arm64;
-
-- uavs3d_funs_handle.conv_fmt_16bit = uavs3d_conv_fmt_16bit_arm64;
-+ //uavs3d_funs_handle.conv_fmt_16bit = uavs3d_conv_fmt_16bit_arm64;
- uavs3d_funs_handle.padding_rows_luma = uavs3d_padding_rows_luma_arm64;
- uavs3d_funs_handle.padding_rows_chroma = uavs3d_padding_rows_chroma_arm64;
-
-diff --git a/source/decore/arm64/arm64.h b/source/decore/arm64/arm64.h
-index 6ba0566..b2410ef 100644
---- a/source/decore/arm64/arm64.h
-+++ b/source/decore/arm64/arm64.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/deblock_arm64.S b/source/decore/arm64/deblock_arm64.S
-index ff47274..b152147 100644
---- a/source/decore/arm64/deblock_arm64.S
-+++ b/source/decore/arm64/deblock_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -1540,12 +1535,12 @@ deblock_ver_filtered:
- bif v17.16b, v1.16b, v25.16b
- bif v18.16b, v6.16b, v25.16b
-
-- mov v1.2d, v17.2d
-- mov v2.2d, v28.2d
-- mov v3.2d, v30.2d
-- mov v4.2d, v31.2d
-- mov v5.2d, v29.2d
-- mov v6.2d, v18.2d
-+ mov v1.16b, v17.16b
-+ mov v2.16b, v28.16b
-+ mov v3.16b, v30.16b
-+ mov v4.16b, v31.16b
-+ mov v5.16b, v29.16b
-+ mov v6.16b, v18.16b
-
- st4 {v0.H, v1.H, v2.H, v3.H}[0], [x2], #8
- st4 {v4.H, v5.H, v6.H, v7.H}[0], [x2], x5
-diff --git a/source/decore/arm64/def_arm64.S b/source/decore/arm64/def_arm64.S
-index c6a219d..82e267d 100644
---- a/source/decore/arm64/def_arm64.S
-+++ b/source/decore/arm64/def_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -35,25 +30,23 @@
- * For more information, contact us at rgwang@pkusz.edu.cn.
- **************************************************************************************/
-
--#if defined(__ANDROID__)
--.macro function name
-- .text
-- .align 4
-- .global \name
-- .type \name, %function
-- \name:
--.endm
--
- #if defined(__aarch64__) && !defined(__arm64__)
- #define __arm64__ 1
- #endif
--#elif defined(__APPLE__)
-+
-+#if defined(__APPLE__)
- .macro function name
- .text
- .align 4
- .global _\name
- _\name:
- .endm
-+#else
-+.macro function name
-+ .text
-+ .align 4
-+ .global \name
-+ .type \name, %function
-+ \name:
-+.endm
- #endif
--
--#define COMPILE_10BIT 0
-diff --git a/source/decore/arm64/inter_pred_arm64.S b/source/decore/arm64/inter_pred_arm64.S
-index e86addd..375f041 100644
---- a/source/decore/arm64/inter_pred_arm64.S
-+++ b/source/decore/arm64/inter_pred_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -1809,9 +1804,9 @@ if_hor_ver_chroma_w8_loop_y:
- smlal v30.4s, v22.4h, v7.h[3]
- smlal2 v31.4s, v22.8h, v7.h[3]
-
-- mov v16.2d, v20.2d
-- mov v17.2d, v21.2d
-- mov v18.2d, v22.2d
-+ mov v16.16b, v20.16b
-+ mov v17.16b, v21.16b
-+ mov v18.16b, v22.16b
-
- rshrn v24.4h, v24.4s, #12
- rshrn2 v24.8h, v25.4s, #12
-@@ -2553,10 +2548,10 @@ if_hor_ver_luma_w4_loop_y:
- smlal v29.4s, v21.4h, v8.h[7]
- smlal2 v30.4s, v21.8h, v8.h[7]
-
-- mov v16.2d, v18.2d
-- mov v17.2d, v19.2d
-- mov v18.2d, v20.2d
-- mov v19.2d, v21.2d
-+ mov v16.16b, v18.16b
-+ mov v17.16b, v19.16b
-+ mov v18.16b, v20.16b
-+ mov v19.16b, v21.16b
-
- rshrn v27.4h, v27.4s, #12
- rshrn v28.4h, v28.4s, #12
-@@ -5268,7 +5263,7 @@ function uavs3d_if_hor_ver_luma_w8_arm64
- ldr w8, [sp] // w8 = max_val
-
- sub sp, sp, #80
-- sub x9, sp, #16
-+ add x9, sp, #64
- st1 {v12.2d, v13.2d, v14.2d, v15.2d}, [sp]
- st1 {v11.2d}, [x9]
-
-diff --git a/source/decore/arm64/intra_pred_arm64.S b/source/decore/arm64/intra_pred_arm64.S
-index e2c4629..5689bd4 100644
---- a/source/decore/arm64/intra_pred_arm64.S
-+++ b/source/decore/arm64/intra_pred_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -2996,12 +2991,12 @@ intra_pred_bi_ipf_end:
- // const s8 *flt_coef_hor, const s8 *flt_coef_ver, int w, int h, int bit_depth)
- //src->x0, dst->x1, i_dst->x2, flt_range_hor->x3, flt_range_ver->x4, flt_coef_hor->x5, flt_coef_ver->x6, w->x7
- function uavs3d_intra_pred_ipf_arm64
--#if defined(__ANDROID__)
-- ldr w8, [sp] // w8 = h
-- ldr w9, [sp, #8] // w9 = bit_depth
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldr w8, [sp]
- ldr w9, [sp, #4]
-+#else
-+ ldr w8, [sp] // w8 = h
-+ ldr w9, [sp, #8] // w9 = bit_depth
- #endif
- add x0, x0, #1 // p_top = src + 1
-
-diff --git a/source/decore/arm64/intra_pred_chroma_arm64.S b/source/decore/arm64/intra_pred_chroma_arm64.S
-index 2c142f3..b12d02a 100644
---- a/source/decore/arm64/intra_pred_chroma_arm64.S
-+++ b/source/decore/arm64/intra_pred_chroma_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -555,7 +550,7 @@ intra_pred_dc_uv_fillblock_w8:
- b intra_pred_dc_uv_end
-
- intra_pred_dc_uv_fillblock_w16:
-- mov v1.8h, v0.8h
-+ mov v1.16b, v0.16b
- intra_pred_dc_uv_fillblock_w16_y:
- st1 {v0.8h, v1.8h}, [x1], x2 // store dst[x]
- st1 {v0.8h, v1.8h}, [x1], x2
-@@ -570,9 +565,9 @@ intra_pred_dc_uv_fillblock_w32x:
- cmp w3, #64
- beq intra_pred_dc_uv_fillblock_w64
-
-- mov v1.8h, v0.8h
-- mov v2.8h, v0.8h
-- mov v3.8h, v0.8h
-+ mov v1.16b, v0.16b
-+ mov v2.16b, v0.16b
-+ mov v3.16b, v0.16b
- intra_pred_dc_uv_fillblock_w32_y:
- st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x1], x2 // store dst[x]
- st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x1], x2
-@@ -585,9 +580,9 @@ intra_pred_dc_uv_fillblock_w32_y:
- intra_pred_dc_uv_fillblock_w64:
-
- sub x2, x2, #64
-- mov v1.8h, v0.8h
-- mov v2.8h, v0.8h
-- mov v3.8h, v0.8h
-+ mov v1.16b, v0.16b
-+ mov v2.16b, v0.16b
-+ mov v3.16b, v0.16b
- intra_pred_dc_uv_fillblock_w64_y:
- st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x1], #64
- st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x1], x2
-diff --git a/source/decore/arm64/itrans_arm64.c b/source/decore/arm64/itrans_arm64.c
-index d26ec5f..9b2362e 100644
---- a/source/decore/arm64/itrans_arm64.c
-+++ b/source/decore/arm64/itrans_arm64.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/itrans_arm64.h b/source/decore/arm64/itrans_arm64.h
-index c4977d0..15d9a4b 100644
---- a/source/decore/arm64/itrans_arm64.h
-+++ b/source/decore/arm64/itrans_arm64.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/itrans_dct2_arm64.S b/source/decore/arm64/itrans_dct2_arm64.S
-index 00b99e1..0f37c7e 100644
---- a/source/decore/arm64/itrans_dct2_arm64.S
-+++ b/source/decore/arm64/itrans_dct2_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -758,9 +753,9 @@ dct2_h16_1st_loopx:
- dct2_h16_2nd_transform:
-
- sub sp, sp, #48
-- sub x7, sp, #16
-- st1 {v10.8h, v11.8h}, [sp]
-- st1 {v12.8h}, [x7]
-+ add x7, sp, #16
-+ st1 {v10.8h, v11.8h}, [x7]
-+ st1 {v12.8h}, [sp]
-
- mov w8, #1
- lsl w8, w8, w5
-@@ -1059,8 +1054,8 @@ dct2_h16_2nd_loopx:
- cmp x8, x3
- blt dct2_h16_2nd_loopx
-
-- ld1 {v10.8h, v11.8h}, [sp], #32
- ld1 {v12.8h}, [sp], #16
-+ ld1 {v10.8h, v11.8h}, [sp], #32
- ld1 {v8.8h, v9.8h}, [sp], #32
-
- dct2_h16_end:
-diff --git a/source/decore/arm64/itrans_dct8_dst7_arm64.S b/source/decore/arm64/itrans_dct8_dst7_arm64.S
-index 340865c..5ba39e5 100644
---- a/source/decore/arm64/itrans_dct8_dst7_arm64.S
-+++ b/source/decore/arm64/itrans_dct8_dst7_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/pixel_arm64.S b/source/decore/arm64/pixel_arm64.S
-index bc79826..81fa81c 100644
---- a/source/decore/arm64/pixel_arm64.S
-+++ b/source/decore/arm64/pixel_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -285,8 +280,8 @@ padding_rows_lr_y:
-
- ld1r {v0.8h}, [x0]
- ld1r {v2.8h}, [x5] // right reference pointer
-- mov v1.8h, v0.8h
-- mov v3.8h, v2.8h
-+ mov v1.16b, v0.16b
-+ mov v3.16b, v2.16b
-
- sub x5, x0, x4
- add x6, x0, x2
-@@ -332,8 +327,8 @@ padding_rows_chroma_lr_y:
- ld1r {v0.4s}, [x0] // src[0] src[1]
- ld1r {v2.4s}, [x5] // right reference pointer
-
-- mov v1.4s, v0.4s
-- mov v3.4s, v2.4s
-+ mov v1.16b, v0.16b
-+ mov v3.16b, v2.16b
-
- sub x5, x0, x4
- add x6, x0, x2
-diff --git a/source/decore/arm64/sao_arm64.c b/source/decore/arm64/sao_arm64.c
-index dc1a5b0..37cf9e0 100644
---- a/source/decore/arm64/sao_arm64.c
-+++ b/source/decore/arm64/sao_arm64.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/arm64/sao_kernel_arm64.S b/source/decore/arm64/sao_kernel_arm64.S
-index 1546b17..b0d0bb8 100644
---- a/source/decore/arm64/sao_kernel_arm64.S
-+++ b/source/decore/arm64/sao_kernel_arm64.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -451,10 +446,10 @@ loop_x_eo_90_chroma_end:
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_135_arm64
- // get start_x_r0 and end_x_r0
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp]
- #endif
- sxtw x8, w8 // start_x_r0
- sxtw x9, w9 // end_x_r0
-@@ -537,10 +532,10 @@ test_loop_x_eo_135_end_r0:
-
- // ------- middle rows -------
- // get param
--#if defined(__ANDROID__)
-- ldp x7, x8, [sp, #16]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7, w8, [sp, #8]
-+#else
-+ ldp x7, x8, [sp, #16]
- #endif
- sxtw x7, w7 // start_x_r
- sxtw x8, w8 // end_x_r
-@@ -613,10 +608,10 @@ test_loop_x_eo_135_end_r:
- bgt test_loop_y_eo_135_r
-
- // ------- last row -------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16]
-+#else
-+ ldp x6, x7, [sp, #32]
- #endif
- sxtw x6, w6 // start_x_rn
- sxtw x7, w7 // end_x_rn
-@@ -691,10 +686,10 @@ test_loop_x_eo_135_end_rn:
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_135_chroma_arm64
-
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp]
- #endif
- sxtw x8, w8 // start_x_r0
- sxtw x9, w9 // end_x_r0
-@@ -793,10 +788,10 @@ loop_x_eo_135_chroma_end_r0:
- add x1, x1, x3 //-- dst+=dst_stride
-
- //--------------------------------middle rows--------------------------------
--#if defined(__ANDROID__)
-- ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7 , w8, [sp, #8] //-- x7=start_x_r; x8=end_x_r
-+#else
-+ ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
- #endif
- sxtw x7 , w7
- sxtw x8 , w8
-@@ -886,10 +881,10 @@ loop_x_eo_135_chroma_end_r:
- bgt loop_y_eo_135_chroma_r
-
- //---------------------------------last row--------------------------------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16] //-- x6=start_x_rn; x7=end_x_rn
-+#else
-+ ldp x6, x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
- #endif
- sxtw x7, w7
- sxtw x6, w6
-@@ -979,10 +974,10 @@ loop_x_eo_135_chroma_end_rn:
- * end_x_r0->x8, start_x_r->x9, end_x_r->x10, start_x_rn->x11, end_x_rn->x12
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_45_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp]
- #endif
- sxtw x8, w8 // start_x_r0
- sxtw x9, w9 // end_x_r0
-@@ -1064,10 +1059,10 @@ test_loop_x_eo_45_end_r0:
-
- // ------- middle rows -------
- // get param
--#if defined(__ANDROID__)
-- ldp x7, x8, [sp, #16] // x7 start_x_r; x8 end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7, w8, [sp, #8] // x7 start_x_r; x8 end_x_r
-+#else
-+ ldp x7, x8, [sp, #16] // x7 start_x_r; x8 end_x_r
- #endif
- sxtw x7, w7
- sxtw x8, w8
-@@ -1141,10 +1136,10 @@ test_loop_x_eo_45_end_r:
- bgt test_loop_y_eo_45_r
-
- // ------- last row -------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32] // $x6 start_x_rn; $x7 end_x_rn
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16] // $x6 start_x_rn; $x7 end_x_rn
-+#else
-+ ldp x6, x7, [sp, #32] // $x6 start_x_rn; $x7 end_x_rn
- #endif
- sxtw x6, w6
- sxtw x7, w7
-@@ -1217,10 +1212,10 @@ ret
- * end_x_r0->x8, start_x_r->x9, end_x_r->x10, start_x_rn->x11, end_x_rn->x12
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_45_chroma_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp]
- #endif
- sxtw x8, w8 // start_x_r0
- sxtw x9, w9 // end_x_r0
-@@ -1315,10 +1310,10 @@ loop_x_eo_45_chroma_end_r0:
- add x1, x1, x3 //-- dst+=dst_stride
-
- //--------------------------------middle rows--------------------------------
--#if defined(__ANDROID__)
-- ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7 , w8, [sp, #8] //-- x7=start_x_r; x8=end_x_r
-+#else
-+ ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
- #endif
- sxtw x7 , w7
- sxtw x8 , w8
-@@ -1405,10 +1400,10 @@ loop_x_eo_45_chroma_end_r:
- bgt loop_y_eo_45_chroma_r
-
- //---------------------------------last row--------------------------------
--#if defined(__ANDROID__)
-- ldp x6 , x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6 , w7, [sp, #16] //-- x6=start_x_rn; x7=end_x_rn
-+#else
-+ ldp x6 , x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
- #endif
- sxtw x7 , w7
- sxtw x6 , w6
-@@ -2221,10 +2216,10 @@ loop_x_eo_90_chroma_end:
- * src->x0, dst->x1, src_stride->x2, dst_stride->x3, offset->x4, mask->x5, mb_height->x6, bit_depth->x7
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_135_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp] // start_x_r0 and end_x_r0
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp] // start_x_r0 and end_x_r0
- #endif
-
- sxtw x8, w8 // start_x_r0
-@@ -2336,10 +2331,10 @@ test_loop_x_eo_135_end_r0:
-
- // ------- middle rows -------
- // get param
--#if defined(__ANDROID__)
-- ldp x7, x8, [sp, #16]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7, w8, [sp, #8]
-+#else
-+ ldp x7, x8, [sp, #16]
- #endif
- sxtw x7, w7 // x7 start_x_r
- sxtw x8, w8 // x8 end_x_r
-@@ -2431,10 +2426,10 @@ test_loop_x_eo_135_end_r:
- bgt test_loop_y_eo_135_r
-
- // ------- last row -------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16]
-+#else
-+ ldp x6, x7, [sp, #32]
- #endif
- sxtw x6, w6 // start_x_rn
- sxtw x7, w7 // end_x_rn
-@@ -2527,10 +2522,10 @@ test_loop_x_eo_135_end_rn:
- * src->x0, dst->x1, src_stride->x2, dst_stride->x3, offset->x4, mask->x5, mb_height->x6, bit_depth->x7
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_135_chroma_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp] // start_x_r0 and end_x_r0
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp] // start_x_r0 and end_x_r0
- #endif
-
- mov w13, #1
-@@ -2636,10 +2631,10 @@ loop_x_eo_135_chroma_end_r0:
- add x1, x1, x3 //-- dst+=dst_stride
-
- //--------------------------------middle rows--------------------------------
--#if defined(__ANDROID__)
-- ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7 , w8, [sp, #8] //-- x7=start_x_r; x8=end_x_r
-+#else
-+ ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
- #endif
- sxtw x7 , w7
- sxtw x8 , w8
-@@ -2730,10 +2725,10 @@ loop_x_eo_135_chroma_end_r:
- bgt loop_y_eo_135_chroma_r
-
- //---------------------------------last row--------------------------------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16] //-- x6=start_x_rn; x7=end_x_rn
-+#else
-+ ldp x6, x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
- #endif
- sxtw x7, w7
- sxtw x6, w6
-@@ -2822,10 +2817,10 @@ loop_x_eo_135_chroma_end_rn:
- * src->x0, dst->x1, src_stride->x2, dst_stride->x3, offset->x4, mask->x5, mb_height->x6, bit_depth->x7
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_45_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp] // start_x_r0 and end_x_r0
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp] // start_x_r0 and end_x_r0
- #endif
-
- mov w12, #1
-@@ -2936,10 +2931,10 @@ test_loop_x_eo_45_end_r0:
-
- // ------- middle rows -------
- // get param
--#if defined(__ANDROID__)
-- ldp x7, x8, [sp, #16] // x7 start_x_r; x8 end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7, w8, [sp, #8] // x7 start_x_r; x8 end_x_r
-+#else
-+ ldp x7, x8, [sp, #16] // x7 start_x_r; x8 end_x_r
- #endif
- sxtw x7, w7
- sxtw x8, w8
-@@ -3031,10 +3026,10 @@ test_loop_x_eo_45_end_r:
- bgt test_loop_y_eo_45_r
-
- // ------- last row -------
--#if defined(__ANDROID__)
-- ldp x6, x7, [sp, #32]
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6, w7, [sp, #16]
-+#else
-+ ldp x6, x7, [sp, #32]
- #endif
- sxtw x6, w6 // start_x_rn
- sxtw x7, w7 // end_x_rn
-@@ -3126,10 +3121,10 @@ test_loop_x_eo_45_end_rn:
- * src->x0, dst->x1, src_stride->x2, dst_stride->x3, offset->x4, mask->x5, mb_height->x6, bit_depth->x7
- ************************************************************************************************************************************/
- function uavs3d_sao_eo_45_chroma_arm64
--#if defined(__ANDROID__)
-- ldp x8, x9, [sp] // start_x_r0 and end_x_r0
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w8, w9, [sp]
-+#else
-+ ldp x8, x9, [sp] // start_x_r0 and end_x_r0
- #endif
-
- mov w12, #1
-@@ -3236,10 +3231,10 @@ loop_x_eo_45_chroma_end_r0:
- add x1, x1, x3 //-- dst+=dst_stride
-
- //--------------------------------middle rows--------------------------------
--#if defined(__ANDROID__)
-- ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w7 , w8, [sp, #8] //-- x7=start_x_r; x8=end_x_r
-+#else
-+ ldp x7 , x8, [sp, #16] //-- x7=start_x_r; x8=end_x_r
- #endif
- sxtw x7 , w7
- sxtw x8 , w8
-@@ -3328,10 +3323,10 @@ loop_x_eo_45_chroma_end_r:
- bgt loop_y_eo_45_chroma_r
-
- //---------------------------------last row--------------------------------
--#if defined(__ANDROID__)
-- ldp x6 , x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- ldp w6 , w7, [sp, #16] //-- x6=start_x_rn; x7=end_x_rn
-+#else
-+ ldp x6 , x7, [sp, #32] //-- x6=start_x_rn; x7=end_x_rn
- #endif
- sxtw x7 , w7
- sxtw x6 , w6
-diff --git a/source/decore/arm64/sao_kernel_arm64.h b/source/decore/arm64/sao_kernel_arm64.h
-index 03373ce..b9c448e 100644
---- a/source/decore/arm64/sao_kernel_arm64.h
-+++ b/source/decore/arm64/sao_kernel_arm64.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/alf_armv7.S b/source/decore/armv7/alf_armv7.S
-index 5b0e3e0..c87f29b 100644
---- a/source/decore/armv7/alf_armv7.S
-+++ b/source/decore/armv7/alf_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/armv7.c b/source/decore/armv7/armv7.c
-index 0be03a4..6ad9086 100644
---- a/source/decore/armv7/armv7.c
-+++ b/source/decore/armv7/armv7.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -242,7 +237,7 @@ void uavs3d_itrans_dct2_h64_w64_armv7(s16 *src, s16 *dst, int bit_depth)
-
- void uavs3d_funs_init_armv7()
- {
--#if BIT_DEPTH == 8
-+#if !COMPILE_10BIT
- uavs3d_funs_handle.sao[ Y_C] = uavs3d_sao_on_lcu_armv7;
- uavs3d_funs_handle.sao[UV_C] = uavs3d_sao_on_lcu_chroma_armv7;
- uavs3d_funs_handle.alf[ Y_C] = uavs3d_alf_one_lcu_armv7;
-diff --git a/source/decore/armv7/armv7.h b/source/decore/armv7/armv7.h
-index 60efd7e..0114927 100644
---- a/source/decore/armv7/armv7.h
-+++ b/source/decore/armv7/armv7.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/dct2_armv7.S b/source/decore/armv7/dct2_armv7.S
-index 82c2f82..05e965f 100644
---- a/source/decore/armv7/dct2_armv7.S
-+++ b/source/decore/armv7/dct2_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/deblock_armv7.S b/source/decore/armv7/deblock_armv7.S
-index 202d121..dcdeabf 100644
---- a/source/decore/armv7/deblock_armv7.S
-+++ b/source/decore/armv7/deblock_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/def_armv7.S b/source/decore/armv7/def_armv7.S
-index fdc3d27..861f016 100644
---- a/source/decore/armv7/def_armv7.S
-+++ b/source/decore/armv7/def_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -35,23 +30,18 @@
- * For more information, contact us at rgwang@pkusz.edu.cn.
- **************************************************************************************/
-
--#if defined(__ANDROID__)
--.macro function name
-- .global \name
-- .hidden \name
-- .type \name, %function
--\name:
--.endm
--#elif defined(__APPLE__)
-+#if defined(__APPLE__)
- .macro function name
- .text
- .align 4
- .global _\name
- _\name:
- .endm
--
-+#else
-+.macro function name
-+ .global \name
-+ .hidden \name
-+ .type \name, %function
-+\name:
-+.endm
- #endif
--
--#define COMPILE_10BIT 0
--
--
-diff --git a/source/decore/armv7/inter_pred_armv7.S b/source/decore/armv7/inter_pred_armv7.S
-index edbcc62..fd78ae4 100644
---- a/source/decore/armv7/inter_pred_armv7.S
-+++ b/source/decore/armv7/inter_pred_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/intra_pred_armv7.S b/source/decore/armv7/intra_pred_armv7.S
-index cbce583..807f6a5 100644
---- a/source/decore/armv7/intra_pred_armv7.S
-+++ b/source/decore/armv7/intra_pred_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/itrans_dct8_dst7_armv7.S b/source/decore/armv7/itrans_dct8_dst7_armv7.S
-index 129bbc3..d8d1ab1 100755
---- a/source/decore/armv7/itrans_dct8_dst7_armv7.S
-+++ b/source/decore/armv7/itrans_dct8_dst7_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/pixel_armv7.S b/source/decore/armv7/pixel_armv7.S
-index 83124a4..f88f474 100644
---- a/source/decore/armv7/pixel_armv7.S
-+++ b/source/decore/armv7/pixel_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/sao_armv7.c b/source/decore/armv7/sao_armv7.c
-index cec6880..8b3070e 100644
---- a/source/decore/armv7/sao_armv7.c
-+++ b/source/decore/armv7/sao_armv7.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/sao_kernel_armv7.S b/source/decore/armv7/sao_kernel_armv7.S
-index 0449ecc..1652c99 100644
---- a/source/decore/armv7/sao_kernel_armv7.S
-+++ b/source/decore/armv7/sao_kernel_armv7.S
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/armv7/sao_kernel_armv7.h b/source/decore/armv7/sao_kernel_armv7.h
-index d30c690..49b020b 100644
---- a/source/decore/armv7/sao_kernel_armv7.h
-+++ b/source/decore/armv7/sao_kernel_armv7.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/avx2/alf_avx2.c b/source/decore/avx2/alf_avx2.c
-index 74226b6..cc2cf5f 100644
---- a/source/decore/avx2/alf_avx2.c
-+++ b/source/decore/avx2/alf_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -489,7 +484,7 @@ void uavs3d_alf_one_lcu_one_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src
- __m256i T000, T001, T010, T011, T100, T101, T110, T111, T200, T201, T210, T211, T310, T311, T300, T301, T400, T401, T410, T411, T500, T501, T510, T511, T600, T601, T610, T611, T700, T701, T710, T711;
- __m256i E00, E01, E10, E11;
- __m256i C0, C1, C2, C3, C4, C5, C6, C7, C8;
-- __m256i S0, S00, S01, S1, S10, S11, S2, S20, S21, S3, S30, S31, S4, S40, S41, S5, S50, S51, S6, S7, S8, S60, S61, S70, S71, S80, S81, S82, S83, SS1, SS2, SS3, SS4;
-+ __m256i S0, S00, S01, S1, S10, S11, S2, S20, S21, S3, S30, S31, S4, S40, S41, S5, S50, S51, S6, S7, S60, S61, S70, S71, S80, S81, S82, S83, SS1, SS2, SS3, SS4;
- __m256i mAddOffset;
- __m256i mZero = _mm256_set1_epi16(0);
- __m256i mMax = _mm256_set1_epi16((short)((1 << sample_bit_depth) - 1));
-@@ -629,7 +624,7 @@ void uavs3d_alf_one_lcu_one_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src
- S5 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S50, 1));
- S6 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S60, 1));
- S7 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S70, 1));
-- S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S80, 1));
-+ //S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S80, 1));
- S0 = _mm256_add_epi32(S0, S1);
- S2 = _mm256_add_epi32(S2, S3);
- S4 = _mm256_add_epi32(S4, S5);
-@@ -803,7 +798,7 @@ void uavs3d_alf_one_lcu_one_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src
- S5 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S50, 1));
- S6 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S60, 1));
- S7 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S70, 1));
-- S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S80, 1));
-+ //S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S80, 1));
- S0 = _mm256_add_epi32(S0, S1);
- S2 = _mm256_add_epi32(S2, S3);
- S4 = _mm256_add_epi32(S4, S5);
-@@ -821,7 +816,7 @@ void uavs3d_alf_one_lcu_one_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src
- S5 = _mm256_cvtepi16_epi32(_mm256_castsi256_si128(S51));
- S6 = _mm256_cvtepi16_epi32(_mm256_castsi256_si128(S61));
- S7 = _mm256_cvtepi16_epi32(_mm256_castsi256_si128(S71));
-- S8 = _mm256_cvtepi16_epi32(_mm256_castsi256_si128(S81));
-+ //S8 = _mm256_cvtepi16_epi32(_mm256_castsi256_si128(S81));
- S0 = _mm256_add_epi32(S0, S1);
- S2 = _mm256_add_epi32(S2, S3);
- S4 = _mm256_add_epi32(S4, S5);
-@@ -839,7 +834,7 @@ void uavs3d_alf_one_lcu_one_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src
- S5 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S51, 1));
- S6 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S61, 1));
- S7 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S71, 1));
-- S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S81, 1));
-+ //S8 = _mm256_cvtepi16_epi32(_mm256_extracti128_si256(S81, 1));
- S0 = _mm256_add_epi32(S0, S1);
- S2 = _mm256_add_epi32(S2, S3);
- S4 = _mm256_add_epi32(S4, S5);
-@@ -1055,7 +1050,6 @@ void uavs3d_alf_one_lcu_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src, in
- int startPos = 0;
- int endPos = lcu_height;
- int xPosEnd = lcu_width << 1;
-- long long tmp[8];
-
- src += (startPos*i_src);
- dst += (startPos*i_dst);
-@@ -1066,22 +1060,14 @@ void uavs3d_alf_one_lcu_chroma_avx2(pel *dst, int i_dst, pel *src, int i_src, in
- T00 = _mm256_unpacklo_epi16(C8, C8);
- T01 = _mm256_unpackhi_epi16(C8, C8);
-
-- tmp[0] = _mm256_extract_epi64(T00, 0); // win32 compile error if C0 = _mm256_set1_epi64x(_mm256_extract_epi64(T00, 0));
-- tmp[1] = _mm256_extract_epi64(T00, 1);
-- tmp[2] = _mm256_extract_epi64(T00, 2);
-- tmp[3] = _mm256_extract_epi64(T00, 3);
-- tmp[4] = _mm256_extract_epi64(T01, 0);
-- tmp[5] = _mm256_extract_epi64(T01, 1);
-- tmp[6] = _mm256_extract_epi64(T01, 2);
-- tmp[7] = _mm256_extract_epi64(T01, 3);
-- C0 = _mm256_set1_epi64x(tmp[0]);
-- C1 = _mm256_set1_epi64x(tmp[1]);
-- C2 = _mm256_set1_epi64x(tmp[2]);
-- C3 = _mm256_set1_epi64x(tmp[3]);
-- C4 = _mm256_set1_epi64x(tmp[4]);
-- C5 = _mm256_set1_epi64x(tmp[5]);
-- C6 = _mm256_set1_epi64x(tmp[6]);
-- C7 = _mm256_set1_epi64x(tmp[7]);
-+ C0 = _mm256_permute4x64_epi64(T00, 0x00);
-+ C1 = _mm256_permute4x64_epi64(T00, 0x55);
-+ C2 = _mm256_permute4x64_epi64(T00, 0xaa);
-+ C3 = _mm256_permute4x64_epi64(T00, 0xff);
-+ C4 = _mm256_permute4x64_epi64(T01, 0x00);
-+ C5 = _mm256_permute4x64_epi64(T01, 0x55);
-+ C6 = _mm256_permute4x64_epi64(T01, 0xaa);
-+ C7 = _mm256_permute4x64_epi64(T01, 0xff);
- C8 = _mm256_set1_epi32((unsigned short)coef[16] + (((unsigned short)coef[17]) << 16));
- C8 = _mm256_unpacklo_epi16(C8, C8);
-
-diff --git a/source/decore/avx2/avx2.c b/source/decore/avx2/avx2.c
-index a17dac5..d4b3ebf 100644
---- a/source/decore/avx2/avx2.c
-+++ b/source/decore/avx2/avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -183,11 +178,13 @@ void uavs3d_funs_init_avx2()
- uavs3d_funs_handle.ipcpy[4] = uavs3d_if_cpy_w64_avx2;
- uavs3d_funs_handle.ipcpy[5] = uavs3d_if_cpy_w128_avx2;
-
-+ uavs3d_funs_handle.ipflt[IPFILTER_H_4][1] = uavs3d_if_hor_chroma_w8_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_4][2] = uavs3d_if_hor_chroma_w16_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_4][3] = uavs3d_if_hor_chroma_w16x_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_4][4] = uavs3d_if_hor_chroma_w16x_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_4][5] = uavs3d_if_hor_chroma_w16x_avx2;
-
-+ uavs3d_funs_handle.ipflt[IPFILTER_H_8][1] = uavs3d_if_hor_luma_w8_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_8][2] = uavs3d_if_hor_luma_w16_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_8][3] = uavs3d_if_hor_luma_w16x_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_H_8][4] = uavs3d_if_hor_luma_w16x_avx2;
-@@ -198,6 +195,7 @@ void uavs3d_funs_init_avx2()
- uavs3d_funs_handle.ipflt[IPFILTER_V_4][4] = uavs3d_if_ver_chroma_w32x_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_V_4][5] = uavs3d_if_ver_chroma_w32x_avx2;
-
-+ uavs3d_funs_handle.ipflt[IPFILTER_V_8][1] = uavs3d_if_ver_luma_w8_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_V_8][2] = uavs3d_if_ver_luma_w16_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_V_8][3] = uavs3d_if_ver_luma_w16x_avx2;
- uavs3d_funs_handle.ipflt[IPFILTER_V_8][4] = uavs3d_if_ver_luma_w16x_avx2;
-@@ -209,6 +207,8 @@ void uavs3d_funs_init_avx2()
- uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_4][4] = uavs3d_if_hor_ver_chroma_w16x_avx2;
- uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_4][5] = uavs3d_if_hor_ver_chroma_w16x_avx2;
-
-+ uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_8][0] = uavs3d_if_hor_ver_luma_w4_avx2;
-+ uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_8][1] = uavs3d_if_hor_ver_luma_w8_avx2;
- uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_8][2] = uavs3d_if_hor_ver_luma_w16x_avx2;
- uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_8][3] = uavs3d_if_hor_ver_luma_w16x_avx2;
- uavs3d_funs_handle.ipflt_ext[IPFILTER_EXT_8][4] = uavs3d_if_hor_ver_luma_w16x_avx2;
-diff --git a/source/decore/avx2/avx2.h b/source/decore/avx2/avx2.h
-index 43d0ad3..a29cfe8 100644
---- a/source/decore/avx2/avx2.h
-+++ b/source/decore/avx2/avx2.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/avx2/inter_pred_avx2.c b/source/decore/avx2/inter_pred_avx2.c
-index c7287d3..cbaa2fc 100644
---- a/source/decore/avx2/inter_pred_avx2.c
-+++ b/source/decore/avx2/inter_pred_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
--* Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+* Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
--* 3. All advertising materials mentioning features or use of this software
--* must display the following acknowledgement:
--* This product includes the software uAVS3d developed by
--* Peking University Shenzhen Graduate School, Peng Cheng Laboratory
--* and Guangdong Bohua UHD Innovation Corporation.
--* 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+* 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -33,7 +28,7 @@
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * For more information, contact us at rgwang@pkusz.edu.cn.
--**************************************************************************************/
-+**************************************************************************************/
-
- #include "avx2.h"
-
-@@ -134,9 +129,11 @@ void uavs3d_if_hor_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst
-
- __m256i mCoefy1_hor = _mm256_set1_epi16(*(s16*)coeff);
- __m256i mCoefy2_hor = _mm256_set1_epi16(*(s16*)(coeff + 2));
-- __m256i mSwitch = _mm256_setr_epi8(0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9);
-+ __m256i mSwitch0 = _mm256_setr_epi8(0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9);
-+ __m256i mSwitch1 = _mm256_setr_epi8(0+4, 2+4, 1+4, 3+4, 2+4, 4+4, 3+4, 5+4, 4+4, 6+4, 5+4, 7+4, 6+4, 8+4, 7+4, 9+4,
-+ 0+4, 2+4, 1+4, 3+4, 2+4, 4+4, 3+4, 5+4, 4+4, 6+4, 5+4, 7+4, 6+4, 8+4, 7+4, 9+4);
- __m256i mAddOffset = _mm256_set1_epi16(offset);
-- __m256i T0, T1, S0, S1, R0, R1, sum;
-+ __m256i T0, T1, S0, R0, R1, sum;
- __m128i s0, s1;
-
- src -= 2;
-@@ -144,27 +141,27 @@ void uavs3d_if_hor_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst
- while (height > 0) {
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-
- S0 = _mm256_set_m128i(s1, s0);
-- S1 = _mm256_srli_si256(S0, 4);
-
-- R0 = _mm256_shuffle_epi8(S0, mSwitch); // 4 rows s0 and s1
-- R1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ R0 = _mm256_shuffle_epi8(S0, mSwitch0); // 4 rows s0 and s1
-+ R1 = _mm256_shuffle_epi8(S0, mSwitch1);
-
- T0 = _mm256_maddubs_epi16(R0, mCoefy1_hor); // 4x4: s0*c0 + s1*c1
- T1 = _mm256_maddubs_epi16(R1, mCoefy2_hor);
- sum = _mm256_add_epi16(T0, T1);
-
-- sum = _mm256_add_epi16(sum, mAddOffset);
-+ sum = _mm256_add_epi16(sum, mAddOffset);
- sum = _mm256_srai_epi16(sum, shift);
-
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(sum), _mm256_extracti128_si256(sum, 1));
-- s1 = _mm_srli_si128(s0, 8);
- _mm_storel_epi64((__m128i*)(dst), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), s1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(s0));
-
- height -= 2;
-- src += i_src << 1;
- dst += i_dst << 1;
- }
- }
-@@ -184,9 +181,11 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= 2;
-
- while (height) {
-- uavs3d_prefetch(src + i_src*2, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- S2 = _mm256_permute4x64_epi64(S0, 0x94);
- S3 = _mm256_permute4x64_epi64(S1, 0x94);
- R0 = _mm256_shuffle_epi8(S2, mSwitch1);
-@@ -200,6 +199,8 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- sum0 = _mm256_add_epi16(T0, T1);
- sum1 = _mm256_add_epi16(T2, T3);
-
-+ height -= 2;
-+
- sum0 = _mm256_add_epi16(sum0, mAddOffset);
- sum1 = _mm256_add_epi16(sum1, mAddOffset);
- sum0 = _mm256_srai_epi16(sum0, shift);
-@@ -207,8 +208,6 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- _mm_storeu_si128((__m128i*)(dst), _mm_packus_epi16(_mm256_castsi256_si128(sum0), _mm256_extracti128_si256(sum0, 1)));
- _mm_storeu_si128((__m128i*)(dst + i_dst), _mm_packus_epi16(_mm256_castsi256_si128(sum1), _mm256_extracti128_si256(sum1, 1)));
-
-- height -= 2;
-- src += i_src << 1;
- dst += i_dst << 1;
- }
- }
-@@ -228,10 +227,10 @@ void uavs3d_if_hor_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= 2;
-
- while (height--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
--
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + 16));
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+
- S2 = _mm256_permute4x64_epi64(S0, 0x94);
- S3 = _mm256_permute4x64_epi64(S1, 0x94);
- R0 = _mm256_shuffle_epi8(S2, mSwitch1);
-@@ -308,59 +307,52 @@ void uavs3d_if_hor_luma_w4_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- const int offset = 32;
- const int shift = 6;
- __m256i mAddOffset = _mm256_set1_epi16(offset);
-- __m256i mSwitch1 = _mm256_setr_epi8(0, 1, 1, 2, 2, 3, 3, 4, 8, 9, 9, 10, 10, 11, 11, 12, 0, 1, 1, 2, 2, 3, 3, 4, 8, 9, 9, 10, 10, 11, 11, 12);
-- __m256i mSwitch2 = _mm256_setr_epi8(2, 3, 3, 4, 4, 5, 5, 6, 10, 11, 11, 12, 12, 13, 13, 14, 2, 3, 3, 4, 4, 5, 5, 6, 10, 11, 11, 12, 12, 13, 13, 14);
-- __m256i T0, T1, T2, T3, S0, S1, S2, S3, sum;
-+ __m256i mSwitch1 = _mm256_setr_epi8(0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6);
-+ __m256i mSwitch2 = _mm256_setr_epi8(4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10);
-+ __m256i T0, T1, T2, T3, S0, S1, sum;
- __m256i r0, r1, r2, r3;
- __m128i s0, s1, s2, s3;
-- __m256i mCoefy1_hor = _mm256_set1_epi16(*(s16*)coeff);
-- __m256i mCoefy2_hor = _mm256_set1_epi16(*(s16*)(coeff + 2));
-- __m256i mCoefy3_hor = _mm256_set1_epi16(*(s16*)(coeff + 4));
-- __m256i mCoefy4_hor = _mm256_set1_epi16(*(s16*)(coeff + 6));
-+ __m256i mCoefy1_hor = _mm256_set1_epi32(*(s32*)coeff);
-+ __m256i mCoefy2_hor = _mm256_set1_epi32(*(s32*)(coeff + 4));
- src -= 3;
-
- while (height > 0) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
- s2 = _mm_loadu_si128((__m128i*)(src + i_src * 2));
- s3 = _mm_loadu_si128((__m128i*)(src + i_src * 3));
-+ src += i_src << 2;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-
- S0 = _mm256_set_m128i(s2, s0);
- S1 = _mm256_set_m128i(s3, s1);
-
-- S2 = _mm256_srli_si256(S0, 4);
-- S3 = _mm256_srli_si256(S1, 4);
--
-- T0 = _mm256_unpacklo_epi64(S0, S1);
-- T1 = _mm256_unpacklo_epi64(S2, S3);
--
-- r0 = _mm256_shuffle_epi8(T0, mSwitch1);
-- r1 = _mm256_shuffle_epi8(T0, mSwitch2);
-- r2 = _mm256_shuffle_epi8(T1, mSwitch1);
-- r3 = _mm256_shuffle_epi8(T1, mSwitch2);
-+ r0 = _mm256_shuffle_epi8(S0, mSwitch1);
-+ r1 = _mm256_shuffle_epi8(S0, mSwitch2);
-+ r2 = _mm256_shuffle_epi8(S1, mSwitch1);
-+ r3 = _mm256_shuffle_epi8(S1, mSwitch2);
-
- T0 = _mm256_maddubs_epi16(r0, mCoefy1_hor);
- T1 = _mm256_maddubs_epi16(r1, mCoefy2_hor);
-- T2 = _mm256_maddubs_epi16(r2, mCoefy3_hor);
-- T3 = _mm256_maddubs_epi16(r3, mCoefy4_hor);
-+ T2 = _mm256_maddubs_epi16(r2, mCoefy1_hor);
-+ T3 = _mm256_maddubs_epi16(r3, mCoefy2_hor);
-
- T0 = _mm256_add_epi16(T0, T1);
- T1 = _mm256_add_epi16(T2, T3);
-- sum = _mm256_add_epi16(T0, T1);
-+ sum = _mm256_hadd_epi16(T0, T1);
-
- sum = _mm256_add_epi16(sum, mAddOffset);
- sum = _mm256_srai_epi16(sum, shift);
-
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(sum), _mm256_extracti128_si256(sum, 1));
-
-+ height -= 4;
- M32(dst) = _mm_extract_epi32(s0, 0);
- M32(dst + i_dst) = _mm_extract_epi32(s0, 1);
- M32(dst + i_dst * 2) = _mm_extract_epi32(s0, 2);
- M32(dst + i_dst * 3) = _mm_extract_epi32(s0, 3);
-
-- height -= 4;
-- src += i_src << 2;
- dst += i_dst << 2;
- }
- }
-@@ -385,9 +377,11 @@ void uavs3d_if_hor_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3;
-
- while (height) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- S = _mm256_set_m128i(s1, s0);
-
- r0 = _mm256_shuffle_epi8(S, mSwitch1);
-@@ -407,13 +401,11 @@ void uavs3d_if_hor_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- sum = _mm256_add_epi16(sum, mAddOffset);
- sum = _mm256_srai_epi16(sum, shift);
-
-+ height -= 2;
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(sum), _mm256_extracti128_si256(sum, 1));
-- s1 = _mm_srli_si128(s0, 8);
- _mm_storel_epi64((__m128i*)(dst), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), s1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(s0));
-
-- height -= 2;
-- src += i_src << 1;
- dst += i_dst << 1;
- }
- }
-@@ -437,11 +429,13 @@ void uavs3d_if_hor_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3;
-
- while (height) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_permute4x64_epi64(S0, 0x94);
- S3 = _mm256_permute4x64_epi64(S1, 0x94);
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-
- r0 = _mm256_shuffle_epi8(S2, mSwitch1);
- r1 = _mm256_shuffle_epi8(S2, mSwitch2);
-@@ -475,11 +469,10 @@ void uavs3d_if_hor_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- sum0 = _mm256_srai_epi16(sum0, shift);
- sum1 = _mm256_srai_epi16(sum1, shift);
-
-+ height -= 2;
- _mm_storeu_si128((__m128i*)(dst), _mm_packus_epi16(_mm256_castsi256_si128(sum0), _mm256_extracti128_si256(sum0, 1)));
- _mm_storeu_si128((__m128i*)(dst + i_dst), _mm_packus_epi16(_mm256_castsi256_si128(sum1), _mm256_extracti128_si256(sum1, 1)));
-
-- height -= 2;
-- src += i_src << 1;
- dst += i_dst << 1;
- }
- }
-@@ -503,13 +496,14 @@ void uavs3d_if_hor_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3;
-
- while (height--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
--
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + 16));
- S2 = _mm256_permute4x64_epi64(S0, 0x94);
- S3 = _mm256_permute4x64_epi64(S1, 0x94);
-
-+ src += i_src;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+
- r0 = _mm256_shuffle_epi8(S2, mSwitch1);
- r1 = _mm256_shuffle_epi8(S2, mSwitch2);
- r2 = _mm256_shuffle_epi8(S2, mSwitch3);
-@@ -545,7 +539,6 @@ void uavs3d_if_hor_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- _mm_storeu_si128((__m128i*)(dst), _mm_packus_epi16(_mm256_castsi256_si128(sum0), _mm256_extracti128_si256(sum0, 1)));
- _mm_storeu_si128((__m128i*)(dst + 16), _mm_packus_epi16(_mm256_castsi256_si128(sum1), _mm256_extracti128_si256(sum1, 1)));
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -635,15 +628,17 @@ void uavs3d_if_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst
- src -= i_src;
-
- while (height) {
-- uavs3d_prefetch(src + 5 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 6 * i_src, _MM_HINT_NTA);
-- height -= 2;
- s0 = _mm_loadl_epi64((__m128i*)(src));
- s1 = _mm_loadl_epi64((__m128i*)(src + i_src));
- s2 = _mm_loadl_epi64((__m128i*)(src + i_src2));
- s3 = _mm_loadl_epi64((__m128i*)(src + i_src3));
- s4 = _mm_loadl_epi64((__m128i*)(src + i_src4));
-
-+ src += 2 * i_src;
-+ height -= 2;
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src4, _MM_HINT_NTA);
-+
- S0 = _mm256_set_m128i(s1, s0);
- S1 = _mm256_set_m128i(s2, s1);
- S2 = _mm256_set_m128i(s3, s2);
-@@ -660,12 +655,10 @@ void uavs3d_if_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst
- mVal = _mm256_add_epi16(mVal, mAddOffset);
- mVal = _mm256_srai_epi16(mVal, shift);
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(mVal), _mm256_extracti128_si256(mVal, 1));
-- s1 = _mm_srli_si128(s0, 8);
-
- _mm_storel_epi64((__m128i*)(dst), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), s1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(s0));
-
-- src += 2 * i_src;
- dst += 2 * i_dst;
- }
- }
-@@ -687,15 +680,17 @@ void uavs3d_if_ver_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= i_src;
-
- while (height) {
-- uavs3d_prefetch(src + 5 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 6 * i_src, _MM_HINT_NTA);
-- height -= 2;
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
- s2 = _mm_loadu_si128((__m128i*)(src + i_src2));
- s3 = _mm_loadu_si128((__m128i*)(src + i_src3));
- s4 = _mm_loadu_si128((__m128i*)(src + i_src4));
-
-+ src += 2 * i_src;
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src4, _MM_HINT_NTA);
-+ height -= 2;
-+
- S0 = _mm256_set_m128i(s1, s0);
- S1 = _mm256_set_m128i(s2, s1);
- S2 = _mm256_set_m128i(s3, s2);
-@@ -723,7 +718,6 @@ void uavs3d_if_ver_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(mVal0));
- _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_extracti128_si256(mVal0, 1));
-
-- src += 2 * i_src;
- dst += 2 * i_dst;
- }
- }
-@@ -744,15 +738,17 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= i_src;
-
- while (height) {
-- uavs3d_prefetch(src + 5 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 6 * i_src, _MM_HINT_NTA);
-- height -= 2;
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
- S3 = _mm256_loadu_si256((__m256i*)(src + i_src3));
- S4 = _mm256_loadu_si256((__m256i*)(src + i_src4));
-
-+ src += 2 * i_src;
-+ height -= 2;
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src4, _MM_HINT_NTA);
-+
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpackhi_epi8(S0, S1);
- T2 = _mm256_unpacklo_epi8(S2, S3);
-@@ -790,7 +786,6 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- _mm256_storeu_si256((__m256i*)dst, mVal0);
- _mm256_storeu_si256((__m256i*)(dst + i_dst), mVal2);
-
-- src += 2 * i_src;
- dst += 2 * i_dst;
-
- }
-@@ -811,7 +806,6 @@ void uavs3d_if_ver_chroma_w64_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= i_src;
-
- while (height--){
-- uavs3d_prefetch(src + 4 * i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S4 = _mm256_loadu_si256((__m256i*)(src + 32));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-@@ -821,6 +815,7 @@ void uavs3d_if_ver_chroma_w64_avx2(const pel *src, int i_src, pel *dst, int i_ds
- S3 = _mm256_loadu_si256((__m256i*)(src + i_src3));
- S7 = _mm256_loadu_si256((__m256i*)(src + i_src3 + 32));
-
-+ src += i_src;
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpacklo_epi8(S2, S3);
- T2 = _mm256_unpackhi_epi8(S0, S1);
-@@ -830,6 +825,8 @@ void uavs3d_if_ver_chroma_w64_avx2(const pel *src, int i_src, pel *dst, int i_ds
- T6 = _mm256_unpackhi_epi8(S4, S5);
- T7 = _mm256_unpackhi_epi8(S6, S7);
-
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+
- T0 = _mm256_maddubs_epi16(T0, coeff0);
- T1 = _mm256_maddubs_epi16(T1, coeff1);
- T2 = _mm256_maddubs_epi16(T2, coeff0);
-@@ -858,7 +855,6 @@ void uavs3d_if_ver_chroma_w64_avx2(const pel *src, int i_src, pel *dst, int i_ds
- _mm256_storeu_si256((__m256i*)(dst), mVal0);
- _mm256_storeu_si256((__m256i*)(dst + 32), mVal1);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -878,7 +874,6 @@ void uavs3d_if_ver_chroma_w128_avx2(const pel *src, int i_src, pel *dst, int i_d
- src -= i_src;
-
- while (height--) {
-- uavs3d_prefetch(src + 4 * i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S4 = _mm256_loadu_si256((__m256i*)(src + 32));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-@@ -934,6 +929,9 @@ void uavs3d_if_ver_chroma_w128_avx2(const pel *src, int i_src, pel *dst, int i_d
- S3 = _mm256_loadu_si256((__m256i*)(src + i_src3 + 64));
- S7 = _mm256_loadu_si256((__m256i*)(src + i_src3 + 96));
-
-+ src += i_src;
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpacklo_epi8(S2, S3);
- T2 = _mm256_unpackhi_epi8(S0, S1);
-@@ -971,7 +969,6 @@ void uavs3d_if_ver_chroma_w128_avx2(const pel *src, int i_src, pel *dst, int i_d
- _mm256_storeu_si256((__m256i*)(dst + 64), mVal0);
- _mm256_storeu_si256((__m256i*)(dst + 96), mVal1);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -1078,7 +1075,6 @@ void uavs3d_if_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- while (height) {
- __m128i S0, S1, S2, S3, S4, S5, S6, S7, S8;
-
-- height -= 2;
- S0 = _mm_loadl_epi64((__m128i*)(src));
- S1 = _mm_loadl_epi64((__m128i*)(src + i_src));
- S2 = _mm_loadl_epi64((__m128i*)(src + i_src2));
-@@ -1098,6 +1094,11 @@ void uavs3d_if_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- R6 = _mm256_set_m128i(S7, S6);
- R7 = _mm256_set_m128i(S8, S7);
-
-+ src += 2 * i_src;
-+ height -= 2;
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src8, _MM_HINT_NTA);
-+
- T0 = _mm256_unpacklo_epi8(R0, R1);
- T1 = _mm256_unpacklo_epi8(R2, R3);
- T2 = _mm256_unpacklo_epi8(R4, R5);
-@@ -1115,11 +1116,9 @@ void uavs3d_if_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- mVal = _mm256_add_epi16(mVal, mAddOffset);
- mVal = _mm256_srai_epi16(mVal, shift);
- S0 = _mm_packus_epi16(_mm256_castsi256_si128(mVal), _mm256_extracti128_si256(mVal, 1));
-- S1 = _mm_srli_si128(S0, 8);
-
- _mm_storel_epi64((__m128i*)(dst), S0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), S1);
-- src += 2 * i_src;
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(S0));
- dst += 2 * i_dst;
- }
- }
-@@ -1147,10 +1146,6 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
-
- while(height) {
- __m128i S0, S1, S2, S3, S4, S5, S6, S7, S8;
-- uavs3d_prefetch(src + 9 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 10 * i_src, _MM_HINT_NTA);
--
-- height -= 2;
- S0 = _mm_loadu_si128((__m128i*)(src));
- S1 = _mm_loadu_si128((__m128i*)(src + i_src));
- S2 = _mm_loadu_si128((__m128i*)(src + i_src2));
-@@ -1170,6 +1165,12 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- R6 = _mm256_set_m128i(S6, S7);
- R7 = _mm256_set_m128i(S7, S8);
-
-+ src += 2 * i_src;
-+ height -= 2;
-+
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src8, _MM_HINT_NTA);
-+
- T0 = _mm256_unpacklo_epi8(R0, R1);
- T1 = _mm256_unpackhi_epi8(R0, R1);
- T2 = _mm256_unpacklo_epi8(R2, R3);
-@@ -1203,7 +1204,6 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
-
- _mm_storeu_si128((__m128i*)dst, _mm256_extractf128_si256(mVal1, 1));
- _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_castsi256_si128(mVal1));
-- src += 2 * i_src;
- dst += 2 * i_dst;
- }
- }
-@@ -1230,7 +1230,6 @@ void uavs3d_if_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3 * i_src;
- while (height--) {
- __m256i S0, S1, S2, S3, S4, S5, S6, S7;
-- uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
-@@ -1240,6 +1239,7 @@ void uavs3d_if_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- S6 = _mm256_loadu_si256((__m256i*)(src + i_src6));
- S7 = _mm256_loadu_si256((__m256i*)(src + i_src7));
-
-+ src += i_src;
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpacklo_epi8(S2, S3);
- T2 = _mm256_unpacklo_epi8(S4, S5);
-@@ -1249,6 +1249,8 @@ void uavs3d_if_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- T6 = _mm256_unpackhi_epi8(S4, S5);
- T7 = _mm256_unpackhi_epi8(S6, S7);
-
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
-+
- T0 = _mm256_maddubs_epi16(T0, coeff0);
- T1 = _mm256_maddubs_epi16(T1, coeff1);
- T2 = _mm256_maddubs_epi16(T2, coeff2);
-@@ -1273,7 +1275,6 @@ void uavs3d_if_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_dst,
-
- _mm256_storeu_si256((__m256i*)(dst), mVal1);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -1295,12 +1296,11 @@ void uavs3d_if_ver_luma_w64_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- __m256i coeff3 = _mm256_set1_epi16(*(s16*)(coeff + 6));
- __m256i T0, T1, T2, T3, T4, T5, T6, T7, mVal1, mVal2;
-
-- src -= 3 * i_src;
-+ src -= i_src3;
-
- while (height--) {
- const pel *p = src + 32;
- __m256i S0, S1, S2, S3, S4, S5, S6, S7;
-- uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
-@@ -1352,6 +1352,7 @@ void uavs3d_if_ver_luma_w64_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- S6 = _mm256_loadu_si256((__m256i*)(p + i_src6));
- S7 = _mm256_loadu_si256((__m256i*)(p + i_src7));
-
-+ src += i_src;
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpacklo_epi8(S2, S3);
- T2 = _mm256_unpacklo_epi8(S4, S5);
-@@ -1361,6 +1362,8 @@ void uavs3d_if_ver_luma_w64_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- T6 = _mm256_unpackhi_epi8(S4, S5);
- T7 = _mm256_unpackhi_epi8(S6, S7);
-
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
-+
- T0 = _mm256_maddubs_epi16(T0, coeff0);
- T1 = _mm256_maddubs_epi16(T1, coeff1);
- T2 = _mm256_maddubs_epi16(T2, coeff2);
-@@ -1385,7 +1388,6 @@ void uavs3d_if_ver_luma_w64_avx2(const pel *src, int i_src, pel *dst, int i_dst,
-
- _mm256_storeu_si256((__m256i*)(dst + 32), mVal1);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -1412,7 +1414,6 @@ void uavs3d_if_ver_luma_w128_avx2(const pel *src, int i_src, pel *dst, int i_dst
- while (height--) {
- const pel *p = src + 32;
- __m256i S0, S1, S2, S3, S4, S5, S6, S7;
-- uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
-@@ -1552,6 +1553,8 @@ void uavs3d_if_ver_luma_w128_avx2(const pel *src, int i_src, pel *dst, int i_dst
- S6 = _mm256_loadu_si256((__m256i*)(p + i_src6));
- S7 = _mm256_loadu_si256((__m256i*)(p + i_src7));
-
-+ src += i_src;
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
- T0 = _mm256_unpacklo_epi8(S0, S1);
- T1 = _mm256_unpacklo_epi8(S2, S3);
- T2 = _mm256_unpacklo_epi8(S4, S5);
-@@ -1585,7 +1588,6 @@ void uavs3d_if_ver_luma_w128_avx2(const pel *src, int i_src, pel *dst, int i_dst
-
- _mm256_storeu_si256((__m256i*)(dst + 96), mVal1);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -1668,6 +1670,8 @@ void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i
- S2 = _mm256_permute2x128_si256(mVal[1], mVal[2], 0x21);
- S3 = mVal[2];
-
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+
- T0 = _mm256_unpacklo_epi16(S0, S1);
- T1 = _mm256_unpacklo_epi16(S2, S3);
- T2 = _mm256_unpackhi_epi16(S0, S1);
-@@ -1709,17 +1713,15 @@ void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i
- T0 = _mm256_srai_epi32(T0, shift);
- T2 = _mm256_srai_epi32(T2, shift);
-
-- s0 = _mm_packus_epi16(_mm256_castsi256_si128(R0), _mm256_extracti128_si256(R0, 1));
-- s1 = _mm_srli_si128(s0, 8);
-+ s2 = _mm_packus_epi16(_mm256_castsi256_si128(R0), _mm256_extracti128_si256(R0, 1));
-
- T0 = _mm256_packs_epi32(T0, T2);
-- s2 = _mm_packus_epi16(_mm256_castsi256_si128(T0), _mm256_extracti128_si256(T0, 1));
-- s3 = _mm_srli_si128(s2, 8);
-+ s3 = _mm_packus_epi16(_mm256_castsi256_si128(T0), _mm256_extracti128_si256(T0, 1));
-
-- _mm_storel_epi64((__m128i*)(dst), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), s1);
-- _mm_storel_epi64((__m128i*)(dst + i_dst*2), s2);
-- _mm_storel_epi64((__m128i*)(dst + i_dst*3), s3);
-+ _mm_storel_epi64((__m128i*)(dst), s2);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(s2));
-+ _mm_storel_epi64((__m128i*)(dst + i_dst*2), s3);
-+ _mm_storeh_pi((__m64*)(dst + i_dst*3), _mm_castsi128_ps(s3));
-
- dst += i_dst << 2;
- height -= 4;
-@@ -1756,17 +1758,17 @@ void uavs3d_if_hor_ver_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int
- row = height + 3;
-
- while (row--) {
-- uavs3d_prefetch(src + i_src*2, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
-+ src += i_src;
- S1 = _mm256_permute4x64_epi64(S0, 0x94);
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
- R0 = _mm256_shuffle_epi8(S1, mSwitch1);
- R1 = _mm256_shuffle_epi8(S1, mSwitch2);
- T0 = _mm256_maddubs_epi16(R0, mCoefy1_hor);
- T1 = _mm256_maddubs_epi16(R1, mCoefy2_hor);
- sum = _mm256_add_epi16(T0, T1);
-
-- _mm256_storeu_si256((__m256i*)(tmp), sum);
-- src += i_src;
-+ _mm256_store_si256((__m256i*)(tmp), sum);
- tmp += i_tmp;
- }
-
-@@ -1878,8 +1880,8 @@ void uavs3d_if_hor_ver_chroma_w32x_avx2(const pel *src, int i_src, pel *dst, int
- sum0 = _mm256_add_epi16(T0, T1);
- sum1 = _mm256_add_epi16(T2, T3);
-
-- _mm256_storeu_si256((__m256i*)(tmp + col), sum0);
-- _mm256_storeu_si256((__m256i*)(tmp + col + 16), sum1);
-+ _mm256_store_si256((__m256i*)(tmp + col), sum0);
-+ _mm256_store_si256((__m256i*)(tmp + col + 16), sum1);
- }
- src += i_src;
- tmp += i_tmp;
-@@ -2055,8 +2057,8 @@ void uavs3d_if_hor_ver_luma_w4_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-- s2 = _mm_loadu_si128((__m128i*)(src + i_src * 2));
-- s3 = _mm_loadu_si128((__m128i*)(src + i_src * 3));
-+ s2 = _mm_loadu_si128((__m128i*)(src + i_src2));
-+ s3 = _mm_loadu_si128((__m128i*)(src + i_src3));
-
- S0 = _mm256_set_m128i(s2, s0);
- S1 = _mm256_set_m128i(s3, s1);
-@@ -2090,8 +2092,8 @@ void uavs3d_if_hor_ver_luma_w4_avx2(const pel *src, int i_src, pel *dst, int i_d
- // hor
- s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-- s2 = _mm_loadu_si128((__m128i*)(src + i_src * 2));
-- s3 = _mm_loadu_si128((__m128i*)(src + i_src * 3));
-+ s2 = _mm_loadu_si128((__m128i*)(src + i_src2));
-+ s3 = _mm_loadu_si128((__m128i*)(src + i_src3));
-
- S0 = _mm256_set_m128i(s2, s0);
- S1 = _mm256_set_m128i(s3, s1);
-@@ -2173,19 +2175,7 @@ void uavs3d_if_hor_ver_luma_w4_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
- {
-- const int i_tmp = 8;
-- const int i_tmp2 = 16;
-- const int i_tmp3 = 24;
-- const int i_tmp4 = 32;
-- const int i_tmp5 = 40;
-- const int i_tmp6 = 48;
-- const int i_tmp7 = 56;;
-- const int i_tmp8 = 64;
-- const int i_tmp9 = 72;;
-- const int i_tmp10 = 80;
- const int i_src2 = i_src << 1;
-- int row;
-- int shift = 12;
-
- __m256i T0, T1, T2, T3, T4, T5, T6, T7, T8, T9;
- __m256i r0, r1, r2, r3, r4, r5, r6, r7, r8, r9;
-@@ -2201,12 +2191,16 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- //HOR
- {
-+ int row;
- src = src - 3 * i_src - 3;
-
- // first row
- {
- __m128i mSrc0 = _mm_loadu_si128((__m128i*)(src));
- T0 = _mm256_set_m128i(mSrc0, mSrc0);
-+ src += i_src;
-+
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-
- r0 = _mm256_shuffle_epi8(T0, mSwitch1);
- r1 = _mm256_shuffle_epi8(T0, mSwitch2);
-@@ -2224,13 +2218,16 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- mVal[0] = _mm256_permute4x64_epi64(mVal[0], 0x44);
-
-- src += i_src;
- }
-
- for (row = 1; row < 4; row++) {
-- __m128i mSrc0 = _mm_loadu_si128((__m128i*)(src));
-+ __m128i mSrc0 = _mm_loadu_si128((__m128i*)(src));
- __m128i mSrc1 = _mm_loadu_si128((__m128i*)(src + i_src));
- T0 = _mm256_set_m128i(mSrc1, mSrc0);
-+ src += i_src2;
-+
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-
- r0 = _mm256_shuffle_epi8(T0, mSwitch1);
- r1 = _mm256_shuffle_epi8(T0, mSwitch2);
-@@ -2245,8 +2242,6 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
- T0 = _mm256_add_epi16(T0, T1);
- T1 = _mm256_add_epi16(T2, T3);
- mVal[row] = _mm256_add_epi16(T0, T1);
--
-- src += i_src2;
- }
- }
-
-@@ -2260,35 +2255,44 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
- __m256i mCoefy2 = _mm256_cvtepi8_epi16(mCoefy22);
- __m256i mCoefy3 = _mm256_cvtepi8_epi16(mCoefy33);
- __m256i mCoefy4 = _mm256_cvtepi8_epi16(mCoefy44);
-+ const int shift = 12;
-
- while (height > 0) {
- __m128i s0, s1;
- //hor
-- s0 = _mm_loadu_si128((__m128i*)(src));
-+ s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
- T0 = _mm256_set_m128i(s1, s0);
-
-+ src += i_src2;
-+
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+
- r0 = _mm256_shuffle_epi8(T0, mSwitch1);
- r1 = _mm256_shuffle_epi8(T0, mSwitch2);
- r2 = _mm256_shuffle_epi8(T0, mSwitch3);
- r3 = _mm256_shuffle_epi8(T0, mSwitch4);
-
-- src += i_src2;
--
- T0 = _mm256_maddubs_epi16(r0, mCoefy1_hor);
- T1 = _mm256_maddubs_epi16(r1, mCoefy2_hor);
- T2 = _mm256_maddubs_epi16(r2, mCoefy3_hor);
- T3 = _mm256_maddubs_epi16(r3, mCoefy4_hor);
-
-- s0 = _mm_loadu_si128((__m128i*)(src));
-+ s0 = _mm_loadu_si128((__m128i*)(src));
- s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-
- T0 = _mm256_add_epi16(T0, T1);
- T1 = _mm256_add_epi16(T2, T3);
- mVal[4] = _mm256_add_epi16(T0, T1);
-
-+ src += i_src2;
-+
- T0 = _mm256_set_m128i(s1, s0);
-
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+
- r0 = _mm256_shuffle_epi8(T0, mSwitch1);
- r1 = _mm256_shuffle_epi8(T0, mSwitch2);
- r2 = _mm256_shuffle_epi8(T0, mSwitch3);
-@@ -2303,8 +2307,6 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
- T1 = _mm256_add_epi16(T2, T3);
- mVal[5] = _mm256_add_epi16(T0, T1);
-
-- src += i_src2;
--
- T0 = _mm256_permute2x128_si256(mVal[0], mVal[1], 0x21);
- T1 = mVal[1];
- T2 = _mm256_permute2x128_si256(mVal[1], mVal[2], 0x21);
-@@ -2352,10 +2354,9 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- T0 = _mm256_packs_epi32(T0, T4);
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(T0), _mm256_extracti128_si256(T0, 1));
-- s1 = _mm_srli_si128(s0, 8);
-
- _mm_storel_epi64((__m128i*)(dst), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst), s1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(s0));
-
- r4 = _mm256_unpacklo_epi16(T8, T9);
- r9 = _mm256_unpackhi_epi16(T8, T9);
-@@ -2382,13 +2383,12 @@ void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_d
-
- T0 = _mm256_packs_epi32(T0, T4);
- s0 = _mm_packus_epi16(_mm256_castsi256_si128(T0), _mm256_extracti128_si256(T0, 1));
-- s1 = _mm_srli_si128(s0, 8);
-
-+ height -= 4;
- _mm_storel_epi64((__m128i*)(dst + i_dst * 2), s0);
-- _mm_storel_epi64((__m128i*)(dst + i_dst * 3), s1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst * 3), _mm_castsi128_ps(s0));
-
- dst += i_dst << 2;
-- height -= 4;
- }
- }
- }
-@@ -2397,7 +2397,6 @@ void uavs3d_if_hor_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_
- {
- ALIGNED_32(s16 tmp_res[(128 + 7) * 16]);
- s16 *tmp = tmp_res;
-- int row;
- __m256i mVal1, mVal2, mVal;
- __m256i T0, T1, T2, T3, T4, T5, T6, T7, T8, T9;
- __m256i S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10;
-@@ -2406,6 +2405,7 @@ void uavs3d_if_hor_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_
-
- //HOR
- {
-+ int row;
- __m256i mSwitch1 = _mm256_setr_epi8(0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8);
- __m256i mSwitch2 = _mm256_setr_epi8(2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10);
- __m256i mSwitch3 = _mm256_setr_epi8(4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12);
-@@ -2421,8 +2421,9 @@ void uavs3d_if_hor_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_
- row = height + 7;
- while (row--) {
- S = _mm256_loadu_si256((__m256i*)(src));
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+ src += i_src;
- S0 = _mm256_permute4x64_epi64(S, 0x94);
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-
- r0 = _mm256_shuffle_epi8(S0, mSwitch1);
- r1 = _mm256_shuffle_epi8(S0, mSwitch2);
-@@ -2438,9 +2439,8 @@ void uavs3d_if_hor_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_
- T1 = _mm256_add_epi16(T2, T3);
- sum = _mm256_add_epi16(T0, T1);
-
-- _mm256_storeu_si256((__m256i*)(tmp), sum);
-+ _mm256_store_si256((__m256i*)(tmp), sum);
-
-- src += i_src;
- tmp += 16;
- }
- }
-@@ -2603,9 +2603,9 @@ void uavs3d_if_hor_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_
- mVal = _mm256_packs_epi32(mVal1, mVal2);
- _mm_storeu_si128((__m128i*)(dst + 3 * i_dst), _mm_packus_epi16(_mm256_castsi256_si128(mVal), _mm256_extracti128_si256(mVal, 1)));
-
-+ height -= 4;
- tmp += 4 * i_tmp;
- dst += 4 * i_dst;
-- height -= 4;
- }
- }
- }
-@@ -2614,10 +2614,10 @@ void uavs3d_if_hor_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_
- {
- ALIGNED_32(s16 tmp_res[(128 + 7) * 32]);
- s16 *tmp = tmp_res;
-- int row, col;
- const int i_tmp = 32;
- //HOR
- {
-+ int row;
- __m256i mSwitch1 = _mm256_setr_epi8(0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8);
- __m256i mSwitch2 = _mm256_setr_epi8(2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10);
- __m256i mSwitch3 = _mm256_setr_epi8(4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12);
-@@ -2629,26 +2629,25 @@ void uavs3d_if_hor_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_
- __m256i mCoefy4_hor = _mm256_set1_epi16(*(s16*)(coef_x + 6));
-
- __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-- __m256i S0, S1, S2, S3;
-+ __m256i S0, S1;
-
- src = src - 3 * i_src - 3;
-
- row = height + 7;
- while (row--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + 8));
-- S2 = _mm256_insertf128_si256(S0, _mm256_castsi256_si128(S1), 0x1);
-- S3 = _mm256_insertf128_si256(S1, _mm256_extracti128_si256(S0, 1), 0x0);
--
-- T0 = _mm256_shuffle_epi8(S2, mSwitch1);
-- T1 = _mm256_shuffle_epi8(S2, mSwitch2);
-- T2 = _mm256_shuffle_epi8(S2, mSwitch3);
-- T3 = _mm256_shuffle_epi8(S2, mSwitch4);
-- T4 = _mm256_shuffle_epi8(S3, mSwitch1);
-- T5 = _mm256_shuffle_epi8(S3, mSwitch2);
-- T6 = _mm256_shuffle_epi8(S3, mSwitch3);
-- T7 = _mm256_shuffle_epi8(S3, mSwitch4);
-+ src += i_src;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch1);
-+ T1 = _mm256_shuffle_epi8(S0, mSwitch2);
-+ T2 = _mm256_shuffle_epi8(S0, mSwitch3);
-+ T3 = _mm256_shuffle_epi8(S0, mSwitch4);
-+ T4 = _mm256_shuffle_epi8(S1, mSwitch1);
-+ T5 = _mm256_shuffle_epi8(S1, mSwitch2);
-+ T6 = _mm256_shuffle_epi8(S1, mSwitch3);
-+ T7 = _mm256_shuffle_epi8(S1, mSwitch4);
-
- T0 = _mm256_maddubs_epi16(T0, mCoefy1_hor);
- T1 = _mm256_maddubs_epi16(T1, mCoefy2_hor);
-@@ -2666,10 +2665,11 @@ void uavs3d_if_hor_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_
- T0 = _mm256_add_epi16(T0, T2);
- T4 = _mm256_add_epi16(T4, T6);
-
-- _mm256_storeu_si256((__m256i*)(tmp), T0);
-- _mm256_storeu_si256((__m256i*)(tmp + 16), T4);
-+ T1 = _mm256_permute2x128_si256(T0, T4, 0x20);
-+ T3 = _mm256_permute2x128_si256(T0, T4, 0x31);
-+ _mm256_store_si256((__m256i*)(tmp), T1);
-+ _mm256_store_si256((__m256i*)(tmp + 16), T3);
-
-- src += i_src;
- tmp += i_tmp;
- }
- }
-@@ -2685,8 +2685,8 @@ void uavs3d_if_hor_ver_luma_w32_avx2(const pel *src, int i_src, pel *dst, int i_
- const int i_tmp8 = 32 * 8;
- const int i_tmp9 = 32 * 9;
- const int i_tmp10 = 32 * 10;
--
-- int shift = 12;
-+ int col;
-+ const int shift = 12;
- __m256i mAddOffset = _mm256_set1_epi32(1 << 11);
- __m128i mCoefy11 = _mm_set1_epi16(*(s16*)coef_y);
- __m128i mCoefy22 = _mm_set1_epi16(*(s16*)(coef_y + 2));
-@@ -2850,7 +2850,6 @@ void uavs3d_if_hor_ver_luma_w32x_avx2(const pel *src, int i_src, pel *dst, int i
- {
- ALIGNED_32(s16 tmp_res[(128 + 7) * 128]);
- s16 *tmp = tmp_res;
-- int row, col;
- const int i_tmp = width;
- __m256i mVal1, mVal2, mVal;
- __m256i T0, T1, T2, T3, T4, T5, T6, T7, T8, T9;
-@@ -2859,6 +2858,7 @@ void uavs3d_if_hor_ver_luma_w32x_avx2(const pel *src, int i_src, pel *dst, int i
-
- //HOR
- {
-+ int row, col;
- __m256i mSwitch1 = _mm256_setr_epi8(0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8);
- __m256i mSwitch2 = _mm256_setr_epi8(2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10);
- __m256i mSwitch3 = _mm256_setr_epi8(4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12);
-@@ -2878,17 +2878,15 @@ void uavs3d_if_hor_ver_luma_w32x_avx2(const pel *src, int i_src, pel *dst, int i
- {
- S0 = _mm256_loadu_si256((__m256i*)(src + col));
- S1 = _mm256_loadu_si256((__m256i*)(src + col + 8));
-- S2 = _mm256_insertf128_si256(S0, _mm256_castsi256_si128(S1), 0x1);
-- S3 = _mm256_insertf128_si256(S1, _mm256_extracti128_si256(S0, 1), 0x0);
--
-- T0 = _mm256_shuffle_epi8(S2, mSwitch1);
-- T1 = _mm256_shuffle_epi8(S2, mSwitch2);
-- T2 = _mm256_shuffle_epi8(S2, mSwitch3);
-- T3 = _mm256_shuffle_epi8(S2, mSwitch4);
-- T4 = _mm256_shuffle_epi8(S3, mSwitch1);
-- T5 = _mm256_shuffle_epi8(S3, mSwitch2);
-- T6 = _mm256_shuffle_epi8(S3, mSwitch3);
-- T7 = _mm256_shuffle_epi8(S3, mSwitch4);
-+
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch1);
-+ T1 = _mm256_shuffle_epi8(S0, mSwitch2);
-+ T2 = _mm256_shuffle_epi8(S0, mSwitch3);
-+ T3 = _mm256_shuffle_epi8(S0, mSwitch4);
-+ T4 = _mm256_shuffle_epi8(S1, mSwitch1);
-+ T5 = _mm256_shuffle_epi8(S1, mSwitch2);
-+ T6 = _mm256_shuffle_epi8(S1, mSwitch3);
-+ T7 = _mm256_shuffle_epi8(S1, mSwitch4);
-
- T0 = _mm256_maddubs_epi16(T0, mCoefy1_hor);
- T1 = _mm256_maddubs_epi16(T1, mCoefy2_hor);
-@@ -2906,8 +2904,10 @@ void uavs3d_if_hor_ver_luma_w32x_avx2(const pel *src, int i_src, pel *dst, int i
- T0 = _mm256_add_epi16(T0, T2);
- T4 = _mm256_add_epi16(T4, T6);
-
-- _mm256_storeu_si256((__m256i*)(tmp + col), T0);
-- _mm256_storeu_si256((__m256i*)(tmp + col + 16), T4);
-+ T1 = _mm256_permute2x128_si256(T0, T4, 0x20);
-+ T3 = _mm256_permute2x128_si256(T0, T4, 0x31);
-+ _mm256_store_si256((__m256i*)(tmp + col), T1);
-+ _mm256_store_si256((__m256i*)(tmp + col + 16), T3);
- }
- src += i_src;
- tmp += i_tmp;
-@@ -2927,6 +2927,7 @@ void uavs3d_if_hor_ver_luma_w32x_avx2(const pel *src, int i_src, pel *dst, int i
- const int i_tmp10 = i_tmp5 << 1;
-
- int shift = 12;
-+ int col;
- __m256i mAddOffset = _mm256_set1_epi32(1 << 11);
- __m128i mCoefy11 = _mm_set1_epi16(*(s16*)coef_y);
- __m128i mCoefy22 = _mm_set1_epi16(*(s16*)(coef_y + 2));
-@@ -3186,45 +3187,121 @@ void uavs3d_if_cpy_w128_avx2(const pel *src, int i_src, pel *dst, int i_dst, int
- }
- }
-
-+void uavs3d_if_hor_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
-+{
-+ __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-+ __m256i T0, T1, T2, T3, T4, T5;
-+ __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-+ __m256i S0, S1, S2;
-+ __m256i offset = _mm256_set1_epi32(32);
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+ __m256i mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[0]));
-+ __m256i mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[1]));
-+ __m256i mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[2]));
-+ __m256i mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[3]));
-+ __m128i s0, s1;
-+
-+ src -= 3;
-+
-+ while (height) {
-+ T0 = _mm256_loadu_si256((__m256i*)(src));
-+ s0 = _mm_loadu_si128((__m128i*)(src + 4));
-+ T1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + i_src + 4));
-+ height -= 2;
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+
-+ S0 = _mm256_permute2x128_si256(T0, T1, 0x20);
-+ S2 = _mm256_permute2x128_si256(T0, T1, 0x31);
-+ S1 = _mm256_set_m128i(s1, s0);
-+
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm256_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm256_shuffle_epi8(S2, mShuffle1);
-+
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+ M4 = _mm256_madd_epi16(T2, mCoef0);
-+ M5 = _mm256_madd_epi16(T3, mCoef1);
-+ M6 = _mm256_madd_epi16(T4, mCoef2);
-+ M7 = _mm256_madd_epi16(T5, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+
-+ M2 = _mm256_add_epi32(M0, offset);
-+ M3 = _mm256_add_epi32(M1, offset);
-+ M2 = _mm256_srai_epi32(M2, 6);
-+ M3 = _mm256_srai_epi32(M3, 6);
-+ M2 = _mm256_packus_epi32(M2, M3);
-+ M2 = _mm256_min_epu16(M2, max_pel);
-+
-+ _mm_storeu_si128((__m128i*)(dst), _mm256_castsi256_si128(M2));
-+ _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_extracti128_si256(M2, 1));
-+
-+ dst += i_dst << 1;
-+ }
-+}
-+
- void uavs3d_if_hor_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
- {
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-- __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-+ __m256i T0, T1, T2, T3, T4, T5;
- __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-+ __m256i S0, S1, S2;
- __m256i offset = _mm256_set1_epi32(32);
-- s32* coef = (s32*)coeff;
-- __m128i mCoef0 = _mm_setr_epi32(coef[0], coef[1], coef[0], coef[1]);
-- __m256i mCoef = _mm256_cvtepi8_epi16(mCoef0);
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+ __m256i mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[0]));
-+ __m256i mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[1]));
-+ __m256i mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[2]));
-+ __m256i mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[3]));
-
- src -= 3;
-
- while (height--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-- T0 = _mm256_loadu_si256((__m256i*)(src + 0));
-- T1 = _mm256_loadu_si256((__m256i*)(src + 1));
-- T2 = _mm256_loadu_si256((__m256i*)(src + 2));
-- T3 = _mm256_loadu_si256((__m256i*)(src + 3));
-- T4 = _mm256_loadu_si256((__m256i*)(src + 4));
-- T5 = _mm256_loadu_si256((__m256i*)(src + 5));
-- T6 = _mm256_loadu_si256((__m256i*)(src + 6));
-- T7 = _mm256_loadu_si256((__m256i*)(src + 7));
--
-- M0 = _mm256_madd_epi16(T0, mCoef);
-- M1 = _mm256_madd_epi16(T1, mCoef);
-- M2 = _mm256_madd_epi16(T2, mCoef);
-- M3 = _mm256_madd_epi16(T3, mCoef);
-- M4 = _mm256_madd_epi16(T4, mCoef);
-- M5 = _mm256_madd_epi16(T5, mCoef);
-- M6 = _mm256_madd_epi16(T6, mCoef);
-- M7 = _mm256_madd_epi16(T7, mCoef);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-- M2 = _mm256_hadd_epi32(M4, M5);
-- M3 = _mm256_hadd_epi32(M6, M7);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-+ S0 = _mm256_lddqu_si256((__m256i*)(src));
-+ S1 = _mm256_loadu_si256((__m256i*)(src + 4));
-+ S2 = _mm256_loadu_si256((__m256i*)(src + 8));
-+
-+ src += i_src;
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm256_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm256_shuffle_epi8(S2, mShuffle1);
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+ M4 = _mm256_madd_epi16(T2, mCoef0);
-+ M5 = _mm256_madd_epi16(T3, mCoef1);
-+ M6 = _mm256_madd_epi16(T4, mCoef2);
-+ M7 = _mm256_madd_epi16(T5, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-
- M2 = _mm256_add_epi32(M0, offset);
- M3 = _mm256_add_epi32(M1, offset);
-@@ -3235,7 +3312,6 @@ void uavs3d_if_hor_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
-
- _mm256_storeu_si256((__m256i*)(dst), M2);
-
-- src += i_src;
- dst += i_dst;
- }
- }
-@@ -3244,12 +3320,16 @@ void uavs3d_if_hor_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_dst
- {
- int col;
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-- __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-+ __m256i T0, T1, T2, T3, T4, T5;
- __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-+ __m256i S0, S1, S2;
- __m256i offset = _mm256_set1_epi32(32);
-- s32 *coef = (s32*)coeff;
-- __m128i mCoef0 = _mm_setr_epi32(coef[0], coef[1], coef[0], coef[1]);
-- __m256i mCoef = _mm256_cvtepi8_epi16(mCoef0);
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+ __m256i mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[0]));
-+ __m256i mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[1]));
-+ __m256i mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[2]));
-+ __m256i mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coeff)[3]));
-
- src -= 3;
-
-@@ -3258,31 +3338,33 @@ void uavs3d_if_hor_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_dst
- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- for (col = 0; col < width; col += 16)
- {
-- T0 = _mm256_loadu_si256((__m256i*)(p_src + 0));
-- T1 = _mm256_loadu_si256((__m256i*)(p_src + 1));
-- T2 = _mm256_loadu_si256((__m256i*)(p_src + 2));
-- T3 = _mm256_loadu_si256((__m256i*)(p_src + 3));
-- T4 = _mm256_loadu_si256((__m256i*)(p_src + 4));
-- T5 = _mm256_loadu_si256((__m256i*)(p_src + 5));
-- T6 = _mm256_loadu_si256((__m256i*)(p_src + 6));
-- T7 = _mm256_loadu_si256((__m256i*)(p_src + 7));
--
-- M0 = _mm256_madd_epi16(T0, mCoef);
-- M1 = _mm256_madd_epi16(T1, mCoef);
-- M2 = _mm256_madd_epi16(T2, mCoef);
-- M3 = _mm256_madd_epi16(T3, mCoef);
-- M4 = _mm256_madd_epi16(T4, mCoef);
-- M5 = _mm256_madd_epi16(T5, mCoef);
-- M6 = _mm256_madd_epi16(T6, mCoef);
-- M7 = _mm256_madd_epi16(T7, mCoef);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-- M2 = _mm256_hadd_epi32(M4, M5);
-- M3 = _mm256_hadd_epi32(M6, M7);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-+ S0 = _mm256_loadu_si256((__m256i*)(p_src));
-+ S1 = _mm256_loadu_si256((__m256i*)(p_src + 4));
-+ S2 = _mm256_loadu_si256((__m256i*)(p_src + 8));
-+
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm256_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm256_shuffle_epi8(S2, mShuffle1);
-+
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+ M4 = _mm256_madd_epi16(T2, mCoef0);
-+ M5 = _mm256_madd_epi16(T3, mCoef1);
-+ M6 = _mm256_madd_epi16(T4, mCoef2);
-+ M7 = _mm256_madd_epi16(T5, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-
- M2 = _mm256_add_epi32(M0, offset);
- M3 = _mm256_add_epi32(M1, offset);
-@@ -3299,6 +3381,47 @@ void uavs3d_if_hor_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_dst
- }
- }
-
-+void uavs3d_if_hor_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
-+{
-+ const int offset = 32;
-+ const int shift = 6;
-+
-+ __m128i coef0 = _mm_cvtepi8_epi16(_mm_set1_epi16(((s16*)coeff)[0]));
-+ __m128i coef1 = _mm_cvtepi8_epi16(_mm_set1_epi16(((s16*)coeff)[1]));
-+ __m256i mCoef0 = _mm256_set_m128i(coef1, coef0);
-+ __m256i mCoef1 = _mm256_set_m128i(coef0, coef1);
-+ __m256i mSwitch = _mm256_setr_epi8(0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11);
-+ __m256i mAddOffset = _mm256_set1_epi32((s16)offset);
-+ __m256i T0, T1, S0, S1;
-+ __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-+ __m128i s0;
-+
-+ src -= 2;
-+
-+ while (height--) {
-+ uavs3d_prefetch(src + i_src * 2, _MM_HINT_NTA);
-+ S0 = _mm256_loadu_si256((__m256i*)(src));
-+ s0 = _mm_loadu_si128((__m128i*)(src + 4));
-+ src += i_src;
-+ S1 = _mm256_set_m128i(s0, s0);
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch);
-+ T1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T0 = _mm256_madd_epi16(T0, mCoef0);
-+ T1 = _mm256_madd_epi16(T1, mCoef1);
-+ T0 = _mm256_add_epi32(T0, T1);
-+
-+ T0 = _mm256_add_epi32(T0, mAddOffset);
-+ T0 = _mm256_srai_epi32(T0, shift);
-+ T0 = _mm256_min_epu16(T0, max_pel);
-+ s0 = _mm_packus_epi32(_mm256_castsi256_si128(T0), _mm256_extracti128_si256(T0, 1));
-+
-+ _mm_storeu_si128((__m128i*)(dst), s0);
-+
-+ dst += i_dst;
-+ }
-+}
-+
- void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
- {
- const int offset = 32;
-@@ -3310,7 +3433,7 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- __m256i mCoef1 = _mm256_cvtepi8_epi16(coef1);
- __m256i mSwitch = _mm256_setr_epi8(0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11);
- __m256i mAddOffset = _mm256_set1_epi32((s16)offset);
-- __m256i T0, T1, T2, T3, S0, S1, S2, S3;
-+ __m256i T0, T1, T2, T3, S0, S1, S2;
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-
- src -= 2;
-@@ -3320,15 +3443,14 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + 4));
- S2 = _mm256_loadu_si256((__m256i*)(src + 8));
-- S3 = _mm256_loadu_si256((__m256i*)(src + 12));
-- S0 = _mm256_permute4x64_epi64(S0, 0x94);
-- S1 = _mm256_permute4x64_epi64(S1, 0x94);
-- S2 = _mm256_permute4x64_epi64(S2, 0x94);
-- S3 = _mm256_permute4x64_epi64(S3, 0x94);
-- T0 = _mm256_madd_epi16(_mm256_shuffle_epi8(S0, mSwitch), mCoef0);
-- T1 = _mm256_madd_epi16(_mm256_shuffle_epi8(S1, mSwitch), mCoef1);
-- T2 = _mm256_madd_epi16(_mm256_shuffle_epi8(S2, mSwitch), mCoef0);
-- T3 = _mm256_madd_epi16(_mm256_shuffle_epi8(S3, mSwitch), mCoef1);
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch);
-+ T1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T2 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T3 = _mm256_shuffle_epi8(S2, mSwitch);
-+ T0 = _mm256_madd_epi16(T0, mCoef0);
-+ T1 = _mm256_madd_epi16(T1, mCoef1);
-+ T2 = _mm256_madd_epi16(T2, mCoef0);
-+ T3 = _mm256_madd_epi16(T3, mCoef1);
- T0 = _mm256_add_epi32(T0, T1);
- T2 = _mm256_add_epi32(T2, T3);
-
-@@ -3337,7 +3459,6 @@ void uavs3d_if_hor_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- T0 = _mm256_srai_epi32(T0, shift);
- T2 = _mm256_srai_epi32(T2, shift);
- T0 = _mm256_packus_epi32(T0, T2);
-- T0 = _mm256_permute4x64_epi64(T0, 0xd8);
-
- T0 = _mm256_min_epu16(T0, max_pel);
- _mm256_storeu_si256((__m256i*)(dst), T0);
-@@ -3359,7 +3480,7 @@ void uavs3d_if_hor_chroma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_d
- __m256i mCoef1 = _mm256_cvtepi8_epi16(coef1);
- __m256i mSwitch = _mm256_setr_epi8(0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11);
- __m256i mAddOffset = _mm256_set1_epi32((s16)offset);
-- __m256i T0, T1, T2, T3, S0, S1, S2, S3;
-+ __m256i T0, T1, T2, T3, S0, S1, S2;
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-
- src -= 2;
-@@ -3370,15 +3491,14 @@ void uavs3d_if_hor_chroma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_d
- S0 = _mm256_loadu_si256((__m256i*)(src + col));
- S1 = _mm256_loadu_si256((__m256i*)(src + col + 4));
- S2 = _mm256_loadu_si256((__m256i*)(src + col + 8));
-- S3 = _mm256_loadu_si256((__m256i*)(src + col + 12));
-- S0 = _mm256_permute4x64_epi64(S0, 0x94);
-- S1 = _mm256_permute4x64_epi64(S1, 0x94);
-- S2 = _mm256_permute4x64_epi64(S2, 0x94);
-- S3 = _mm256_permute4x64_epi64(S3, 0x94);
-- T0 = _mm256_madd_epi16(_mm256_shuffle_epi8(S0, mSwitch), mCoef0);
-- T1 = _mm256_madd_epi16(_mm256_shuffle_epi8(S1, mSwitch), mCoef1);
-- T2 = _mm256_madd_epi16(_mm256_shuffle_epi8(S2, mSwitch), mCoef0);
-- T3 = _mm256_madd_epi16(_mm256_shuffle_epi8(S3, mSwitch), mCoef1);
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch);
-+ T1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T2 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T3 = _mm256_shuffle_epi8(S2, mSwitch);
-+ T0 = _mm256_madd_epi16(T0, mCoef0);
-+ T1 = _mm256_madd_epi16(T1, mCoef1);
-+ T2 = _mm256_madd_epi16(T2, mCoef0);
-+ T3 = _mm256_madd_epi16(T3, mCoef1);
- T0 = _mm256_add_epi32(T0, T1);
- T2 = _mm256_add_epi32(T2, T3);
-
-@@ -3387,9 +3507,8 @@ void uavs3d_if_hor_chroma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_d
- T0 = _mm256_srai_epi32(T0, shift);
- T2 = _mm256_srai_epi32(T2, shift);
- T0 = _mm256_packus_epi32(T0, T2);
-- T0 = _mm256_permute4x64_epi64(T0, 0xd8);
--
- T0 = _mm256_min_epu16(T0, max_pel);
-+
- _mm256_storeu_si256((__m256i*)(dst + col), T0);
- }
- src += i_src;
-@@ -3397,6 +3516,93 @@ void uavs3d_if_hor_chroma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_d
- }
- }
-
-+void uavs3d_if_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
-+{
-+ const int i_src2 = i_src * 2;
-+ const int i_src3 = i_src * 3;
-+ const int i_src4 = i_src * 4;
-+ const int i_src5 = i_src * 5;
-+ const int i_src6 = i_src * 6;
-+ const int i_src7 = i_src * 7;
-+ __m128i coeff0 = _mm_set1_epi16(*(s16*)coeff);
-+ __m128i coeff1 = _mm_set1_epi16(*(s16*)(coeff + 2));
-+ __m128i coeff2 = _mm_set1_epi16(*(s16*)(coeff + 4));
-+ __m128i coeff3 = _mm_set1_epi16(*(s16*)(coeff + 6));
-+ __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-+ __m256i mAddOffset = _mm256_set1_epi32(32);
-+ __m128i s0, s1, s2, s3, s4, s5, s6, s7, s8;
-+ __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-+ __m256i N0, N1, N2, N3, N4, N5, N6, N7;
-+ __m256i coeff00 = _mm256_cvtepi8_epi16(coeff0);
-+ __m256i coeff01 = _mm256_cvtepi8_epi16(coeff1);
-+ __m256i coeff02 = _mm256_cvtepi8_epi16(coeff2);
-+ __m256i coeff03 = _mm256_cvtepi8_epi16(coeff3);
-+
-+ src -= i_src3;
-+
-+ while (height > 0) {
-+ s0 = _mm_loadu_si128((__m128i*)(src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + i_src));
-+ s2 = _mm_loadu_si128((__m128i*)(src + i_src2));
-+ s3 = _mm_loadu_si128((__m128i*)(src + i_src3));
-+ s4 = _mm_loadu_si128((__m128i*)(src + i_src4));
-+ s5 = _mm_loadu_si128((__m128i*)(src + i_src5));
-+ s6 = _mm_loadu_si128((__m128i*)(src + i_src6));
-+ s7 = _mm_loadu_si128((__m128i*)(src + i_src7));
-+ s8 = _mm_loadu_si128((__m128i*)(src + (i_src << 3)));
-+
-+ height -= 2;
-+ src += i_src2;
-+ uavs3d_prefetch(src + i_src7, _MM_HINT_NTA);
-+
-+ T0 = _mm256_set_m128i(s1, s0);
-+ T1 = _mm256_set_m128i(s2, s1);
-+ T2 = _mm256_set_m128i(s3, s2);
-+ T3 = _mm256_set_m128i(s4, s3);
-+ T4 = _mm256_set_m128i(s5, s4);
-+ T5 = _mm256_set_m128i(s6, s5);
-+ T6 = _mm256_set_m128i(s7, s6);
-+ T7 = _mm256_set_m128i(s8, s7);
-+
-+ N0 = _mm256_unpacklo_epi16(T0, T1);
-+ N1 = _mm256_unpacklo_epi16(T2, T3);
-+ N2 = _mm256_unpacklo_epi16(T4, T5);
-+ N3 = _mm256_unpacklo_epi16(T6, T7);
-+ N4 = _mm256_unpackhi_epi16(T0, T1);
-+ N5 = _mm256_unpackhi_epi16(T2, T3);
-+ N6 = _mm256_unpackhi_epi16(T4, T5);
-+ N7 = _mm256_unpackhi_epi16(T6, T7);
-+
-+ N0 = _mm256_madd_epi16(N0, coeff00);
-+ N1 = _mm256_madd_epi16(N1, coeff01);
-+ N2 = _mm256_madd_epi16(N2, coeff02);
-+ N3 = _mm256_madd_epi16(N3, coeff03);
-+ N4 = _mm256_madd_epi16(N4, coeff00);
-+ N5 = _mm256_madd_epi16(N5, coeff01);
-+ N6 = _mm256_madd_epi16(N6, coeff02);
-+ N7 = _mm256_madd_epi16(N7, coeff03);
-+
-+ N0 = _mm256_add_epi32(N0, N1);
-+ N1 = _mm256_add_epi32(N2, N3);
-+ N2 = _mm256_add_epi32(N4, N5);
-+ N3 = _mm256_add_epi32(N6, N7);
-+
-+ N0 = _mm256_add_epi32(N0, N1);
-+ N1 = _mm256_add_epi32(N2, N3);
-+
-+ N0 = _mm256_add_epi32(N0, mAddOffset);
-+ N1 = _mm256_add_epi32(N1, mAddOffset);
-+ N0 = _mm256_srai_epi32(N0, 6);
-+ N1 = _mm256_srai_epi32(N1, 6);
-+ N0 = _mm256_packus_epi32(N0, N1);
-+ N0 = _mm256_min_epu16(N0, max_pel);
-+ _mm_storeu_si128((__m128i*)(dst), _mm256_castsi256_si128(N0));
-+ _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_extracti128_si256(N0, 1));
-+
-+ dst += i_dst << 1;
-+ }
-+}
-+
- void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coeff, int max_val)
- {
- const int i_src2 = i_src * 2;
-@@ -3412,7 +3618,6 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
- __m256i mAddOffset = _mm256_set1_epi32(32);
- __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-- __m256i M0, M1, M2, M3, M4, M5, M6, M7;
- __m256i N0, N1, N2, N3, N4, N5, N6, N7;
- __m256i coeff00 = _mm256_cvtepi8_epi16(coeff0);
- __m256i coeff01 = _mm256_cvtepi8_epi16(coeff1);
-@@ -3422,7 +3627,6 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3 * i_src;
-
- while (height--) {
-- uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
- T0 = _mm256_loadu_si256((__m256i*)(src));
- T1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- T2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
-@@ -3431,24 +3635,25 @@ void uavs3d_if_ver_luma_w16_avx2(const pel *src, int i_src, pel *dst, int i_dst,
- T5 = _mm256_loadu_si256((__m256i*)(src + i_src5));
- T6 = _mm256_loadu_si256((__m256i*)(src + i_src6));
- T7 = _mm256_loadu_si256((__m256i*)(src + i_src7));
-+ uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
-
-- M0 = _mm256_unpacklo_epi16(T0, T1);
-- M1 = _mm256_unpacklo_epi16(T2, T3);
-- M2 = _mm256_unpacklo_epi16(T4, T5);
-- M3 = _mm256_unpacklo_epi16(T6, T7);
-- M4 = _mm256_unpackhi_epi16(T0, T1);
-- M5 = _mm256_unpackhi_epi16(T2, T3);
-- M6 = _mm256_unpackhi_epi16(T4, T5);
-- M7 = _mm256_unpackhi_epi16(T6, T7);
--
-- N0 = _mm256_madd_epi16(M0, coeff00);
-- N1 = _mm256_madd_epi16(M1, coeff01);
-- N2 = _mm256_madd_epi16(M2, coeff02);
-- N3 = _mm256_madd_epi16(M3, coeff03);
-- N4 = _mm256_madd_epi16(M4, coeff00);
-- N5 = _mm256_madd_epi16(M5, coeff01);
-- N6 = _mm256_madd_epi16(M6, coeff02);
-- N7 = _mm256_madd_epi16(M7, coeff03);
-+ N0 = _mm256_unpacklo_epi16(T0, T1);
-+ N1 = _mm256_unpacklo_epi16(T2, T3);
-+ N2 = _mm256_unpacklo_epi16(T4, T5);
-+ N3 = _mm256_unpacklo_epi16(T6, T7);
-+ N4 = _mm256_unpackhi_epi16(T0, T1);
-+ N5 = _mm256_unpackhi_epi16(T2, T3);
-+ N6 = _mm256_unpackhi_epi16(T4, T5);
-+ N7 = _mm256_unpackhi_epi16(T6, T7);
-+
-+ N0 = _mm256_madd_epi16(N0, coeff00);
-+ N1 = _mm256_madd_epi16(N1, coeff01);
-+ N2 = _mm256_madd_epi16(N2, coeff02);
-+ N3 = _mm256_madd_epi16(N3, coeff03);
-+ N4 = _mm256_madd_epi16(N4, coeff00);
-+ N5 = _mm256_madd_epi16(N5, coeff01);
-+ N6 = _mm256_madd_epi16(N6, coeff02);
-+ N7 = _mm256_madd_epi16(N7, coeff03);
-
- N0 = _mm256_add_epi32(N0, N1);
- N1 = _mm256_add_epi32(N2, N3);
-@@ -3568,20 +3773,23 @@ void uavs3d_if_ver_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
-
- while (height) {
- __m256i S0, S1, S2, S3, S4;
-- uavs3d_prefetch(src + 5 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 6 * i_src, _MM_HINT_NTA);
-- height -= 2;
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
- S2 = _mm256_loadu_si256((__m256i*)(src + i_src2));
- S3 = _mm256_loadu_si256((__m256i*)(src + i_src3));
- S4 = _mm256_loadu_si256((__m256i*)(src + i_src4));
-
-+ height -= 2;
-+ src += i_src2;
-+
- T0 = _mm256_unpacklo_epi16(S0, S1);
- T1 = _mm256_unpackhi_epi16(S0, S1);
- T2 = _mm256_unpacklo_epi16(S2, S3);
- T3 = _mm256_unpackhi_epi16(S2, S3);
-
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src4, _MM_HINT_NTA);
-+
- T0 = _mm256_madd_epi16(T0, coeff0);
- T1 = _mm256_madd_epi16(T1, coeff0);
- T2 = _mm256_madd_epi16(T2, coeff1);
-@@ -3621,7 +3829,6 @@ void uavs3d_if_ver_chroma_w16_avx2(const pel *src, int i_src, pel *dst, int i_ds
- mVal1 = _mm256_min_epu16(mVal1, max_pel);
- _mm256_storeu_si256((__m256i*)(dst + i_dst), mVal1);
-
-- src += 2 * i_src;
- dst += 2 * i_dst;
- }
- }
-@@ -3645,9 +3852,6 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- src -= i_src;
-
- while (height) {
-- uavs3d_prefetch(src + 5 * i_src, _MM_HINT_NTA);
-- uavs3d_prefetch(src + 6 * i_src, _MM_HINT_NTA);
-- height -= 2;
- S0 = _mm256_loadu_si256((__m256i*)(src));
- S5 = _mm256_loadu_si256((__m256i*)(src + 16));
- S1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-@@ -3659,6 +3863,9 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- S4 = _mm256_loadu_si256((__m256i*)(src + i_src4));
- S9 = _mm256_loadu_si256((__m256i*)(src + i_src4 + 16));
-
-+ height -= 2;
-+ src += i_src2;
-+
- T0 = _mm256_unpacklo_epi16(S0, S1);
- T1 = _mm256_unpackhi_epi16(S0, S1);
- T2 = _mm256_unpacklo_epi16(S2, S3);
-@@ -3668,6 +3875,9 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- T6 = _mm256_unpacklo_epi16(S7, S8);
- T7 = _mm256_unpackhi_epi16(S7, S8);
-
-+ uavs3d_prefetch(src + i_src3, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src4, _MM_HINT_NTA);
-+
- T0 = _mm256_madd_epi16(T0, coeff0);
- T1 = _mm256_madd_epi16(T1, coeff0);
- T2 = _mm256_madd_epi16(T2, coeff1);
-@@ -3738,7 +3948,6 @@ void uavs3d_if_ver_chroma_w32_avx2(const pel *src, int i_src, pel *dst, int i_ds
- _mm256_storeu_si256((__m256i*)(dst + i_dst), T0);
- _mm256_storeu_si256((__m256i*)(dst + i_dst + 16), T2);
-
-- src += 2 * i_src;
- dst += 2 * i_dst;
- }
- }
-@@ -3820,22 +4029,18 @@ void uavs3d_if_ver_chroma_w32x_avx2(const pel *src, int i_src, pel *dst, int i_d
- }
- }
-
--void uavs3d_if_hor_ver_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
-+void uavs3d_if_hor_ver_luma_w4_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
- {
-- ALIGNED_32(s16 tmp_res[(128 + 7) * 128]);
-+ ALIGNED_32(s16 tmp_res[(32 + 7) * 4]);
- s16 *tmp = tmp_res;
-- int row, i;;
-+ int row;
- int add1, shift1;
- int add2, shift2;
-- __m128i mCoef0;
-- __m256i mCoef, offset;
-- __m256i T0, T1, T2, T3, T4, T5, T6, T7;
-- __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-- __m256i N0, N1, N2, N3, N4, N5, N6, N7;
-- int i_tmp = width;
-- s32 * coef;
-- __m128i coeff0, coeff1, coeff2, coeff3;
-- __m256i coeff00, coeff01, coeff02, coeff03;
-+ __m256i offset;
-+ __m256i T0, T1, T2, T3;
-+ __m256i M0, M1, M2, M3;
-+ const int i_tmp = 4;
-+ __m256i mCoef0, mCoef1, mCoef2, mCoef3;
- __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-
- if (max_val == 255) { // 8 bit_depth
-@@ -3851,80 +4056,311 @@ void uavs3d_if_hor_ver_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i
- add2 = 1 << (shift2 - 1);
-
- src += -3 * i_src - 3;
-- coef = (s32*)coef_x;
-- mCoef0 = _mm_setr_epi32(coef[0], coef[1], coef[0], coef[1]);
-- mCoef = _mm256_cvtepi8_epi16(mCoef0);
-- offset = _mm256_set1_epi32(add1);
-
-- row = height + 7;
-+ {
-+ __m128i s0, s1, s2, s3;
-+ __m256i S0, S1;
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[3]));
-+ offset = _mm256_set1_epi32(add1);
-+
-+ row = height + 6;
-+
-+ while (row > 0) {
-+ s0 = _mm_loadu_si128((__m128i*)(src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + 4));
-+ s2 = _mm_loadu_si128((__m128i*)(src + i_src));
-+ s3 = _mm_loadu_si128((__m128i*)(src + i_src + 4));
-+ row -= 2;
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-
-- while (row--) {
-- const pel *p = src;
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-- for (i = 0; i < width; i += 16) {
-+ S0 = _mm256_set_m128i(s2, s0);
-+ S1 = _mm256_set_m128i(s3, s1);
-+
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-
-- T0 = _mm256_loadu_si256((__m256i*)p++);
-- T1 = _mm256_loadu_si256((__m256i*)p++);
-- T2 = _mm256_loadu_si256((__m256i*)p++);
-- T3 = _mm256_loadu_si256((__m256i*)p++);
-- T4 = _mm256_loadu_si256((__m256i*)p++);
-- T5 = _mm256_loadu_si256((__m256i*)p++);
-- T6 = _mm256_loadu_si256((__m256i*)p++);
-- T7 = _mm256_loadu_si256((__m256i*)p++);
--
-- M0 = _mm256_madd_epi16(T0, mCoef);
-- M1 = _mm256_madd_epi16(T1, mCoef);
-- M2 = _mm256_madd_epi16(T2, mCoef);
-- M3 = _mm256_madd_epi16(T3, mCoef);
-- M4 = _mm256_madd_epi16(T4, mCoef);
-- M5 = _mm256_madd_epi16(T5, mCoef);
-- M6 = _mm256_madd_epi16(T6, mCoef);
-- M7 = _mm256_madd_epi16(T7, mCoef);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-- M2 = _mm256_hadd_epi32(M4, M5);
-- M3 = _mm256_hadd_epi32(M6, M7);
--
-- M0 = _mm256_hadd_epi32(M0, M1);
-- M1 = _mm256_hadd_epi32(M2, M3);
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+
-+ M2 = _mm256_add_epi32(M0, offset);
-+ M2 = _mm256_srai_epi32(M2, shift1);
-+
-+ s0 = _mm_packs_epi32(_mm256_castsi256_si128(M2), _mm256_extracti128_si256(M2, 1));
-+ _mm_store_si128((__m128i*)(tmp), s0);
-+
-+ tmp += i_tmp * 2;
-+ }
-+ {
-+ // the last row
-+ __m128i t0, t1, t2, t3;
-+ __m128i m0, m1, m2, m3;
-+ s0 = _mm_loadu_si128((__m128i*)(src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + 4));
-+ src += i_src;
-+
-+ t0 = _mm_shuffle_epi8(s0, _mm256_castsi256_si128(mShuffle0));
-+ t1 = _mm_shuffle_epi8(s0, _mm256_castsi256_si128(mShuffle1));
-+ t2 = _mm_shuffle_epi8(s1, _mm256_castsi256_si128(mShuffle0));
-+ t3 = _mm_shuffle_epi8(s1, _mm256_castsi256_si128(mShuffle1));
-+
-+ m0 = _mm_madd_epi16(t0, _mm256_castsi256_si128(mCoef0));
-+ m1 = _mm_madd_epi16(t1, _mm256_castsi256_si128(mCoef1));
-+ m2 = _mm_madd_epi16(t2, _mm256_castsi256_si128(mCoef2));
-+ m3 = _mm_madd_epi16(t3, _mm256_castsi256_si128(mCoef3));
-+
-+ m0 = _mm_add_epi32(m0, m1);
-+ m1 = _mm_add_epi32(m2, m3);
-+
-+ m0 = _mm_add_epi32(m0, m1);
-+
-+ m0 = _mm_add_epi32(m0, _mm256_castsi256_si128(offset));
-+ m0 = _mm_srai_epi32(m0, shift1);
-+ m0 = _mm_packs_epi32(m0, m0);
-+ _mm_storel_epi64((__m128i*)tmp, m0);
-+ }
-+ }
-+
-+ {
-+ __m256i T4, T5, T6, T7, M4, M5, M6, M7;
-+ __m128i d0, d1;
-+
-+ offset = _mm256_set1_epi32(add2);
-+ tmp = tmp_res;
-+
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[3]));
-+
-+ while (height > 0) {
-+ T0 = _mm256_load_si256((__m256i*)(tmp));
-+ T1 = _mm256_loadu_si256((__m256i*)(tmp + i_tmp));
-+ T2 = _mm256_loadu_si256((__m256i*)(tmp + 2 * i_tmp));
-+ T3 = _mm256_loadu_si256((__m256i*)(tmp + 3 * i_tmp));
-+ T4 = _mm256_load_si256((__m256i*)(tmp + 4 * i_tmp));
-+ T5 = _mm256_loadu_si256((__m256i*)(tmp + 5 * i_tmp));
-+ T6 = _mm256_loadu_si256((__m256i*)(tmp + 6 * i_tmp));
-+ T7 = _mm256_loadu_si256((__m256i*)(tmp + 7 * i_tmp));
-+ height -= 4;
-+ tmp += i_tmp * 4;
-+
-+ M0 = _mm256_unpacklo_epi16(T0, T1);
-+ M1 = _mm256_unpacklo_epi16(T2, T3);
-+ M2 = _mm256_unpacklo_epi16(T4, T5);
-+ M3 = _mm256_unpacklo_epi16(T6, T7);
-+ M4 = _mm256_unpackhi_epi16(T0, T1);
-+ M5 = _mm256_unpackhi_epi16(T2, T3);
-+ M6 = _mm256_unpackhi_epi16(T4, T5);
-+ M7 = _mm256_unpackhi_epi16(T6, T7);
-+
-+ M0 = _mm256_madd_epi16(M0, mCoef0);
-+ M1 = _mm256_madd_epi16(M1, mCoef1);
-+ M2 = _mm256_madd_epi16(M2, mCoef2);
-+ M3 = _mm256_madd_epi16(M3, mCoef3);
-+ M4 = _mm256_madd_epi16(M4, mCoef0);
-+ M5 = _mm256_madd_epi16(M5, mCoef1);
-+ M6 = _mm256_madd_epi16(M6, mCoef2);
-+ M7 = _mm256_madd_epi16(M7, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+
-+ M0 = _mm256_add_epi32(M0, offset);
-+ M1 = _mm256_add_epi32(M1, offset);
-+ M0 = _mm256_srai_epi32(M0, shift2);
-+ M1 = _mm256_srai_epi32(M1, shift2);
-+ M0 = _mm256_packus_epi32(M0, M1);
-+ M0 = _mm256_min_epu16(M0, max_pel);
-+
-+ d0 = _mm256_castsi256_si128(M0);
-+ d1 = _mm256_extracti128_si256(M0, 1);
-+ _mm_storel_epi64((__m128i*)(dst), d0);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(d0));
-+ _mm_storel_epi64((__m128i*)(dst + (i_dst << 1)), d1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst * 3), _mm_castsi128_ps(d1));
-+
-+ dst += i_dst << 2;
-+ }
-+ }
-+}
-+
-+void uavs3d_if_hor_ver_luma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
-+{
-+ ALIGNED_32(s16 tmp_res[(64 + 7) * 8]);
-+ s16 *tmp = tmp_res;
-+ int row;
-+ int add1, shift1;
-+ int add2, shift2;
-+ __m256i offset;
-+ __m256i T0, T1, T2, T3, T4, T5;
-+ __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-+ const int i_tmp = 8;
-+ __m256i mCoef0, mCoef1, mCoef2, mCoef3;
-+ __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-+
-+ if (max_val == 255) { // 8 bit_depth
-+ shift1 = 0;
-+ shift2 = 12;
-+ }
-+ else { // 10 bit_depth
-+ shift1 = 2;
-+ shift2 = 10;
-+ }
-+
-+ add1 = (1 << (shift1)) >> 1;
-+ add2 = 1 << (shift2 - 1);
-+
-+ src += -3 * i_src - 3;
-+
-+ {
-+ __m128i s0, s1;
-+ __m256i S0, S1, S2;
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[3]));
-+ offset = _mm256_set1_epi32(add1);
-+
-+ row = height + 6;
-+
-+ while (row > 0) {
-+ T0 = _mm256_loadu_si256((__m256i*)(src));
-+ s0 = _mm_loadu_si128((__m128i*)(src + 4));
-+ T1 = _mm256_loadu_si256((__m256i*)(src + i_src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + i_src + 4));
-+ row -= 2;
-+ src += i_src << 1;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+
-+ S0 = _mm256_permute2x128_si256(T0, T1, 0x20);
-+ S2 = _mm256_permute2x128_si256(T0, T1, 0x31);
-+ S1 = _mm256_set_m128i(s1, s0);
-+
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm256_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm256_shuffle_epi8(S2, mShuffle1);
-+
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+ M4 = _mm256_madd_epi16(T2, mCoef0);
-+ M5 = _mm256_madd_epi16(T3, mCoef1);
-+ M6 = _mm256_madd_epi16(T4, mCoef2);
-+ M7 = _mm256_madd_epi16(T5, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-
- M2 = _mm256_add_epi32(M0, offset);
- M3 = _mm256_add_epi32(M1, offset);
- M2 = _mm256_srai_epi32(M2, shift1);
- M3 = _mm256_srai_epi32(M3, shift1);
- M2 = _mm256_packs_epi32(M2, M3);
-- _mm256_storeu_si256((__m256i*)(tmp + i), M2);
-
-- p += 8;
-+ _mm256_store_si256((__m256i*)(tmp), M2);
-+
-+ tmp += i_tmp * 2;
-+ }
-+ {
-+ // the last row
-+ __m128i t0, t1, t2, t3, t4, t5;
-+ __m128i m0, m1, m2, m3, m4, m5, m6, m7;
-+ __m128i s2;
-+ s0 = _mm_loadu_si128((__m128i*)(src));
-+ s1 = _mm_loadu_si128((__m128i*)(src + 4));
-+ s2 = _mm_loadu_si128((__m128i*)(src + 8));
-+ src += i_src;
-+
-+ t0 = _mm_shuffle_epi8(s0, _mm256_castsi256_si128(mShuffle0));
-+ t1 = _mm_shuffle_epi8(s0, _mm256_castsi256_si128(mShuffle1));
-+ t2 = _mm_shuffle_epi8(s1, _mm256_castsi256_si128(mShuffle0));
-+ t3 = _mm_shuffle_epi8(s1, _mm256_castsi256_si128(mShuffle1));
-+ t4 = _mm_shuffle_epi8(s2, _mm256_castsi256_si128(mShuffle0));
-+ t5 = _mm_shuffle_epi8(s2, _mm256_castsi256_si128(mShuffle1));
-+
-+ m0 = _mm_madd_epi16(t0, _mm256_castsi256_si128(mCoef0));
-+ m1 = _mm_madd_epi16(t1, _mm256_castsi256_si128(mCoef1));
-+ m2 = _mm_madd_epi16(t2, _mm256_castsi256_si128(mCoef2));
-+ m3 = _mm_madd_epi16(t3, _mm256_castsi256_si128(mCoef3));
-+ m4 = _mm_madd_epi16(t2, _mm256_castsi256_si128(mCoef0));
-+ m5 = _mm_madd_epi16(t3, _mm256_castsi256_si128(mCoef1));
-+ m6 = _mm_madd_epi16(t4, _mm256_castsi256_si128(mCoef2));
-+ m7 = _mm_madd_epi16(t5, _mm256_castsi256_si128(mCoef3));
-+
-+ m0 = _mm_add_epi32(m0, m1);
-+ m1 = _mm_add_epi32(m2, m3);
-+ m2 = _mm_add_epi32(m4, m5);
-+ m3 = _mm_add_epi32(m6, m7);
-+
-+ m0 = _mm_add_epi32(m0, m1);
-+ m1 = _mm_add_epi32(m2, m3);
-+
-+ m2 = _mm_add_epi32(m0, _mm256_castsi256_si128(offset));
-+ m3 = _mm_add_epi32(m1, _mm256_castsi256_si128(offset));
-+ m2 = _mm_srai_epi32(m2, shift1);
-+ m3 = _mm_srai_epi32(m3, shift1);
-+ m2 = _mm_packs_epi32(m2, m3);
-+ _mm_store_si128((__m128i*)tmp, m2);
- }
-- tmp += i_tmp;
-- src += i_src;
- }
-
-- offset = _mm256_set1_epi32(add2);
-- tmp = tmp_res;
-+ {
-+ __m256i N0, N1, N2, N3, N4, N5, N6, N7;
-+ __m256i T6, T7;
-+ offset = _mm256_set1_epi32(add2);
-+ tmp = tmp_res;
-
-- coeff0 = _mm_set1_epi16(*(s16*)(coef_y));
-- coeff1 = _mm_set1_epi16(*(s16*)(coef_y + 2));
-- coeff2 = _mm_set1_epi16(*(s16*)(coef_y + 4));
-- coeff3 = _mm_set1_epi16(*(s16*)(coef_y + 6));
-- coeff00 = _mm256_cvtepi8_epi16(coeff0);
-- coeff01 = _mm256_cvtepi8_epi16(coeff1);
-- coeff02 = _mm256_cvtepi8_epi16(coeff2);
-- coeff03 = _mm256_cvtepi8_epi16(coeff3);
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[3]));
-
-- while (height--) {
-- const pel *p = (pel*)tmp;
-- for (i = 0; i < width; i += 16) {
-- T0 = _mm256_load_si256((__m256i*)(p));
-- T1 = _mm256_load_si256((__m256i*)(p + i_tmp));
-- T2 = _mm256_load_si256((__m256i*)(p + 2 * i_tmp));
-- T3 = _mm256_load_si256((__m256i*)(p + 3 * i_tmp));
-- T4 = _mm256_load_si256((__m256i*)(p + 4 * i_tmp));
-- T5 = _mm256_load_si256((__m256i*)(p + 5 * i_tmp));
-- T6 = _mm256_load_si256((__m256i*)(p + 6 * i_tmp));
-- T7 = _mm256_load_si256((__m256i*)(p + 7 * i_tmp));
-+ while (height > 0) {
-+ T0 = _mm256_load_si256((__m256i*)(tmp));
-+ T1 = _mm256_loadu_si256((__m256i*)(tmp + i_tmp));
-+ T2 = _mm256_load_si256((__m256i*)(tmp + 2 * i_tmp));
-+ T3 = _mm256_loadu_si256((__m256i*)(tmp + 3 * i_tmp));
-+ T4 = _mm256_load_si256((__m256i*)(tmp + 4 * i_tmp));
-+ T5 = _mm256_loadu_si256((__m256i*)(tmp + 5 * i_tmp));
-+ T6 = _mm256_load_si256((__m256i*)(tmp + 6 * i_tmp));
-+ T7 = _mm256_loadu_si256((__m256i*)(tmp + 7 * i_tmp));
-+ height -= 2;
-+ tmp += i_tmp * 2;
-
- M0 = _mm256_unpacklo_epi16(T0, T1);
- M1 = _mm256_unpacklo_epi16(T2, T3);
-@@ -3935,14 +4371,14 @@ void uavs3d_if_hor_ver_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i
- M6 = _mm256_unpackhi_epi16(T4, T5);
- M7 = _mm256_unpackhi_epi16(T6, T7);
-
-- N0 = _mm256_madd_epi16(M0, coeff00);
-- N1 = _mm256_madd_epi16(M1, coeff01);
-- N2 = _mm256_madd_epi16(M2, coeff02);
-- N3 = _mm256_madd_epi16(M3, coeff03);
-- N4 = _mm256_madd_epi16(M4, coeff00);
-- N5 = _mm256_madd_epi16(M5, coeff01);
-- N6 = _mm256_madd_epi16(M6, coeff02);
-- N7 = _mm256_madd_epi16(M7, coeff03);
-+ N0 = _mm256_madd_epi16(M0, mCoef0);
-+ N1 = _mm256_madd_epi16(M1, mCoef1);
-+ N2 = _mm256_madd_epi16(M2, mCoef2);
-+ N3 = _mm256_madd_epi16(M3, mCoef3);
-+ N4 = _mm256_madd_epi16(M4, mCoef0);
-+ N5 = _mm256_madd_epi16(M5, mCoef1);
-+ N6 = _mm256_madd_epi16(M6, mCoef2);
-+ N7 = _mm256_madd_epi16(M7, mCoef3);
-
- N0 = _mm256_add_epi32(N0, N1);
- N1 = _mm256_add_epi32(N2, N3);
-@@ -3958,14 +4394,164 @@ void uavs3d_if_hor_ver_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i
- N1 = _mm256_srai_epi32(N1, shift2);
- N0 = _mm256_packus_epi32(N0, N1);
- N0 = _mm256_min_epu16(N0, max_pel);
-- _mm256_storeu_si256((__m256i*)(dst + i), N0);
-
-- p += 16;
-+ _mm_storeu_si128((__m128i*)(dst), _mm256_castsi256_si128(N0));
-+ _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_extracti128_si256(N0, 1));
-+
-+ dst += i_dst << 1;
- }
-- dst += i_dst;
-- tmp += i_tmp;
-+ }
-+}
-+
-+void uavs3d_if_hor_ver_luma_w16x_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
-+{
-+ ALIGNED_32(s16 tmp_res[(128 + 7) * 128]);
-+ s16 *tmp = tmp_res;
-+ int row, i;;
-+ int add1, shift1;
-+ int add2, shift2;
-+ __m256i offset;
-+ __m256i T0, T1, T2, T3, T4, T5;
-+ __m256i M0, M1, M2, M3, M4, M5, M6, M7;
-+ int i_tmp = width;
-+ __m256i mCoef0, mCoef1, mCoef2, mCoef3;
-+ __m256i max_pel = _mm256_set1_epi16((pel)max_val);
-+
-+ if (max_val == 255) { // 8 bit_depth
-+ shift1 = 0;
-+ shift2 = 12;
-+ }
-+ else { // 10 bit_depth
-+ shift1 = 2;
-+ shift2 = 10;
- }
-
-+ add1 = (1 << (shift1)) >> 1;
-+ add2 = 1 << (shift2 - 1);
-+
-+ src += -3 * i_src - 3;
-+
-+ {
-+ __m256i S0, S1, S2;
-+ __m256i mShuffle0 = _mm256_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m256i mShuffle1 = _mm256_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13, 4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_x)[3]));
-+ offset = _mm256_set1_epi32(add1);
-+
-+ row = height + 7;
-+
-+ while (row--) {
-+ const pel *p = src;
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+ for (i = 0; i < width; i += 16) {
-+ S0 = _mm256_loadu_si256((__m256i*)(p));
-+ S1 = _mm256_loadu_si256((__m256i*)(p + 4));
-+ S2 = _mm256_loadu_si256((__m256i*)(p + 8));
-+
-+ T0 = _mm256_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm256_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm256_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm256_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm256_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm256_shuffle_epi8(S2, mShuffle1);
-+
-+ M0 = _mm256_madd_epi16(T0, mCoef0);
-+ M1 = _mm256_madd_epi16(T1, mCoef1);
-+ M2 = _mm256_madd_epi16(T2, mCoef2);
-+ M3 = _mm256_madd_epi16(T3, mCoef3);
-+ M4 = _mm256_madd_epi16(T2, mCoef0);
-+ M5 = _mm256_madd_epi16(T3, mCoef1);
-+ M6 = _mm256_madd_epi16(T4, mCoef2);
-+ M7 = _mm256_madd_epi16(T5, mCoef3);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+ M2 = _mm256_add_epi32(M4, M5);
-+ M3 = _mm256_add_epi32(M6, M7);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M1 = _mm256_add_epi32(M2, M3);
-+
-+ p += 16;
-+ M2 = _mm256_add_epi32(M0, offset);
-+ M3 = _mm256_add_epi32(M1, offset);
-+ M2 = _mm256_srai_epi32(M2, shift1);
-+ M3 = _mm256_srai_epi32(M3, shift1);
-+ M2 = _mm256_packs_epi32(M2, M3);
-+ _mm256_storeu_si256((__m256i*)(tmp + i), M2);
-+ }
-+ tmp += i_tmp;
-+ src += i_src;
-+ }
-+ }
-+
-+ {
-+ __m256i N0, N1, N2, N3, N4, N5, N6, N7;
-+ __m256i T6, T7;
-+ offset = _mm256_set1_epi32(add2);
-+ tmp = tmp_res;
-+
-+ mCoef0 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[0]));
-+ mCoef1 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[1]));
-+ mCoef2 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[2]));
-+ mCoef3 = _mm256_cvtepi8_epi16(_mm_set1_epi16(((short*)coef_y)[3]));
-+
-+ while (height--) {
-+ const pel *p = (pel*)tmp;
-+ for (i = 0; i < width; i += 16) {
-+ T0 = _mm256_load_si256((__m256i*)(p));
-+ T1 = _mm256_load_si256((__m256i*)(p + i_tmp));
-+ T2 = _mm256_load_si256((__m256i*)(p + 2 * i_tmp));
-+ T3 = _mm256_load_si256((__m256i*)(p + 3 * i_tmp));
-+ T4 = _mm256_load_si256((__m256i*)(p + 4 * i_tmp));
-+ T5 = _mm256_load_si256((__m256i*)(p + 5 * i_tmp));
-+ T6 = _mm256_load_si256((__m256i*)(p + 6 * i_tmp));
-+ T7 = _mm256_load_si256((__m256i*)(p + 7 * i_tmp));
-+
-+ M0 = _mm256_unpacklo_epi16(T0, T1);
-+ M1 = _mm256_unpacklo_epi16(T2, T3);
-+ M2 = _mm256_unpacklo_epi16(T4, T5);
-+ M3 = _mm256_unpacklo_epi16(T6, T7);
-+ M4 = _mm256_unpackhi_epi16(T0, T1);
-+ M5 = _mm256_unpackhi_epi16(T2, T3);
-+ M6 = _mm256_unpackhi_epi16(T4, T5);
-+ M7 = _mm256_unpackhi_epi16(T6, T7);
-+
-+ N0 = _mm256_madd_epi16(M0, mCoef0);
-+ N1 = _mm256_madd_epi16(M1, mCoef1);
-+ N2 = _mm256_madd_epi16(M2, mCoef2);
-+ N3 = _mm256_madd_epi16(M3, mCoef3);
-+ N4 = _mm256_madd_epi16(M4, mCoef0);
-+ N5 = _mm256_madd_epi16(M5, mCoef1);
-+ N6 = _mm256_madd_epi16(M6, mCoef2);
-+ N7 = _mm256_madd_epi16(M7, mCoef3);
-+
-+ N0 = _mm256_add_epi32(N0, N1);
-+ N1 = _mm256_add_epi32(N2, N3);
-+ N2 = _mm256_add_epi32(N4, N5);
-+ N3 = _mm256_add_epi32(N6, N7);
-+
-+ N0 = _mm256_add_epi32(N0, N1);
-+ N1 = _mm256_add_epi32(N2, N3);
-+
-+ N0 = _mm256_add_epi32(N0, offset);
-+ N1 = _mm256_add_epi32(N1, offset);
-+ N0 = _mm256_srai_epi32(N0, shift2);
-+ N1 = _mm256_srai_epi32(N1, shift2);
-+ N0 = _mm256_packus_epi32(N0, N1);
-+ N0 = _mm256_min_epu16(N0, max_pel);
-+ _mm256_storeu_si256((__m256i*)(dst + i), N0);
-+
-+ p += 16;
-+ }
-+ dst += i_dst;
-+ tmp += i_tmp;
-+ }
-+ }
- }
-
- void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i_dst, int width, int height, const s8 *coef_x, const s8 *coef_y, int max_val)
-@@ -3979,14 +4565,6 @@ void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i
- int shift1, shift2;
- int add1, add2;
-
-- __m128i coef0 = _mm_set1_epi16(*(s16*)coef_x);
-- __m128i coef1 = _mm_set1_epi16(*(s16*)(coef_x + 2));
-- __m256i mCoef0 = _mm256_cvtepi8_epi16(coef0);
-- __m256i mCoef1 = _mm256_cvtepi8_epi16(coef1);
-- __m256i mSwitch = _mm256_setr_epi8(0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11);
-- __m256i T0, T1, S0, S1, sum;
-- __m256i mAddOffset;
--
- if (max_val == 255) { // 8 bit_depth
- shift1 = 0;
- shift2 = 12;
-@@ -3999,25 +4577,34 @@ void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i
- add1 = (1 << (shift1)) >> 1;
- add2 = 1 << (shift2 - 1);
-
-- mAddOffset = _mm256_set1_epi32(add1);
- //HOR
-+ __m128i coef0 = _mm_cvtepi8_epi16(_mm_set1_epi16(((s16*)coef_x)[0]));
-+ __m128i coef1 = _mm_cvtepi8_epi16(_mm_set1_epi16(((s16*)coef_x)[1]));
-+ __m256i mCoef0 = _mm256_set_m128i(coef1, coef0);
-+ __m256i mCoef1 = _mm256_set_m128i(coef0, coef1);
-+ __m256i mSwitch = _mm256_setr_epi8(0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 4, 5, 8, 9, 6, 7, 10, 11);
-+ __m256i T0, T1, S0, S1, sum;
-+ __m256i mAddOffset = _mm256_set1_epi32(add1);
-+ __m128i mDst;
-+ __m128i s0;
-+
- src = src - i_src - 2;
- row = height + 3;
- while (row--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- S0 = _mm256_loadu_si256((__m256i*)(src));
-- S1 = _mm256_loadu_si256((__m256i*)(src + 4));
-- S0 = _mm256_permute4x64_epi64(S0, 0x94);
-- S1 = _mm256_permute4x64_epi64(S1, 0x94);
-- T0 = _mm256_madd_epi16(_mm256_shuffle_epi8(S0, mSwitch), mCoef0);
-- T1 = _mm256_madd_epi16(_mm256_shuffle_epi8(S1, mSwitch), mCoef1);
-+ s0 = _mm_loadu_si128((__m128i*)(src + 4));
-+ uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-+ S1 = _mm256_set_m128i(s0, s0);
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch);
-+ T1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T0 = _mm256_madd_epi16(T0, mCoef0);
-+ T1 = _mm256_madd_epi16(T1, mCoef1);
- sum = _mm256_add_epi32(T0, T1);
-
- sum = _mm256_add_epi32(sum, mAddOffset);
- sum = _mm256_srai_epi32(sum, shift1);
-- sum = _mm256_packs_epi32(sum, sum);
-- sum = _mm256_permute4x64_epi64(sum, 0xd8);
-- _mm_storeu_si128((__m128i*)(tmp), _mm256_castsi256_si128(sum));
-+ mDst = _mm_packs_epi32(_mm256_castsi256_si128(sum), _mm256_extracti128_si256(sum, 1));
-+ _mm_store_si128((__m128i*)(tmp), mDst);
-
- src += i_src;
- tmp += i_tmp;
-@@ -4027,46 +4614,49 @@ void uavs3d_if_hor_ver_chroma_w8_avx2(const pel *src, int i_src, pel *dst, int i
- tmp = tmp_res;
-
- {
-- __m128i max_val1 = _mm_set1_epi16((pel)max_val);
-- __m128i coeff0, coeff1, mVal, mAddOffset2;
-- __m128i M0, M1, M2, M3;
-+ __m128i coeff0, coeff1;
-+ __m256i MaxVal = _mm256_set1_epi16((pel)max_val);
-+ __m256i C0, C1, mVal, mAddOffset2;
-+ __m256i M0, M1, M2, M3;
-
- coeff0 = _mm_set1_epi16(*(s16*)coef_y);
- coeff1 = _mm_set1_epi16(*(s16*)(coef_y + 2));
-- mAddOffset2 = _mm_set1_epi32(add2);
--
-- coeff0 = _mm_cvtepi8_epi16(coeff0);
-- coeff1 = _mm_cvtepi8_epi16(coeff1);
-- while (height--) {
-- __m128i T00 = _mm_load_si128((__m128i*)(tmp));
-- __m128i T10 = _mm_load_si128((__m128i*)(tmp + i_tmp));
-- __m128i T20 = _mm_load_si128((__m128i*)(tmp + i_tmp2));
-- __m128i T30 = _mm_load_si128((__m128i*)(tmp + i_tmp3));
-+ mAddOffset2 = _mm256_set1_epi32(add2);
-
-- M0 = _mm_unpacklo_epi16(T00, T10);
-- M1 = _mm_unpacklo_epi16(T20, T30);
-- M2 = _mm_unpackhi_epi16(T00, T10);
-- M3 = _mm_unpackhi_epi16(T20, T30);
--
-- M0 = _mm_madd_epi16(M0, coeff0);
-- M1 = _mm_madd_epi16(M1, coeff1);
-- M2 = _mm_madd_epi16(M2, coeff0);
-- M3 = _mm_madd_epi16(M3, coeff1);
--
-- M0 = _mm_add_epi32(M0, M1);
-- M2 = _mm_add_epi32(M2, M3);
--
-- M0 = _mm_add_epi32(M0, mAddOffset2);
-- M2 = _mm_add_epi32(M2, mAddOffset2);
-- M0 = _mm_srai_epi32(M0, shift2);
-- M2 = _mm_srai_epi32(M2, shift2);
--
-- mVal = _mm_packus_epi32(M0, M2);
-- mVal = _mm_min_epu16(mVal, max_val1);
-- _mm_storeu_si128((__m128i*)dst, mVal);
--
-- tmp += i_tmp;
-- dst += i_dst;
-+ C0 = _mm256_cvtepi8_epi16(coeff0);
-+ C1 = _mm256_cvtepi8_epi16(coeff1);
-+ while (height) {
-+ __m256i T00 = _mm256_load_si256((__m256i*)(tmp));
-+ __m256i T10 = _mm256_loadu_si256((__m256i*)(tmp + i_tmp));
-+ __m256i T20 = _mm256_load_si256((__m256i*)(tmp + i_tmp2));
-+ __m256i T30 = _mm256_loadu_si256((__m256i*)(tmp + i_tmp3));
-+
-+ M0 = _mm256_unpacklo_epi16(T00, T10);
-+ M1 = _mm256_unpacklo_epi16(T20, T30);
-+ M2 = _mm256_unpackhi_epi16(T00, T10);
-+ M3 = _mm256_unpackhi_epi16(T20, T30);
-+
-+ M0 = _mm256_madd_epi16(M0, C0);
-+ M1 = _mm256_madd_epi16(M1, C1);
-+ M2 = _mm256_madd_epi16(M2, C0);
-+ M3 = _mm256_madd_epi16(M3, C1);
-+
-+ M0 = _mm256_add_epi32(M0, M1);
-+ M2 = _mm256_add_epi32(M2, M3);
-+
-+ M0 = _mm256_add_epi32(M0, mAddOffset2);
-+ M2 = _mm256_add_epi32(M2, mAddOffset2);
-+ M0 = _mm256_srai_epi32(M0, shift2);
-+ M2 = _mm256_srai_epi32(M2, shift2);
-+
-+ mVal = _mm256_packus_epi32(M0, M2);
-+ mVal = _mm256_min_epu16(mVal, MaxVal);
-+ _mm_storeu_si128((__m128i*)dst, _mm256_castsi256_si128(mVal));
-+ _mm_storeu_si128((__m128i*)(dst + i_dst), _mm256_extracti128_si256(mVal, 1));
-+
-+ height -= 2;
-+ tmp += i_tmp2;
-+ dst += i_dst << 1;
- }
- }
- }
-@@ -4113,28 +4703,26 @@ void uavs3d_if_hor_ver_chroma_w16x_avx2(const pel *src, int i_src, pel *dst, int
- while (row--) {
- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
- for (col = 0; col < width; col += 16) {
-- S0 = _mm256_loadu_si256((__m256i*)(src + col));
-- S1 = _mm256_loadu_si256((__m256i*)(src + col + 4));
-+ S0 = _mm256_loadu_si256((__m256i*)(src + col));
-+ S1 = _mm256_loadu_si256((__m256i*)(src + col + 4));
- S2 = _mm256_loadu_si256((__m256i*)(src + col + 8));
-- S3 = _mm256_loadu_si256((__m256i*)(src + col + 12));
-- S0 = _mm256_permute4x64_epi64(S0, 0x94);
-- S1 = _mm256_permute4x64_epi64(S1, 0x94);
-- S2 = _mm256_permute4x64_epi64(S2, 0x94);
-- S3 = _mm256_permute4x64_epi64(S3, 0x94);
-- T0 = _mm256_madd_epi16(_mm256_shuffle_epi8(S0, mSwitch), mCoef0);
-- T1 = _mm256_madd_epi16(_mm256_shuffle_epi8(S1, mSwitch), mCoef1);
-- T2 = _mm256_madd_epi16(_mm256_shuffle_epi8(S2, mSwitch), mCoef0);
-- T3 = _mm256_madd_epi16(_mm256_shuffle_epi8(S3, mSwitch), mCoef1);
-- T0 = _mm256_add_epi32(T0, T1);
-- T2 = _mm256_add_epi32(T2, T3);
-+ T0 = _mm256_shuffle_epi8(S0, mSwitch);
-+ T1 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T2 = _mm256_shuffle_epi8(S1, mSwitch);
-+ T3 = _mm256_shuffle_epi8(S2, mSwitch);
-+ S0 = _mm256_madd_epi16(T0, mCoef0);
-+ S1 = _mm256_madd_epi16(T1, mCoef1);
-+ S2 = _mm256_madd_epi16(T2, mCoef0);
-+ S3 = _mm256_madd_epi16(T3, mCoef1);
-+ T0 = _mm256_add_epi32(S0, S1);
-+ T2 = _mm256_add_epi32(S2, S3);
-
- T0 = _mm256_add_epi32(T0, mAddOffset);
- T2 = _mm256_add_epi32(T2, mAddOffset);
- T0 = _mm256_srai_epi32(T0, shift1);
- T2 = _mm256_srai_epi32(T2, shift1);
- T0 = _mm256_packs_epi32(T0, T2);
-- T0 = _mm256_permute4x64_epi64(T0, 0xd8);
-- _mm256_storeu_si256((__m256i*)(tmp + col), T0);
-+ _mm256_store_si256((__m256i*)(tmp + col), T0);
- }
- src += i_src;
- tmp += i_tmp;
-diff --git a/source/decore/avx2/intra_pred_avx2.c b/source/decore/avx2/intra_pred_avx2.c
-index 07e19b2..18961f6 100644
---- a/source/decore/avx2/intra_pred_avx2.c
-+++ b/source/decore/avx2/intra_pred_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -204,7 +199,7 @@ void uavs3d_ipred_hor_avx2(pel *src, pel *dst, int i_dst, int width, int height)
-
- void uavs3d_ipred_dc_avx2(pel *src, pel *dst, int i_dst, int width, int height, u16 avail_cu, int bit_depth)
- {
-- int i, x, y;
-+ int x, y;
- int dc;
- pel *p_src = src - 1;
- int left_avail = IS_AVAIL(avail_cu, AVAIL_LE);
-@@ -212,6 +207,7 @@ void uavs3d_ipred_dc_avx2(pel *src, pel *dst, int i_dst, int width, int height,
-
- if (left_avail && above_avail) {
- int length = width + height + 1;
-+ int i;
- __m128i sum = _mm_setzero_si128();
- __m128i val;
-
-@@ -2738,7 +2734,6 @@ void uavs3d_ipred_ang_xy_18_avx2(pel *src, pel *dst, int i_dst, int mode, int wi
- dst += i_dst;
- }
- break;
-- break;
- }
-
- }
-@@ -3452,10 +3447,10 @@ void uavs3d_ipred_ver_avx2(pel *src, pel *dst, int i_dst, int width, int height)
- T0 = _mm256_loadu_si256((__m256i *)(src));
- T1 = _mm256_loadu_si256((__m256i *)(src + 16));
- for (y = 0; y < height; y += 2) {
-- _mm256_store_si256((__m256i *)(dst), T0);
-- _mm256_store_si256((__m256i *)(dst + 16), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst), T0);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 16), T1);
- dst += i_dst2;
- }
- break;
-@@ -3468,14 +3463,14 @@ void uavs3d_ipred_ver_avx2(pel *src, pel *dst, int i_dst, int width, int height)
- T2 = _mm256_loadu_si256((__m256i *)(src + 32));
- T3 = _mm256_loadu_si256((__m256i *)(src + 48));
- for (y = 0; y < height; y += 2) {
-- _mm256_store_si256((__m256i *)(dst), T0);
-- _mm256_store_si256((__m256i *)(dst + 16), T1);
-- _mm256_store_si256((__m256i *)(dst + 32), T2);
-- _mm256_store_si256((__m256i *)(dst + 48), T3);
-- _mm256_store_si256((__m256i *)(dst + i_dst), T0);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 16), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 32), T2);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 48), T3);
-+ _mm256_storeu_si256((__m256i *)(dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + 32), T2);
-+ _mm256_storeu_si256((__m256i *)(dst + 48), T3);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 32), T2);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 48), T3);
- dst += i_dst2;
- }
- break;
-@@ -3539,10 +3534,10 @@ void uavs3d_ipred_hor_avx2(pel *src, pel *dst, int i_dst, int width, int height)
- for (y = 0; y < height; y += 2) {
- T0 = _mm256_set1_epi16(src[-y]);
- T1 = _mm256_set1_epi16(src[-y - 1]);
-- _mm256_store_si256((__m256i *)(dst), T0);
-- _mm256_store_si256((__m256i *)(dst + 16), T0);
-- _mm256_store_si256((__m256i *)(dst + i_dst), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 16), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 16), T1);
- dst += i_dst2;
- }
- break;
-@@ -3553,14 +3548,14 @@ void uavs3d_ipred_hor_avx2(pel *src, pel *dst, int i_dst, int width, int height)
- for (y = 0; y < height; y += 2) {
- T0 = _mm256_set1_epi16(src[-y]);
- T1 = _mm256_set1_epi16(src[-y - 1]);
-- _mm256_store_si256((__m256i *)(dst), T0);
-- _mm256_store_si256((__m256i *)(dst + 16), T0);
-- _mm256_store_si256((__m256i *)(dst + 32), T0);
-- _mm256_store_si256((__m256i *)(dst + 48), T0);
-- _mm256_store_si256((__m256i *)(dst + i_dst), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 16), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 32), T1);
-- _mm256_store_si256((__m256i *)(dst + i_dst + 48), T1);
-+ _mm256_storeu_si256((__m256i *)(dst), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 16), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 32), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + 48), T0);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 16), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 32), T1);
-+ _mm256_storeu_si256((__m256i *)(dst + i_dst + 48), T1);
- dst += i_dst2;
- }
- break;
-diff --git a/source/decore/avx2/itrans_avx2.c b/source/decore/avx2/itrans_avx2.c
-index 9b1df21..d8766b6 100644
---- a/source/decore/avx2/itrans_avx2.c
-+++ b/source/decore/avx2/itrans_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -79,14 +74,14 @@
- #define TRANSPOSE_16x8_32BIT_16BIT(I00, I01, I02, I03, I04, I05, I06, I07, I08, I09, I10, I11, I12, I13, I14, I15, O0, O1, O2, O3, O4, O5, O6, O7)\
- TRANSPOSE_8x8_32BIT_16BIT(I00, I01, I02, I03, I04, I05, I06, I07, I04, I05, I06, I07); \
- TRANSPOSE_8x8_32BIT_16BIT(I08, I09, I10, I11, I12, I13, I14, I15, I12, I13, I14, I15); \
-- O0 = _mm256_insertf128_si256(I04, _mm256_castsi256_si128(I12), 1); \
-- O1 = _mm256_insertf128_si256(I05, _mm256_castsi256_si128(I13), 1); \
-- O2 = _mm256_insertf128_si256(I06, _mm256_castsi256_si128(I14), 1); \
-- O3 = _mm256_insertf128_si256(I07, _mm256_castsi256_si128(I15), 1); \
-- O4 = _mm256_insertf128_si256(I12, _mm256_extracti128_si256(I04, 1), 0); \
-- O5 = _mm256_insertf128_si256(I13, _mm256_extracti128_si256(I05, 1), 0); \
-- O6 = _mm256_insertf128_si256(I14, _mm256_extracti128_si256(I06, 1), 0); \
-- O7 = _mm256_insertf128_si256(I15, _mm256_extracti128_si256(I07, 1), 0)
-+ O0 = _mm256_permute2x128_si256(I04, I12, 0x20); \
-+ O1 = _mm256_permute2x128_si256(I05, I13, 0x20); \
-+ O2 = _mm256_permute2x128_si256(I06, I14, 0x20); \
-+ O3 = _mm256_permute2x128_si256(I07, I15, 0x20); \
-+ O4 = _mm256_permute2x128_si256(I04, I12, 0x31); \
-+ O5 = _mm256_permute2x128_si256(I05, I13, 0x31); \
-+ O6 = _mm256_permute2x128_si256(I06, I14, 0x31); \
-+ O7 = _mm256_permute2x128_si256(I07, I15, 0x31)
-
-
- static void uavs3d_always_inline dct2_butterfly_h4_avx2(s16* src, s16* dst, int line, int shift, int bit_depth)
-@@ -272,10 +267,10 @@ static void uavs3d_always_inline dct2_butterfly_h8_avx2(s16* src, int i_src, s16
-
- // transpose 8x8 : 8 x 8(32bit) --> 4 x 16(16bit)
- TRANSPOSE_8x8_32BIT_16BIT(d0, d1, d2, d3, d4, d5, d6, d7, d4, d5, d6, d7);
-- d0 = _mm256_insertf128_si256(d4, _mm256_castsi256_si128(d5), 1);
-- d1 = _mm256_insertf128_si256(d6, _mm256_castsi256_si128(d7), 1);
-- d2 = _mm256_insertf128_si256(d5, _mm256_extracti128_si256(d4, 1), 0);
-- d3 = _mm256_insertf128_si256(d7, _mm256_extracti128_si256(d6, 1), 0);
-+ d0 = _mm256_permute2x128_si256(d4, d5, 0x20);
-+ d2 = _mm256_permute2x128_si256(d4, d5, 0x31);
-+ d1 = _mm256_permute2x128_si256(d6, d7, 0x20);
-+ d3 = _mm256_permute2x128_si256(d6, d7, 0x31);
-
- if (bit_depth != MAX_TX_DYNAMIC_RANGE) {
- __m256i max_val = _mm256_set1_epi16((1 << bit_depth) - 1);
-diff --git a/source/decore/avx2/pixel_avx2.c b/source/decore/avx2/pixel_avx2.c
-index 8031fe7..10d48f9 100644
---- a/source/decore/avx2/pixel_avx2.c
-+++ b/source/decore/avx2/pixel_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -986,8 +981,8 @@ void uavs3d_recon_chroma_w16_avx2(s16 *resi_u, s16 *resi_v, pel *pred, int width
- r1 = _mm256_loadu_si256((const __m256i*)(resi_v));
- r2 = _mm256_unpacklo_epi16(r0, r1); // UV interlaced: uv0-uv4 uv8-uv12
- r3 = _mm256_unpackhi_epi16(r0, r1);
-- r0 = _mm256_insertf128_si256(r2, _mm256_castsi256_si128(r3), 0x1); // uv0-uv8
-- r1 = _mm256_insertf128_si256(r3, _mm256_extracti128_si256(r2, 1), 0x0);
-+ r0 = _mm256_permute2x128_si256(r2, r3, 0x20); // uv0-uv8
-+ r1 = _mm256_permute2x128_si256(r2, r3, 0x31);
- p0 = _mm256_adds_epi16(p0, r0);
- p1 = _mm256_adds_epi16(p1, r1);
-
-@@ -1035,8 +1030,8 @@ void uavs3d_recon_chroma_w16_avx2(s16 *resi_u, s16 *resi_v, pel *pred, int width
- r1 = _mm256_loadu_si256((const __m256i*)(resi_v));
- r2 = _mm256_unpacklo_epi16(zero, r1); // UV interlaced: uv0-uv4 uv8-uv12
- r3 = _mm256_unpackhi_epi16(zero, r1);
-- r0 = _mm256_insertf128_si256(r2, _mm256_castsi256_si128(r3), 0x1); // uv0-uv8
-- r1 = _mm256_insertf128_si256(r3, _mm256_extracti128_si256(r2, 1), 0x0);
-+ r0 = _mm256_permute2x128_si256(r2, r3, 0x20); // uv0-uv8
-+ r1 = _mm256_permute2x128_si256(r2, r3, 0x31);
- p0 = _mm256_adds_epi16(p0, r0);
- p1 = _mm256_adds_epi16(p1, r1);
-
-@@ -1073,8 +1068,8 @@ void uavs3d_recon_chroma_w16x_avx2(s16 *resi_u, s16 *resi_v, pel *pred, int widt
- r1 = _mm256_loadu_si256((const __m256i*)(resi_v + j));
- r2 = _mm256_unpacklo_epi16(r0, r1); // UV interlaced: uv0-uv4 uv8-uv12
- r3 = _mm256_unpackhi_epi16(r0, r1);
-- r0 = _mm256_insertf128_si256(r2, _mm256_castsi256_si128(r3), 0x1); // uv0-uv8
-- r1 = _mm256_insertf128_si256(r3, _mm256_extracti128_si256(r2, 1), 0x0);
-+ r0 = _mm256_permute2x128_si256(r2, r3, 0x20); // uv0-uv8
-+ r1 = _mm256_permute2x128_si256(r2, r3, 0x31);
- p0 = _mm256_adds_epi16(p0, r0);
- p1 = _mm256_adds_epi16(p1, r1);
-
-@@ -1126,8 +1121,8 @@ void uavs3d_recon_chroma_w16x_avx2(s16 *resi_u, s16 *resi_v, pel *pred, int widt
- r1 = _mm256_loadu_si256((const __m256i*)(resi_v + j));
- r2 = _mm256_unpacklo_epi16(zero, r1); // UV interlaced: uv0-uv4 uv8-uv12
- r3 = _mm256_unpackhi_epi16(zero, r1);
-- r0 = _mm256_insertf128_si256(r2, _mm256_castsi256_si128(r3), 0x1); // uv0-uv8
-- r1 = _mm256_insertf128_si256(r3, _mm256_extracti128_si256(r2, 1), 0x0);
-+ r0 = _mm256_permute2x128_si256(r2, r3, 0x20); // uv0-uv8
-+ r1 = _mm256_permute2x128_si256(r2, r3, 0x31);
- p0 = _mm256_adds_epi16(p0, r0);
- p1 = _mm256_adds_epi16(p1, r1);
-
-diff --git a/source/decore/avx2/sao_avx2.c b/source/decore/avx2/sao_avx2.c
-index 73c01b4..7d2d527 100644
---- a/source/decore/avx2/sao_avx2.c
-+++ b/source/decore/avx2/sao_avx2.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_def.h b/source/decore/com_def.h
-index a8e9446..8b7ad27 100644
---- a/source/decore/com_def.h
-+++ b/source/decore/com_def.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -40,14 +35,18 @@
-
- #include "com_sys.h"
-
--#define BIT_DEPTH 8
--
- #define CHECK_RAND_STRM 0
-
--#if (BIT_DEPTH == 8)
--typedef u8 pel; /* pixel type */
-+#ifndef COMPILE_10BIT
-+#define COMPILE_10BIT 0
-+#endif
-+
-+#if COMPILE_10BIT
-+typedef unsigned short pel; /* pixel type */
-+#define BIT_DEPTH 10
- #else
--typedef s16 pel; /* pixel type */
-+typedef unsigned char pel; /* pixel type */
-+#define BIT_DEPTH 8
- #endif
-
- /************************* profile & level **********************************************/
-diff --git a/source/decore/com_sys.h b/source/decore/com_sys.h
-index 0cb4359..2ea3237 100644
---- a/source/decore/com_sys.h
-+++ b/source/decore/com_sys.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_table.c b/source/decore/com_table.c
-index bbc40d9..2042e6d 100644
---- a/source/decore/com_table.c
-+++ b/source/decore/com_table.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_table.h b/source/decore/com_table.h
-index 2c2bb3d..c419405 100644
---- a/source/decore/com_table.h
-+++ b/source/decore/com_table.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_type.h b/source/decore/com_type.h
-index 5bb8337..0a7db50 100644
---- a/source/decore/com_type.h
-+++ b/source/decore/com_type.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_util.c b/source/decore/com_util.c
-index 7e374c9..353804b 100644
---- a/source/decore/com_util.c
-+++ b/source/decore/com_util.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/com_util.h b/source/decore/com_util.h
-index b6887bb..721a0c1 100644
---- a/source/decore/com_util.h
-+++ b/source/decore/com_util.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -41,10 +36,10 @@
- #include "com_type.h"
-
- /* function selection define based on platforms */
--#if (defined(__ANDROID__) && defined(__aarch64__)) || (defined(__APPLE__) && defined(__arm64__))
-+#if defined(_arm64) || (defined(__APPLE__) && defined(__arm64__))
- #define ENABLE_FUNCTION_C 1
- #define ENABLE_FUNCTION_ARM64 1
--#elif (defined(__ANDROID__) && defined(__arm__)) || (defined(__APPLE__) && defined(__ARM_NEON__))
-+#elif defined(_armv7a) || (defined(__APPLE__) && defined(__ARM_NEON__))
- #define ENABLE_FUNCTION_C 1
- #define ENABLE_FUNCTION_ARM32 1
- #elif (defined(__WIN32__) || defined(_WIN32)) || (defined(__MACOSX__) || defined(macintosh) || defined(__linux__) || defined(__unix__)) && (defined(__i386__) || defined(__x86_64__) || defined(__AMD64__))
-diff --git a/source/decore/deblock.c b/source/decore/deblock.c
-index 0996c57..f9764d6 100644
---- a/source/decore/deblock.c
-+++ b/source/decore/deblock.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -65,7 +60,7 @@ static int uavs3d_always_inline skip_filter(com_map_t *map, com_ref_pic_t refp[M
- {
- com_scu_t MbQ = map->map_scu[scup + offset];
- com_pic_t *q_pic0, *q_pic1;
-- const com_scu_t mask = {0, 0, 0, 0, 1, 0, 0};
-+ const com_scu_t mask = {0, 1, 0, 0, 1, 0, 0};
-
- if ((*(u8*)&MbQ) & (*(u8*)&mask)) {
- return 0;
-@@ -210,7 +205,7 @@ void com_deblock_set_edge(com_core_t *core)
- int scu_x = core->cu_pix_x >> MIN_CU_LOG2;
- int scu_y = core->cu_pix_y >> MIN_CU_LOG2;
- const int grad_mask = (LOOPFILTER_GRID >> 2) - 1;
-- const com_scu_t mask = { 0, 0, 0, 0, 1, 0, 0 };
-+ const com_scu_t mask = { 0, 1, 0, 0, 1, 0, 0 };
- com_scu_t scu = map->map_scu[scup];
-
- if ((*(u8*)&scu) & (*(u8*)&mask)) {
-diff --git a/source/decore/inter_pred.c b/source/decore/inter_pred.c
-index c53d399..470c84c 100644
---- a/source/decore/inter_pred.c
-+++ b/source/decore/inter_pred.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -486,10 +481,10 @@ void uavs3d_always_inline com_affine_mc_chroma(com_core_t *core, pel *dstc, int
- int max_posx = (seqhdr->pic_width + 4) >> 1;
- int max_posy = (seqhdr->pic_height + 4) >> 1;
- int i_asb_mv = cu_width >> 2;
-- s32(*asb_mv1)[MV_D] = asb_mv0 + i_asb_mv;
- int i_src = ref_pic->stride_chroma;
-
- if (sub_blk_size == 4) {
-+ s32(*asb_mv1)[MV_D] = asb_mv0 + i_asb_mv;
- for (h = 0; h < cu_height; h += 8) {
- int base_y = (y + h) << 4;
- for (w = 0; w < cu_width; w += 8, asb_mv0 += 2, asb_mv1 += 2) {
-diff --git a/source/decore/intra_pred.c b/source/decore/intra_pred.c
-index de1eef6..c767be0 100644
---- a/source/decore/intra_pred.c
-+++ b/source/decore/intra_pred.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -320,7 +315,7 @@ void ipred_plane(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- int ib_shift[5] = { 7, 10, 11, 15, 19 };
- int idx_w = g_tbl_log2[w] - 2;
- int idx_h = g_tbl_log2[h] - 2;
-- int im_h, is_h, im_v, is_v, temp, temp2;
-+ int im_h, is_h, im_v, is_v, temp;
- int max_pel = (1 << bit_depth) - 1;
- int val;
-
-@@ -343,7 +338,7 @@ void ipred_plane(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- temp = a - (h2 - 1) * c - (w2 - 1) * b + 16;
-
- for (y = 0; y < h; y++) {
-- temp2 = temp;
-+ int temp2 = temp;
- for (x = 0; x < w; x++) {
- val = temp2 >> 5;
- dst[x] = (pel)COM_CLIP3(0, max_pel, val);
-@@ -368,7 +363,7 @@ void ipred_plane_ipf(pel *src, s16 *dst, int w, int h)
- int ib_shift[5] = { 7, 10, 11, 15, 19 };
- int idx_w = g_tbl_log2[w] - 2;
- int idx_h = g_tbl_log2[h] - 2;
-- int im_h, is_h, im_v, is_v, temp, temp2;
-+ int im_h, is_h, im_v, is_v, temp;
- im_h = ib_mult[idx_w];
- is_h = ib_shift[idx_w];
- im_v = ib_mult[idx_h];
-@@ -388,7 +383,7 @@ void ipred_plane_ipf(pel *src, s16 *dst, int w, int h)
- temp = a - (h2 - 1) * c - (w2 - 1) * b + 16;
-
- for (y = 0; y < h; y++) {
-- temp2 = temp;
-+ int temp2 = temp;
- for (x = 0; x < w; x++) {
- dst[x] = (s16)(temp2 >> 5);
- temp2 += b;
-@@ -416,7 +411,7 @@ void ipred_plane_uv(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- int idx_w = g_tbl_log2[w] - 2;
- int idx_h = g_tbl_log2[h] - 2;
- int im_h, is_h, im_v, is_v;
-- int temp_u, temp_v, temp2_u, temp2_v;
-+ int temp_u, temp_v;
- int max_pel = (1 << bit_depth) - 1;
- int val_u, val_v;
-
-@@ -448,8 +443,8 @@ void ipred_plane_uv(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- temp_v = a_v - (h2 - 1) * c_v - (w2 - 1) * b_v + 16;
-
- for (y = 0; y < h; y++) {
-- temp2_u = temp_u;
-- temp2_v = temp_v;
-+ int temp2_u = temp_u;
-+ int temp2_v = temp_v;
- for (x = 0; x < width2; x += 2) {
- val_u = temp2_u >> 5;
- val_v = temp2_v >> 5;
-@@ -475,8 +470,7 @@ void ipred_bi(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- int ishift = COM_MIN(ishift_x, ishift_y);
- int ishift_xy = ishift_x + ishift_y + 1;
- int offset = 1 << (ishift_x + ishift_y);
-- int a, b, c, wt, wxy, tmp;
-- int predx;
-+ int a, b, c, wt, tmp;
- int ref_up[MAX_CU_SIZE], ref_le[MAX_CU_SIZE], up[MAX_CU_SIZE], le[MAX_CU_SIZE], wy[MAX_CU_SIZE];
- int wc, tbl_wc[6] = {-1, 21, 13, 7, 4, 2};
- int max_pel = (1 << bit_depth) - 1;
-@@ -510,8 +504,8 @@ void ipred_bi(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- tmp += wt;
- }
- for( y = 0; y < h; y++ ) {
-- predx = ref_le[y];
-- wxy = 0;
-+ int predx = ref_le[y];
-+ int wxy = 0;
- for( x = 0; x < w; x++ ) {
- predx += le[y];
- ref_up[x] += up[x];
-@@ -534,8 +528,7 @@ void ipred_bi_ipf(pel *src, s16 *dst, int w, int h)
- int ishift = COM_MIN(ishift_x, ishift_y);
- int ishift_xy = ishift_x + ishift_y + 1;
- int offset = 1 << (ishift_x + ishift_y);
-- int a, b, c, wt, wxy, tmp;
-- int predx;
-+ int a, b, c, wt, tmp;
- int ref_up[MAX_CU_SIZE], ref_le[MAX_CU_SIZE], up[MAX_CU_SIZE], le[MAX_CU_SIZE], wy[MAX_CU_SIZE];
- int wc, tbl_wc[6] = { -1, 21, 13, 7, 4, 2 };
- wc = ishift_x > ishift_y ? ishift_x - ishift_y : ishift_y - ishift_x;
-@@ -566,8 +559,8 @@ void ipred_bi_ipf(pel *src, s16 *dst, int w, int h)
- tmp += wt;
- }
- for (y = 0; y < h; y++) {
-- predx = ref_le[y];
-- wxy = 0;
-+ int predx = ref_le[y];
-+ int wxy = 0;
- for (x = 0; x < w; x++) {
- predx += le[y];
- ref_up[x] += up[x];
-@@ -589,9 +582,8 @@ void ipred_bi_uv(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- int ishift = COM_MIN(ishift_x, ishift_y);
- int ishift_xy = ishift_x + ishift_y + 1;
- int offset = 1 << (ishift_x + ishift_y);
-- int a_u, b_u, c_u, wt_u, wxy_u, tmp_u;
-- int a_v, b_v, c_v, wt_v, wxy_v, tmp_v;
-- int predx_u, predx_v;
-+ int a_u, b_u, c_u, wt_u, tmp_u;
-+ int a_v, b_v, c_v, wt_v, tmp_v;
- int ref_up[MAX_CU_SIZE], ref_le[MAX_CU_SIZE], up[MAX_CU_SIZE], le[MAX_CU_SIZE], wy[MAX_CU_SIZE];
- int wc, tbl_wc[6] = { -1, 21, 13, 7, 4, 2 };
- int w2 = w << 1;
-@@ -640,9 +632,10 @@ void ipred_bi_uv(pel *src, pel *dst, int i_dst, int w, int h, int bit_depth)
- }
- for (y = 0; y < h; y++) {
- int y2 = y << 1;
-- predx_u = ref_le[y2 ];
-- predx_v = ref_le[y2 + 1];
-- wxy_u = wxy_v = 0;
-+ int predx_u = ref_le[y2 ];
-+ int predx_v = ref_le[y2 + 1];
-+ int wxy_u = 0;
-+ int wxy_v = 0;
- for (x = 0; x < w2; x += 2) {
- predx_u += le[y2];
- predx_v += le[y2 + 1];
-@@ -1034,7 +1027,6 @@ static void uavs3d_always_inline ipf_core_s16(pel *src, pel *dst, int i_dst, s16
- s32 filter_idx_ver = (s32)g_tbl_log2[h] - 2; //Block Size
- s32 ver_filter_range = COM_MIN(h, 10);
- s32 hor_filter_range = COM_MIN(w, 10);
-- int max_val = (1 << bit_depth) - 1;
-
- // TODO: g_ipf_pred_param doesn't support 128
- if (filter_idx_hor > 4) {
-@@ -1300,7 +1292,6 @@ static void xPredIntraAngAdi_X_8(pel *pSrc, pel *dst, int i_dst, int uiDirMode,
- int line_size = iWidth + iHeight / 2 - 1;
- int real_size = min(line_size, iWidth * 2 + 1);
- int i;
-- int pad1, pad2;
- int aligned_line_size = ((line_size + 15) >> 4) << 4;
- pel *pfirst[2] = { first_line, first_line + aligned_line_size };
-
-@@ -1311,6 +1302,8 @@ static void xPredIntraAngAdi_X_8(pel *pSrc, pel *dst, int i_dst, int uiDirMode,
-
- // padding
- if (real_size < line_size) {
-+ int pad1, pad2;
-+
- pfirst[1][real_size - 1] = pfirst[1][real_size - 2];
-
- pad1 = pfirst[0][real_size - 1];
-@@ -1466,7 +1459,6 @@ static void xPredIntraAngAdi_Y_28(pel *pSrc, pel *dst, int i_dst, int uiDirMode,
- int real_size = min(line_size, iHeight * 4 + 1);
- int i;
- int iHeight2 = iHeight << 1;
-- int pad1, pad2;
-
- for (i = 0; i < real_size; i += 2, pSrc--) {
- first_line[i] = (pSrc[0] + (pSrc[-1] + pSrc[-2]) * 3 + pSrc[-3] + 4) >> 3;
-@@ -1475,6 +1467,7 @@ static void xPredIntraAngAdi_Y_28(pel *pSrc, pel *dst, int i_dst, int uiDirMode,
-
- // padding
- if (real_size < line_size) {
-+ int pad1, pad2;
- first_line[i - 1] = first_line[i - 3];
-
- pad1 = first_line[i - 2];
-diff --git a/source/decore/inv_trans.c b/source/decore/inv_trans.c
-index 2be533a..2d60b20 100644
---- a/source/decore/inv_trans.c
-+++ b/source/decore/inv_trans.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/modules.h b/source/decore/modules.h
-index 026d237..00d65b1 100644
---- a/source/decore/modules.h
-+++ b/source/decore/modules.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/pic_manager.c b/source/decore/pic_manager.c
-index 1c9be09..1a09a38 100644
---- a/source/decore/pic_manager.c
-+++ b/source/decore/pic_manager.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/recon.c b/source/decore/recon.c
-index c6466ba..951957a 100644
---- a/source/decore/recon.c
-+++ b/source/decore/recon.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sao.c b/source/decore/sao.c
-index b39466d..9004046 100644
---- a/source/decore/sao.c
-+++ b/source/decore/sao.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/alf_sse.c b/source/decore/sse/alf_sse.c
-index 2880605..24e203e 100644
---- a/source/decore/sse/alf_sse.c
-+++ b/source/decore/sse/alf_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/deblock_sse.c b/source/decore/sse/deblock_sse.c
-index 271c2fc..ab88636 100644
---- a/source/decore/sse/deblock_sse.c
-+++ b/source/decore/sse/deblock_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/inter_pred_sse.c b/source/decore/sse/inter_pred_sse.c
-index 170d079..7faf0d7 100644
---- a/source/decore/sse/inter_pred_sse.c
-+++ b/source/decore/sse/inter_pred_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -55,25 +50,59 @@ void uavs3d_if_cpy_sse(const pel *src, int i_src, pel *dst, int i_dst, int width
-
- void uavs3d_if_cpy_w4_sse(const pel *src, int i_src, pel *dst, int i_dst, int width, int height)
- {
-- while (height) {
-+ if (height < 4) {
- CP32(dst, src);
- CP32(dst + i_dst, src + i_src);
-- height -= 2;
-- src += i_src << 1;
-- dst += i_dst << 1;
-+ }
-+ else {
-+ int i_src2 = i_src << 1;
-+ int i_dst2 = i_dst << 1;
-+ int i_src3 = i_src + i_src2;
-+ int i_dst3 = i_dst + i_dst2;
-+ int i_src4 = i_src << 2;
-+ int i_dst4 = i_dst << 2;
-+ while (height > 0) {
-+ CP32(dst, src);
-+ CP32(dst + i_dst, src + i_src);
-+ CP32(dst + i_dst2, src + i_src2);
-+ CP32(dst + i_dst3, src + i_src3);
-+ height -= 4;
-+ src += i_src4;
-+ dst += i_dst4;
-+ }
- }
- }
-
- void uavs3d_if_cpy_w8_sse(const pel *src, int i_src, pel *dst, int i_dst, int width, int height)
- {
-- int i_src2 = i_src << 1;
-- int i_dst2 = i_dst << 1;
-- while (height) {
-- CP64(dst, src);
-- CP64(dst + i_dst, src + i_src);
-- src += i_src2;
-- dst += i_dst2;
-- height -= 2;
-+ if (height < 4) {
-+ __m128i m0, m1;
-+ m0 = _mm_loadl_epi64((const __m128i*)src);
-+ m1 = _mm_loadl_epi64((const __m128i*)(src + i_src));
-+ _mm_storel_epi64((__m128i*)dst, m0);
-+ _mm_storel_epi64((__m128i*)(dst + i_dst), m1);
-+ } else {
-+ __m128i m0, m1, m2, m3;
-+ int i_src2 = i_src << 1;
-+ int i_dst2 = i_dst << 1;
-+ int i_src3 = i_src + i_src2;
-+ int i_dst3 = i_dst + i_dst2;
-+ int i_src4 = i_src << 2;
-+ int i_dst4 = i_dst << 2;
-+ while (height) {
-+ m0 = _mm_loadl_epi64((const __m128i*)src);
-+ m1 = _mm_loadl_epi64((const __m128i*)(src + i_src));
-+ m2 = _mm_loadl_epi64((const __m128i*)(src + i_src2));
-+ m3 = _mm_loadl_epi64((const __m128i*)(src + i_src3));
-+ height -= 4;
-+ src += i_src4;
-+
-+ _mm_storel_epi64((__m128i*)dst, m0);
-+ _mm_storel_epi64((__m128i*)(dst + i_dst), m1);
-+ _mm_storel_epi64((__m128i*)(dst + i_dst2), m2);
-+ _mm_storel_epi64((__m128i*)(dst + i_dst3), m3);
-+ dst += i_dst4;
-+ }
- }
- }
-
-@@ -371,7 +400,7 @@ void uavs3d_if_hor_luma_w8_sse(const pel *src, int i_src, pel *dst, int i_dst, i
- height -= 2;
-
- _mm_storel_epi64((__m128i*)dst, T0);
-- M64(dst + i_dst) = _mm_extract_epi64(T0, 1);
-+ _mm_storeh_pi((__m64*)(dst + i_dst), _mm_castsi128_ps(T0));
-
- src += i_src << 1;
- dst += i_dst << 1;
-@@ -512,7 +541,6 @@ void uavs3d_if_ver_chroma_w16x_sse(const pel *src, int i_src, pel *dst, int i_ds
- const int offset = 32;
- const int shift = 6;
- __m128i mAddOffset = _mm_set1_epi16(offset);
-- pel const *p;
- __m128i coeff0 = _mm_set1_epi16(*(s16*)coeff);
- __m128i coeff1 = _mm_set1_epi16(*(s16*)(coeff + 2));
- __m128i mVal1, mVal2;
-@@ -520,7 +548,7 @@ void uavs3d_if_ver_chroma_w16x_sse(const pel *src, int i_src, pel *dst, int i_ds
- src -= i_src;
-
- while (height--) {
-- p = src;
-+ pel const *p = src;
- uavs3d_prefetch(src + 4 * i_src, _MM_HINT_NTA);
- for (col = 0; col < width; col += 16) {
- __m128i T01 = _mm_loadu_si128((__m128i*)(p));
-@@ -739,7 +767,6 @@ void uavs3d_if_ver_luma_w16x_sse(const pel *src, int i_src, pel *dst, int i_dst,
- int col;
- const int offset = 32;
- const int shift = 6;
-- pel const *p;
- __m128i mAddOffset = _mm_set1_epi16(offset);
- __m128i coeff0 = _mm_set1_epi16(*(s16*)coeff);
- __m128i coeff1 = _mm_set1_epi16(*(s16*)(coeff + 2));
-@@ -750,7 +777,7 @@ void uavs3d_if_ver_luma_w16x_sse(const pel *src, int i_src, pel *dst, int i_dst,
- src -= 3 * i_src;
-
- while (height--) {
-- p = src;
-+ pel const *p = src;
- uavs3d_prefetch(src + 8 * i_src, _MM_HINT_NTA);
- for (col = 0; col < width; col += 16) {
- __m128i T01 = _mm_loadu_si128((__m128i*)(p));
-@@ -811,7 +838,6 @@ void uavs3d_if_hor_ver_chroma_w8x_sse(const pel *src, int i_src, pel *dst, int i
- {
- int row, col;
- int shift;
-- s16 const *p;
- ALIGNED_16(s16 tmp_res[(64 + 3) * 64*2]);
- s16 *tmp = tmp_res;
- const int i_tmp = width;
-@@ -856,7 +882,7 @@ void uavs3d_if_hor_ver_chroma_w8x_sse(const pel *src, int i_src, pel *dst, int i
- coeff1_ver = _mm_cvtepi8_epi16(coeff1_ver);
-
- while (height--) {
-- p = tmp;
-+ s16 const *p = tmp;
- for (col = 0; col < width; col += 8) {
- __m128i T00 = _mm_load_si128((__m128i*)(p));
- __m128i T10 = _mm_load_si128((__m128i*)(p + i_tmp));
-@@ -1411,7 +1437,6 @@ void uavs3d_if_hor_ver_luma_w8x_sse(const pel *src, int i_src, pel *dst, int i_d
- {
- int row, col;
- int shift;
-- s16 const *p;
-
- ALIGNED_16(s16 tmp_res[(128 + 7) * 128]);
- s16 *tmp = tmp_res;
-@@ -1473,7 +1498,7 @@ void uavs3d_if_hor_ver_luma_w8x_sse(const pel *src, int i_src, pel *dst, int i_d
- mCoefy4_ver = _mm_cvtepi8_epi16(mCoefy4_ver);
-
- while (height--) {
-- p = tmp;
-+ s16 const *p = tmp;
- for (col = 0; col < width; col += 8) {
- __m128i T00 = _mm_load_si128((__m128i*)(p));
- __m128i T10 = _mm_load_si128((__m128i*)(p + i_tmp));
-@@ -2315,14 +2340,13 @@ void uavs3d_if_hor_ver_luma_w8_sse(const pel *src, int i_src, pel *dst, int i_ds
- int rows;
- int add1, shift1;
- int add2, shift2;
-- __m128i T0, T1, T2, T3, T4, T5, T6, T7;
-+ __m128i T0, T1, T2, T3, T4, T5;
- __m128i M0, M1, M2, M3, M4, M5, M6, M7;
-- __m128i N0, N1, N2, N3, N4, N5, N6, N7;
-- __m128i mCoef, offset, max_pel;
-+ __m128i offset, max_pel;
- ALIGNED_16(s16 tmp_res[(64 + 7) * 8]);
- s16 *tmp = tmp_res;
- const int i_tmp = 8;
-- __m128i coeff00, coeff01, coeff02, coeff03;
-+ __m128i mCoef0, mCoef1, mCoef2, mCoef3;
-
- if (max_val == 255) { // 8 bit_depth
- shift1 = 0;
-@@ -2338,110 +2362,129 @@ void uavs3d_if_hor_ver_luma_w8_sse(const pel *src, int i_src, pel *dst, int i_ds
-
- src += -3 * i_src - 3;
-
-- mCoef = _mm_loadl_epi64((__m128i*)coef_x);
-- offset = _mm_set1_epi32(add1);
-- mCoef = _mm_cvtepi8_epi16(mCoef);
--
-- // HOR
-- rows = height + 7;
-- while (rows--) {
-- uavs3d_prefetch(src + i_src, _MM_HINT_NTA);
-- T0 = _mm_loadu_si128((__m128i*)(src + 0));
-- T1 = _mm_loadu_si128((__m128i*)(src + 1));
-- T2 = _mm_loadu_si128((__m128i*)(src + 2));
-- T3 = _mm_loadu_si128((__m128i*)(src + 3));
-- T4 = _mm_loadu_si128((__m128i*)(src + 4));
-- T5 = _mm_loadu_si128((__m128i*)(src + 5));
-- T6 = _mm_loadu_si128((__m128i*)(src + 6));
-- T7 = _mm_loadu_si128((__m128i*)(src + 7));
--
-- M0 = _mm_madd_epi16(T0, mCoef);
-- M1 = _mm_madd_epi16(T1, mCoef);
-- M2 = _mm_madd_epi16(T2, mCoef);
-- M3 = _mm_madd_epi16(T3, mCoef);
-- M4 = _mm_madd_epi16(T4, mCoef);
-- M5 = _mm_madd_epi16(T5, mCoef);
-- M6 = _mm_madd_epi16(T6, mCoef);
-- M7 = _mm_madd_epi16(T7, mCoef);
-+ {
-+ __m128i mShuffle0 = _mm_setr_epi8(0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7, 6, 7, 8, 9);
-+ __m128i mShuffle1 = _mm_setr_epi8(4, 5, 6, 7, 6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13);
-+ __m128i S0, S1, S2;
-+
-+ mCoef0 = _mm_set1_epi16(((s16*)coef_x)[0]);
-+ mCoef1 = _mm_set1_epi16(((s16*)coef_x)[1]);
-+ mCoef2 = _mm_set1_epi16(((s16*)coef_x)[2]);
-+ mCoef3 = _mm_set1_epi16(((s16*)coef_x)[3]);
-+ mCoef0 = _mm_cvtepi8_epi16(mCoef0);
-+ mCoef1 = _mm_cvtepi8_epi16(mCoef1);
-+ mCoef2 = _mm_cvtepi8_epi16(mCoef2);
-+ mCoef3 = _mm_cvtepi8_epi16(mCoef3);
-+ offset = _mm_set1_epi32(add1);
-+
-+ // HOR
-+ rows = height + 7;
-+ while (rows--) {
-+ S0 = _mm_loadu_si128((__m128i*)(src));
-+ S1 = _mm_loadu_si128((__m128i*)(src + 4));
-+ S2 = _mm_loadu_si128((__m128i*)(src + 8));
-+ src += i_src;
-+ uavs3d_prefetch(src, _MM_HINT_NTA);
-+
-+ T0 = _mm_shuffle_epi8(S0, mShuffle0);
-+ T1 = _mm_shuffle_epi8(S0, mShuffle1);
-+ T2 = _mm_shuffle_epi8(S1, mShuffle0);
-+ T3 = _mm_shuffle_epi8(S1, mShuffle1);
-+ T4 = _mm_shuffle_epi8(S2, mShuffle0);
-+ T5 = _mm_shuffle_epi8(S2, mShuffle1);
-+
-+ M0 = _mm_madd_epi16(T0, mCoef0);
-+ M1 = _mm_madd_epi16(T1, mCoef1);
-+ M2 = _mm_madd_epi16(T2, mCoef2);
-+ M3 = _mm_madd_epi16(T3, mCoef3);
-+ M4 = _mm_madd_epi16(T2, mCoef0);
-+ M5 = _mm_madd_epi16(T3, mCoef1);
-+ M6 = _mm_madd_epi16(T4, mCoef2);
-+ M7 = _mm_madd_epi16(T5, mCoef3);
-
-- M0 = _mm_hadd_epi32(M0, M1);
-- M1 = _mm_hadd_epi32(M2, M3);
-- M2 = _mm_hadd_epi32(M4, M5);
-- M3 = _mm_hadd_epi32(M6, M7);
-+ M0 = _mm_add_epi32(M0, M1);
-+ M1 = _mm_add_epi32(M2, M3);
-+ M2 = _mm_add_epi32(M4, M5);
-+ M3 = _mm_add_epi32(M6, M7);
-
-- M0 = _mm_hadd_epi32(M0, M1);
-- M1 = _mm_hadd_epi32(M2, M3);
-+ M0 = _mm_add_epi32(M0, M1);
-+ M1 = _mm_add_epi32(M2, M3);
-
-- M2 = _mm_add_epi32(M0, offset);
-- M3 = _mm_add_epi32(M1, offset);
-- M2 = _mm_srai_epi32(M2, shift1);
-- M3 = _mm_srai_epi32(M3, shift1);
-- M2 = _mm_packs_epi32(M2, M3);
-- _mm_storeu_si128((__m128i*)tmp, M2);
-+ M2 = _mm_add_epi32(M0, offset);
-+ M3 = _mm_add_epi32(M1, offset);
-+ M2 = _mm_srai_epi32(M2, shift1);
-+ M3 = _mm_srai_epi32(M3, shift1);
-+ M2 = _mm_packs_epi32(M2, M3);
-+ _mm_store_si128((__m128i*)tmp, M2);
-
-- tmp += i_tmp;
-- src += i_src;
-+ tmp += i_tmp;
-+ }
- }
-
-- offset = _mm_set1_epi32(add2);
-- max_pel = _mm_set1_epi16((pel)max_val);
-- tmp = tmp_res;
--
-- coeff00 = _mm_set1_epi16(*(s16*)coef_y);
-- coeff01 = _mm_set1_epi16(*(s16*)(coef_y + 2));
-- coeff02 = _mm_set1_epi16(*(s16*)(coef_y + 4));
-- coeff03 = _mm_set1_epi16(*(s16*)(coef_y + 6));
-- coeff00 = _mm_cvtepi8_epi16(coeff00);
-- coeff01 = _mm_cvtepi8_epi16(coeff01);
-- coeff02 = _mm_cvtepi8_epi16(coeff02);
-- coeff03 = _mm_cvtepi8_epi16(coeff03);
--
-- while (height--) {
-- T0 = _mm_load_si128((__m128i*)(tmp));
-- T1 = _mm_load_si128((__m128i*)(tmp + i_tmp));
-- T2 = _mm_load_si128((__m128i*)(tmp + 2 * i_tmp));
-- T3 = _mm_load_si128((__m128i*)(tmp + 3 * i_tmp));
-- T4 = _mm_load_si128((__m128i*)(tmp + 4 * i_tmp));
-- T5 = _mm_load_si128((__m128i*)(tmp + 5 * i_tmp));
-- T6 = _mm_load_si128((__m128i*)(tmp + 6 * i_tmp));
-- T7 = _mm_load_si128((__m128i*)(tmp + 7 * i_tmp));
-+ {
-+ __m128i N0, N1, N2, N3, N4, N5, N6, N7;
-+ __m128i T6, T7;
-+
-+ offset = _mm_set1_epi32(add2);
-+ max_pel = _mm_set1_epi16((pel)max_val);
-+ tmp = tmp_res;
-+
-+ mCoef0 = _mm_set1_epi16(((s16*)coef_y)[0]);
-+ mCoef1 = _mm_set1_epi16(((s16*)coef_y)[1]);
-+ mCoef2 = _mm_set1_epi16(((s16*)coef_y)[2]);
-+ mCoef3 = _mm_set1_epi16(((s16*)coef_y)[3]);
-+ mCoef0 = _mm_cvtepi8_epi16(mCoef0);
-+ mCoef1 = _mm_cvtepi8_epi16(mCoef1);
-+ mCoef2 = _mm_cvtepi8_epi16(mCoef2);
-+ mCoef3 = _mm_cvtepi8_epi16(mCoef3);
-+
-+ while (height--) {
-+ T0 = _mm_load_si128((__m128i*)(tmp));
-+ T1 = _mm_load_si128((__m128i*)(tmp + i_tmp));
-+ T2 = _mm_load_si128((__m128i*)(tmp + 2 * i_tmp));
-+ T3 = _mm_load_si128((__m128i*)(tmp + 3 * i_tmp));
-+ T4 = _mm_load_si128((__m128i*)(tmp + 4 * i_tmp));
-+ T5 = _mm_load_si128((__m128i*)(tmp + 5 * i_tmp));
-+ T6 = _mm_load_si128((__m128i*)(tmp + 6 * i_tmp));
-+ T7 = _mm_load_si128((__m128i*)(tmp + 7 * i_tmp));
-
-- M0 = _mm_unpacklo_epi16(T0, T1);
-- M1 = _mm_unpacklo_epi16(T2, T3);
-- M2 = _mm_unpacklo_epi16(T4, T5);
-- M3 = _mm_unpacklo_epi16(T6, T7);
-- M4 = _mm_unpackhi_epi16(T0, T1);
-- M5 = _mm_unpackhi_epi16(T2, T3);
-- M6 = _mm_unpackhi_epi16(T4, T5);
-- M7 = _mm_unpackhi_epi16(T6, T7);
-+ M0 = _mm_unpacklo_epi16(T0, T1);
-+ M1 = _mm_unpacklo_epi16(T2, T3);
-+ M2 = _mm_unpacklo_epi16(T4, T5);
-+ M3 = _mm_unpacklo_epi16(T6, T7);
-+ M4 = _mm_unpackhi_epi16(T0, T1);
-+ M5 = _mm_unpackhi_epi16(T2, T3);
-+ M6 = _mm_unpackhi_epi16(T4, T5);
-+ M7 = _mm_unpackhi_epi16(T6, T7);
-
-- N0 = _mm_madd_epi16(M0, coeff00);
-- N1 = _mm_madd_epi16(M1, coeff01);
-- N2 = _mm_madd_epi16(M2, coeff02);
-- N3 = _mm_madd_epi16(M3, coeff03);
-- N4 = _mm_madd_epi16(M4, coeff00);
-- N5 = _mm_madd_epi16(M5, coeff01);
-- N6 = _mm_madd_epi16(M6, coeff02);
-- N7 = _mm_madd_epi16(M7, coeff03);
-+ N0 = _mm_madd_epi16(M0, mCoef0);
-+ N1 = _mm_madd_epi16(M1, mCoef1);
-+ N2 = _mm_madd_epi16(M2, mCoef2);
-+ N3 = _mm_madd_epi16(M3, mCoef3);
-+ N4 = _mm_madd_epi16(M4, mCoef0);
-+ N5 = _mm_madd_epi16(M5, mCoef1);
-+ N6 = _mm_madd_epi16(M6, mCoef2);
-+ N7 = _mm_madd_epi16(M7, mCoef3);
-
-- N0 = _mm_add_epi32(N0, N1);
-- N1 = _mm_add_epi32(N2, N3);
-- N2 = _mm_add_epi32(N4, N5);
-- N3 = _mm_add_epi32(N6, N7);
-+ N0 = _mm_add_epi32(N0, N1);
-+ N1 = _mm_add_epi32(N2, N3);
-+ N2 = _mm_add_epi32(N4, N5);
-+ N3 = _mm_add_epi32(N6, N7);
-
-- N0 = _mm_add_epi32(N0, N1);
-- N1 = _mm_add_epi32(N2, N3);
-+ N0 = _mm_add_epi32(N0, N1);
-+ N1 = _mm_add_epi32(N2, N3);
-
-- N0 = _mm_add_epi32(N0, offset);
-- N1 = _mm_add_epi32(N1, offset);
-- N0 = _mm_srai_epi32(N0, shift2);
-- N1 = _mm_srai_epi32(N1, shift2);
-- N0 = _mm_packus_epi32(N0, N1);
-- N0 = _mm_min_epu16(N0, max_pel);
-- _mm_storeu_si128((__m128i*)(dst), N0);
-+ N0 = _mm_add_epi32(N0, offset);
-+ N1 = _mm_add_epi32(N1, offset);
-+ N0 = _mm_srai_epi32(N0, shift2);
-+ N1 = _mm_srai_epi32(N1, shift2);
-+ N0 = _mm_packus_epi32(N0, N1);
-+ N0 = _mm_min_epu16(N0, max_pel);
-+ _mm_storeu_si128((__m128i*)(dst), N0);
-
-- dst += i_dst;
-- tmp += i_tmp;
-+ dst += i_dst;
-+ tmp += i_tmp;
-+ }
- }
- }
-
-diff --git a/source/decore/sse/intra_pred_sse.c b/source/decore/sse/intra_pred_sse.c
-index b877834..d77b556 100644
---- a/source/decore/sse/intra_pred_sse.c
-+++ b/source/decore/sse/intra_pred_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -713,13 +708,14 @@ void uavs3d_ipred_chroma_hor_sse(pel *src, pel *dst, int i_dst, int width, int h
-
- void uavs3d_ipred_dc_sse(pel *src, pel *dst, int i_dst, int width, int height, u16 avail_cu, int bit_depth)
- {
-- int i, x, y;
-+ int x, y;
- int dc;
- pel *p_src = src - 1;
- int left_avail = IS_AVAIL(avail_cu, AVAIL_LE);
- int above_avail = IS_AVAIL(avail_cu, AVAIL_UP);
-
- if (left_avail && above_avail) {
-+ int i;
- int length = width + height + 1;
- __m128i sum = _mm_setzero_si128();
- __m128i val;
-@@ -828,7 +824,7 @@ void uavs3d_ipred_dc_sse(pel *src, pel *dst, int i_dst, int width, int height, u
- void uavs3d_ipred_chroma_dc_sse(pel *src, pel *dst, int i_dst, int width, int height, u16 avail_cu, int bit_depth)
- {
- __m128i T;
-- int i, x, y;
-+ int x, y;
- int dcU, dcV;
- pel *p_src = src - 2;
- int left_avail = IS_AVAIL(avail_cu, AVAIL_LE);
-@@ -838,6 +834,7 @@ void uavs3d_ipred_chroma_dc_sse(pel *src, pel *dst, int i_dst, int width, int he
- int height2 = height << 1;
- int wh = width + height;
- int length = (wh << 1) + 2; // 2*(width + height + 1)
-+ int i;
- __m128i sum = _mm_setzero_si128();
- __m128i val;
-
-@@ -1787,7 +1784,6 @@ void uavs3d_ipred_ipf_s16_sse(pel *src, pel *dst, int i_dst, s16* pred, int flt_
- {
- pel *p_top = src + 1;
- int row;
-- int max_val = (1 << bit_depth) - 1;
- __m128i c_32 = _mm_set1_epi16(32);
- __m128i zero = _mm_setzero_si128();
- if (w == 4) {
-diff --git a/source/decore/sse/itrans_sse.c b/source/decore/sse/itrans_sse.c
-index f7a5051..217e88e 100644
---- a/source/decore/sse/itrans_sse.c
-+++ b/source/decore/sse/itrans_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/pixel_sse.c b/source/decore/sse/pixel_sse.c
-index 46ce33f..804b71d 100644
---- a/source/decore/sse/pixel_sse.c
-+++ b/source/decore/sse/pixel_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/sao_sse.c b/source/decore/sse/sao_sse.c
-index 3459b3e..5f4723b 100644
---- a/source/decore/sse/sao_sse.c
-+++ b/source/decore/sse/sao_sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/sse.c b/source/decore/sse/sse.c
-index cb8c119..570edf5 100644
---- a/source/decore/sse/sse.c
-+++ b/source/decore/sse/sse.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/source/decore/sse/sse.h b/source/decore/sse/sse.h
-index 967808a..4e10ab7 100644
---- a/source/decore/sse/sse.h
-+++ b/source/decore/sse/sse.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -45,12 +40,18 @@
-
- #include "modules.h"
-
--#ifdef _WIN32
--
--#ifndef _WIN64
--#define _mm_extract_epi64(a, i) (a.m128i_i64[i])
--#endif
--
-+#if __x86_64__
-+#elif __i386__ && !defined(_mm_extract_epi64)
-+#define _mm_extract_epi64 _mm_extract_epi64
-+#include <stdint.h>
-+static inline int64_t _mm_extract_epi64(__m128i a, const int imm8) {
-+ return imm8 ? ((int64_t)_mm_extract_epi16(a, 7) << 48) |
-+ ((int64_t)_mm_extract_epi16(a, 6) << 32) |
-+ (_mm_extract_epi16(a, 5) << 16) | _mm_extract_epi16(a, 4)
-+ : ((int64_t)_mm_extract_epi16(a, 3) << 48) |
-+ ((int64_t)_mm_extract_epi16(a, 2) << 32) |
-+ (_mm_extract_epi16(a, 1) << 16) | _mm_extract_epi16(a, 0);
-+}
- #endif
-
- ALIGNED_32(extern pel uavs3d_simd_mask[15][16]);
-diff --git a/source/decore/threadpool.h b/source/decore/threadpool.h
-index 3370beb..6a74bac 100644
---- a/source/decore/threadpool.h
-+++ b/source/decore/threadpool.h
-@@ -11,9 +11,6 @@ typedef volatile long atom_t; // 32 bits, signed
- #if defined(_WIN32)
- #include "win32thread.h"
- #else
--
--#pragma comment(lib, "pthreadVC2.lib")
--
- #include <pthread.h>
- #define uavs3d_pthread_t pthread_t
- #define uavs3d_pthread_create pthread_create
-diff --git a/test/utest.c b/test/utest.c
-index 724c7d8..e4df366 100644
---- a/test/utest.c
-+++ b/test/utest.c
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-@@ -202,8 +197,8 @@ static int app_img_write(char * fname, uavs3d_io_frm_t * img, com_seqh_t *seqhdr
- return -1;
- }
- for (i = 0; i < 3; i++) {
-- int hor_size = seqhdr->horizontal_size >> (i ? 1 : 0);
-- int ver_size = seqhdr->vertical_size >> (i ? 1 : 0);
-+ int hor_size = seqhdr->display_horizontal_size >> (i ? 1 : 0);
-+ int ver_size = seqhdr->display_vertical_size >> (i ? 1 : 0);
- unsigned char * p8 = (unsigned char *)img->buffer[i];
-
- for (j = 0; j < ver_size; j++) {
-@@ -412,10 +407,13 @@ void output_callback(uavs3d_io_frm_t *frm) {
- }
-
- #if defined(__APPLE__) && (defined(__arm64__) || defined(__ARM_NEON__))
--int uavs3d_decode_sample(int argc, const char **argv)
--#else
--int main(int argc, const char **argv)
-+#include <TargetConditionals.h>
-+#if !TARGET_OS_OSX
-+#define main uavs3d_decode_sample
-+#endif
- #endif
-+
-+int main(int argc, const char **argv)
- {
- int decoding = 1;
- unsigned char * bs_buf = NULL;
-@@ -465,7 +463,7 @@ int main(int argc, const char **argv)
- dec_cfg.log_level = 1;
- dec_cfg.frm_threads = 1;
-
-- if (argc < 2) {
-+ if ((argc < 2) || !(argc % 2)) {
- log_level_0("Error config, please check arguments: \n");
- print_help();
- return -1;
-@@ -588,8 +586,8 @@ finished:
- if (frame_num) {
- width = dec_frame.width[0];
- height = dec_frame.height[0];
-- hor_size = dec_frame.seqhdr->horizontal_size;
-- ver_size = dec_frame.seqhdr->vertical_size;
-+ hor_size = dec_frame.seqhdr->display_horizontal_size;
-+ ver_size = dec_frame.seqhdr->display_vertical_size;
-
- log_level_1("=========================================================================================\n");
- log_level_1(" Resolution = %d x %d (Coding: %d x %d)\n", hor_size, ver_size, width, height);
-diff --git a/test/utest.h b/test/utest.h
-index aceb8a4..1dbd239 100644
---- a/test/utest.h
-+++ b/test/utest.h
-@@ -1,5 +1,5 @@
- /**************************************************************************************
-- * Copyright (c) 2018-2020 ["Peking University Shenzhen Graduate School",
-+ * Copyright (c) 2018-2022 ["Peking University Shenzhen Graduate School",
- * "Peng Cheng Laboratory", and "Guangdong Bohua UHD Innovation Corporation"]
- *
- * All rights reserved.
-@@ -11,12 +11,7 @@
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
-- * 3. All advertising materials mentioning features or use of this software
-- * must display the following acknowledgement:
-- * This product includes the software uAVS3d developed by
-- * Peking University Shenzhen Graduate School, Peng Cheng Laboratory
-- * and Guangdong Bohua UHD Innovation Corporation.
-- * 4. Neither the name of the organizations (Peking University Shenzhen Graduate School,
-+ * 3. Neither the name of the organizations (Peking University Shenzhen Graduate School,
- * Peng Cheng Laboratory and Guangdong Bohua UHD Innovation Corporation) nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
-diff --git a/version.sh b/version.sh
-index 65e2df7..034d454 100755
---- a/version.sh
-+++ b/version.sh
-@@ -15,12 +15,12 @@ else
- shell_dir=$1
- fi
-
--VER_R=`git rev-list origin/master | sort | wc -l | gawk '{print $1}'`
--VER_L=`git rev-list HEAD | sort | wc -l | gawk '{print $1}'`
-+VER_R=`git rev-list origin/master | sort | wc -l | awk '{print $1}'`
-+VER_L=`git rev-list HEAD | sort | wc -l | awk '{print $1}'`
- VER_SHA1=`git log -n 1 | head -n 1 | cut -d ' ' -f 2`
-
- major_version="1"
--minor_version="1"
-+minor_version="2"
- type_version="release"
-
- # generate the file version.h
diff --git a/multimedia/uavs3d/fix-libdir-in-cmakelists.patch b/multimedia/uavs3d/fix-libdir.patch
index 375a1e87e2..1a8dc3ed44 100644
--- a/multimedia/uavs3d/fix-libdir-in-cmakelists.patch
+++ b/multimedia/uavs3d/fix-libdir.patch
@@ -1,11 +1,11 @@
---- /home/ben/sbo/ff/uavs3d/source/CMakeLists.txt 2024-02-21 15:38:58.265755999 +0530
-+++ /home/ben/sbo/ff/uavs3d/source/CMakeListsn.txt 2024-02-21 16:03:45.133751729 +0530
+--- CMakeLists.txt 2023-02-23 08:04:14.000000000 +0530
++++ CMakeListsn.txt 2024-04-29 23:03:55.252641340 +0530
@@ -13,6 +13,8 @@
" Unexpected pointer size ${CMAKE_SIZEOF_VOID_P} for ${CMAKE_SYSTEM_PROCESSOR}\n")
endif()
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386" OR
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i586" OR
-+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686" OR
++ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686" OR
"${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
set(UAVS3D_TARGET_CPU "x86")
elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR
diff --git a/multimedia/uavs3d/uavs3d.SlackBuild b/multimedia/uavs3d/uavs3d.SlackBuild
index 141e072f29..f49506bf41 100644
--- a/multimedia/uavs3d/uavs3d.SlackBuild
+++ b/multimedia/uavs3d/uavs3d.SlackBuild
@@ -25,17 +25,19 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=uavs3d
-VERSION=${VERSION:-1.1}
+VERSION=${VERSION:-1fd0491_20230223}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
sys_arch=${sys_arch:-$(uname -m)}
+COMMIT=${COMMIT:-1fd04917cff50fac72ae23e45f82ca6fd9130bd8}
+COMMITDATE=${COMMITDATE:-20230223}
case "$sys_arch" in
i586) export ARCH=i586 ;;
i686) export ARCH=i686 ;;
x86_64) export ARCH=x86_64 ;;
- *) echo "This program will not build on $sys_arch platform" && exit 1 ;;
+ *) echo "This SlackBuild will not build on $sys_arch platform" && exit 1 ;;
esac
TMP=${TMP:-/tmp/SBo}
@@ -52,7 +54,7 @@ elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fPIC"
LIBDIRSUFFIX="64"
else
- echo "This program will not build on $sys_arch platform" && exit 1
+ echo "This SlackBuild will not build on $sys_arch platform" && exit 1
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
@@ -66,9 +68,9 @@ trap 'echo "$0 FAILED at line $LINENO!" | tee -a $OUTPUT/error-${PRGNAM}.log' ER
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM-$COMMIT
+tar xvf $CWD/$PRGNAM-$COMMIT.tar.gz
+cd $PRGNAM-$COMMIT
chown -R root:root .
find -L . \
@@ -77,14 +79,13 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-patch -p1 --verbose --unified < $CWD/fix-build-issue.patch
cd source
-patch --verbose --unified < $CWD/fix-libdir-in-cmakelists.patch
+patch --verbose --unified < $CWD/fix-libdir.patch
cd ..
mkdir -pv build/linux
-cmake -B build/linux -S $TMP/$PRGNAM-$VERSION \
+cmake -B build/linux -S $TMP/$PRGNAM-$COMMIT \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE:STRING=Release \
@@ -95,9 +96,9 @@ cmake -B build/linux -S $TMP/$PRGNAM-$VERSION \
cmake --build build/linux
-make -C $TMP/$PRGNAM-$VERSION/build/linux DESTDIR="$PKG" install
+make -C $TMP/$PRGNAM-$COMMIT/build/linux DESTDIR="$PKG" install
-install -D -m755 $TMP/$PRGNAM-$VERSION/build/linux/uavs3dec -t "$PKG/usr/bin"
+install -D -m755 $TMP/$PRGNAM-$COMMIT/build/linux/uavs3dec -t "$PKG/usr/bin"
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded --remove-section=.comment --remove-section=.note 2> /dev/null || true
diff --git a/multimedia/uavs3d/uavs3d.info b/multimedia/uavs3d/uavs3d.info
index ee0adc5d16..940e617735 100644
--- a/multimedia/uavs3d/uavs3d.info
+++ b/multimedia/uavs3d/uavs3d.info
@@ -1,8 +1,8 @@
PRGNAM="uavs3d"
-VERSION="1.1"
+VERSION="1fd0491_20230223"
HOMEPAGE="https://github.com/uavs3/uavs3d"
-DOWNLOAD="https://github.com/uavs3/uavs3d/archive/v1.1/uavs3d-1.1.tar.gz"
-MD5SUM="a22d9d4f1da4d1e2d0b19a25754505c3"
+DOWNLOAD="https://github.com/uavs3/uavs3d/archive/1fd0491/uavs3d-1fd04917cff50fac72ae23e45f82ca6fd9130bd8.tar.gz"
+MD5SUM="347425aec780f5dfee3baa768bca02aa"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/vgmplay/slack-desc b/multimedia/vgmplay/slack-desc
index ca06884d2e..a98490474a 100644
--- a/multimedia/vgmplay/slack-desc
+++ b/multimedia/vgmplay/slack-desc
@@ -10,7 +10,7 @@ vgmplay: vgmplay (the official player for VGM files)
vgmplay:
vgmplay: vgmplay is a player of the VGM chiptune format.
vgmplay:
-vgmplay: Homepage: https://github.com/vgmrips/vgmplay
+vgmplay: Homepage: https://github.com/vgmrips/vgmplay-legacy
vgmplay:
vgmplay:
vgmplay:
diff --git a/multimedia/vgmplay/vgmplay.SlackBuild b/multimedia/vgmplay/vgmplay.SlackBuild
index 00df60594f..bb711c82a5 100644
--- a/multimedia/vgmplay/vgmplay.SlackBuild
+++ b/multimedia/vgmplay/vgmplay.SlackBuild
@@ -38,9 +38,6 @@ case "$( uname -m )" in
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -69,9 +66,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION/VGMPlay
+rm -rf $PRGNAM-legacy-$VERSION
+tar xvf $CWD/$PRGNAM-legacy-$VERSION.tar.gz
+cd $PRGNAM-legacy-$VERSION/VGMPlay
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/multimedia/vgmplay/vgmplay.info b/multimedia/vgmplay/vgmplay.info
index 2d26e2fb13..cac830b2da 100644
--- a/multimedia/vgmplay/vgmplay.info
+++ b/multimedia/vgmplay/vgmplay.info
@@ -1,8 +1,8 @@
PRGNAM="vgmplay"
VERSION="0.40.9"
-HOMEPAGE="https://github.com/vgmrips/vgmplay"
-DOWNLOAD="https://github.com/vgmrips/vgmplay/archive/0.40.9/vgmplay-0.40.9.tar.gz"
-MD5SUM="a2217e465c5e3bdebc47dbb15a6cb436"
+HOMEPAGE="https://github.com/vgmrips/vgmplay-legacy"
+DOWNLOAD="https://github.com/vgmrips/vgmplay-legacy/archive/0.40.9/vgmplay-legacy-0.40.9.tar.gz"
+MD5SUM="89097227705321156c0b319f5e0d529d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/vvenc/README b/multimedia/vvenc/README
index e730b8c6df..4cc2bb4e6d 100644
--- a/multimedia/vvenc/README
+++ b/multimedia/vvenc/README
@@ -5,15 +5,6 @@ by running the following:
vvencapp --help
vvencFFapp --help
-Two issues with the 32bit build currently exist:
-
- 1. VVenC does not currently build on 32bit Linux
- although a fix for this is in progress upstream;
- see Issue 242 on the VVenC github site.
- 2. When failure to build is addressed it is unlikely
- that the memory limits of 32bit processors will allow
- effective encoding.
-
-Note that playback of H.266/VVC files is also currently a
-little challenging under Linux, although 3rd party patches
-for FFmpeg exist.
+Note that playback of H.266/VVC files is currently a little
+challenging under Linux, although 3rd party patches for FFmpeg
+exist.
diff --git a/multimedia/vvenc/vvenc.SlackBuild b/multimedia/vvenc/vvenc.SlackBuild
index c2fbedcf44..c1f179f699 100644
--- a/multimedia/vvenc/vvenc.SlackBuild
+++ b/multimedia/vvenc/vvenc.SlackBuild
@@ -2,7 +2,7 @@
# ----------------------------------------------------------------------
# Slackware build script for vvenc
#
-# Copyright (c) 2023 Andrew Strong, Blue Mountains, Australia.
+# Copyright (c) 2023-2024 Andrew Strong, Blue Mountains, Australia.
#
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vvenc
-VERSION=${VERSION:-1.7.0}
+VERSION=${VERSION:-1.11.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -86,6 +86,7 @@ cd build
-DCMAKE_INSTALL_LIBDIR:PATH=lib${LIBDIRSUFFIX} \
-DCMAKE_INSTALL_INCLUDEDIR:PATH=include \
-DBUILD_SHARED_LIBS=1 \
+ -DVVENC_INSTALL_FULLFEATURE_APP=on \
-DCMAKE_BUILD_TYPE=Release ..
make
make install DESTDIR=$PKG
diff --git a/multimedia/vvenc/vvenc.info b/multimedia/vvenc/vvenc.info
index af0bda914c..6751c31e78 100644
--- a/multimedia/vvenc/vvenc.info
+++ b/multimedia/vvenc/vvenc.info
@@ -1,10 +1,10 @@
PRGNAM="vvenc"
-VERSION="1.7.0"
+VERSION="1.11.1"
HOMEPAGE="https://github.com/fraunhoferhhi/vvenc"
-DOWNLOAD="UNSUPPORTED"
-MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/fraunhoferhhi/vvenc/archive/v1.7.0/vvenc-1.7.0.tar.gz"
-MD5SUM_x86_64="bd14534787f4180cd5bebb248b27285f"
+DOWNLOAD="https://github.com/fraunhoferhhi/vvenc/archive/v1.11.1/vvenc-1.11.1.tar.gz"
+MD5SUM="c3267221f7d0f74fe58d751188c2efbb"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Andrew Strong"
EMAIL="andrew.david.strong@gmail.com"
diff --git a/multimedia/w_scan_cpp/w_scan_cpp.SlackBuild b/multimedia/w_scan_cpp/w_scan_cpp.SlackBuild
index d12732059e..8851345c45 100644
--- a/multimedia/w_scan_cpp/w_scan_cpp.SlackBuild
+++ b/multimedia/w_scan_cpp/w_scan_cpp.SlackBuild
@@ -26,10 +26,10 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=w_scan_cpp
VERSION=${VERSION:-20231015}
-VERSION_vdr=${VERSION_vdr:-2.6.5}
+VERSION_vdr=${VERSION_vdr:-2.6.7}
VERSION_satip=${VERSION_satip:-2.4.1}
VERSION_wirbelscan=${VERSION_wirbelscan:-2023.10.15}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
NUMJOBS=${NUMJOBS:-" -j$(nproc) "}
diff --git a/multimedia/w_scan_cpp/w_scan_cpp.info b/multimedia/w_scan_cpp/w_scan_cpp.info
index fc22ea9bb1..2749833793 100644
--- a/multimedia/w_scan_cpp/w_scan_cpp.info
+++ b/multimedia/w_scan_cpp/w_scan_cpp.info
@@ -4,11 +4,11 @@ HOMEPAGE="https://www.gen2vdr.de/wirbel/w_scan_cpp/index2.html"
DOWNLOAD="https://www.gen2vdr.de/wirbel/w_scan_cpp/w_scan_cpp-20231015.tar.bz2 \
https://www.gen2vdr.de/wirbel/wirbelscan/vdr-wirbelscan-2023.10.15.tgz \
https://github.com/rofafor/vdr-plugin-satip/archive/v2.4.1/vdr-plugin-satip-2.4.1.tar.gz \
- https://github.com/vdr-projects/vdr/archive/2.6.5/vdr-2.6.5.tar.gz"
+ https://github.com/vdr-projects/vdr/archive/2.6.7/vdr-2.6.7.tar.gz"
MD5SUM="ac6bca5260c571f81648bf735c0731b8 \
8a012699c1dd1e6ef9b8dd2ddc60d6af \
cd9ff5d2b47c3e55d64dbc375f84a5a7 \
- ded2dd49fd81368d5789393ed087c382"
+ 8da42e7f522f0a5c53ec28256275688e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pugixml librepfunc"
diff --git a/multimedia/winff/changelog b/multimedia/winff/changelog
index a67e2f90bc..e464b2ee64 100644
--- a/multimedia/winff/changelog
+++ b/multimedia/winff/changelog
@@ -121,3 +121,8 @@ Resubmit to SBo
Modify the SlackBuild to avoid creating object code files to /usr/share/lazarus
when compiling winff and remove unused function in doinst.sh Thanks to Andrew Clemons
for pointing it out.
+
+27/04/2024:
+
+Updated to version 1.6.4
+Fixed dead links. Fix documentation to properly open the pdf.
diff --git a/multimedia/winff/patches/unit1-pas.patch b/multimedia/winff/patches/unit1-pas.patch
index 402e4634a9..cb6ddd2217 100644
--- a/multimedia/winff/patches/unit1-pas.patch
+++ b/multimedia/winff/patches/unit1-pas.patch
@@ -1,5 +1,5 @@
---- unit1.pas 2023-10-03 19:20:47.000000000 +0530
-+++ unit1n.pas 2024-01-10 22:26:54.221464261 +0530
+--- unit1.pas 2024-04-17 01:41:03.000000000 +0530
++++ unit1n.pas 2024-04-25 19:19:53.307142871 +0530
@@ -1,8 +1,8 @@
unit Unit1;
@@ -9,35 +9,39 @@
-// http://winff.org
+// https://github.com/WinFF/winff
// Licensed under the GPL v3 or any later version
- //
+
// This program is free software: you can redistribute it and/or modify
-@@ -1988,16 +1988,16 @@
- language:=leftstr(lang,2);
- {$ifdef unix}
- s :='';
-- if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/doc/winff/WinFF.' + language + '.pdf.gz';
-- if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf') then s:='/usr/share/doc/winff/WinFF.' + language + '.pdf';
-+ if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/doc/winff-20231003_31b79e3/WinFF.' + language + '.pdf.gz';
-+ if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf') then s:='/usr/doc/winff-20231003_31b79e3/WinFF.' + language + '.pdf';
- if fileexists('/usr/share/winff/WinFF.' + language + '.pdf') then s:='/usr/share/winff/WinFF.' + language + '.pdf';
- if fileexists('/usr/share/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/winff/WinFF.' + language + '.pdf.gz';
- if fileexists('/usr/share/doc/packages/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/doc/packages/winff/WinFF.' + language + '.pdf.gz';
- if fileexists('/usr/share/doc/packages/winff/WinFF.' + language + '.pdf') then s:='/usr/share/doc/packages/winff/WinFF.' + language + '.pdf';
- if s='' then
- begin
-- s := '/usr/share/doc/winff/WinFF.en.pdf.gz';
-- if fileexists('/usr/share/doc/winff/WinFF.en.pdf') then s:='/usr/share/doc/winff/WinFF.en.pdf';
-+ s := '/usr/doc/winff-20231003_31b79e3/WinFF.en.pdf.gz';
-+ if fileexists('/usr/doc/winff-20231003_31b79e3/WinFF.en.pdf') then s:='/usr/doc/winff-20231003_31b79e3/WinFF.en.pdf';
- if fileexists('/usr/share/winff/WinFF.en.pdf') then s:='/usr/share/winff/WinFF.en.pdf';
- if fileexists('/usr/share/winff/WinFF.en.pdf.gz') then s:='/usr/share/winff/WinFF.en.pdf.gz';
- if fileexists('/usr/share/doc/packages/winff/WinFF.en.pdf.gz') then s:='/usr/share/doc/packages/winff/WinFF.en.pdf.gz';
-@@ -2015,7 +2015,7 @@
+@@ -1795,20 +1795,12 @@
+ language:=leftstr(lang,2);
+ {$ifdef unix}
+ s :='';
+- if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/doc/winff/WinFF.' + language + '.pdf.gz';
+- if fileexists('/usr/share/doc/winff/WinFF.' + language + '.pdf') then s:='/usr/share/doc/winff/WinFF.' + language + '.pdf';
+- if fileexists('/usr/share/winff/WinFF.' + language + '.pdf') then s:='/usr/share/winff/WinFF.' + language + '.pdf';
+- if fileexists('/usr/share/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/winff/WinFF.' + language + '.pdf.gz';
+- if fileexists('/usr/share/doc/packages/winff/WinFF.' + language + '.pdf.gz') then s:='/usr/share/doc/packages/winff/WinFF.' + language + '.pdf.gz';
+- if fileexists('/usr/share/doc/packages/winff/WinFF.' + language + '.pdf') then s:='/usr/share/doc/packages/winff/WinFF.' + language + '.pdf';
++ if fileexists('/usr/doc/winff-1.6.4/WinFF.' + language + '.pdf.gz') then s:='/usr/doc/winff-1.6.4/WinFF.' + language + '.pdf.gz';
++ if fileexists('/usr/doc/winff-1.6.4/WinFF.' + language + '.pdf') then s:='/usr/doc/winff-1.6.4/WinFF.' + language + '.pdf';
+ if s='' then
+ begin
+- s := '/usr/share/doc/winff/WinFF.en.pdf.gz';
+- if fileexists('/usr/share/doc/winff/WinFF.en.pdf') then s:='/usr/share/doc/winff/WinFF.en.pdf';
+- if fileexists('/usr/share/winff/WinFF.en.pdf') then s:='/usr/share/winff/WinFF.en.pdf';
+- if fileexists('/usr/share/winff/WinFF.en.pdf.gz') then s:='/usr/share/winff/WinFF.en.pdf.gz';
+- if fileexists('/usr/share/doc/packages/winff/WinFF.en.pdf.gz') then s:='/usr/share/doc/packages/winff/WinFF.en.pdf.gz';
+- if fileexists('/usr/share/doc/packages/winff/WinFF.en.pdf') then s:='/usr/share/doc/packages/winff/WinFF.en.pdf';
++ s := '/usr/doc/winff-1.6.4/WinFF.en.pdf.gz';
++ if fileexists('/usr/doc/winff-1.6.4/WinFF.en.pdf') then s:='/usr/doc/winff-1.6.4/WinFF.en.pdf';
+ end;
+ {$endif}
+ {$IFDEF WINDOWS}
+@@ -1821,7 +1813,7 @@
+ //menu: Help Forums
procedure TfrmMain.mitForumsClick(Sender: TObject);
-
begin
-- launchbrowser('https://groups.google.com/g/winff');
-+ launchbrowser('https://github.com/WinFF/winff/issues');
+- launchbrowser('https://groups.google.com/g/winff');
++ launchbrowser('http://github.com/WinFF/winff/issues');
end;
procedure TfrmMain.mitRestoreDefaultsClick(Sender: TObject);
diff --git a/multimedia/winff/patches/unit3-pas.patch b/multimedia/winff/patches/unit3-pas.patch
index 1d99d96642..5f8dd7c238 100644
--- a/multimedia/winff/patches/unit3-pas.patch
+++ b/multimedia/winff/patches/unit3-pas.patch
@@ -1,7 +1,8 @@
---- unit3.pas 2024-02-19 19:19:13.000000000 +0530
-+++ unit3n.pas 2024-02-27 18:15:24.377843083 +0530
-@@ -1,8 +1,8 @@
- unit Unit3;
+--- unit3.pas 2024-04-17 01:41:03.000000000 +0530
++++ unit3n.pas 2024-04-25 17:30:56.674161644 +0530
+@@ -2,9 +2,9 @@
+
+ // About form
-// WInFF 1.0 Copyright 2006-2013 Matthew Weatherford
+// WInFF 1.0 Copyright 2006-2024 Matthew Weatherford
@@ -9,69 +10,69 @@
-// http://winff.org
+// https://github.com/WinFF/winff
// Licensed under the GPL v3 or any later version
- //
+
// This program is free software: you can redistribute it and/or modify
-@@ -62,7 +62,6 @@
- procedure lblBellardClick(Sender: TObject);
- procedure lblGeversClick(Sender: TObject);
- procedure lblStoffbergClick(Sender: TObject);
-- procedure lblGmaqClick(Sender: TObject);
- procedure lblURLZeranoClick(Sender: TObject);
- procedure lblWeatherfordClick(Sender: TObject);
- procedure lblURLWinffOrgClick(Sender: TObject);
-@@ -132,27 +131,22 @@
+@@ -60,7 +60,6 @@
+ procedure lblBellardClick(Sender: TObject);
+ procedure lblGeversClick(Sender: TObject);
+ procedure lblStoffbergClick(Sender: TObject);
+- procedure lblGmaqClick(Sender: TObject);
+ procedure lblURLZeranoClick(Sender: TObject);
+ procedure lblWeatherfordClick(Sender: TObject);
+ procedure lblURLWinffOrgClick(Sender: TObject);
+@@ -128,27 +127,22 @@
procedure TfrmAbout.lblBellardClick(Sender: TObject);
begin
-
-+ frmMain.LaunchBrowser('https://bellard.org/');
++ frmMain.LaunchBrowser('https://bellard.org/');
end;
procedure TfrmAbout.lblGeversClick(Sender: TObject);
begin
-- frmMain.LaunchBrowser('https://launchpad.net/~paul-climbing/+archive/ppa/');
-+ frmMain.LaunchBrowser('https://tracker.debian.org/pkg/winff');
+- frmMain.LaunchBrowser('https://launchpad.net/~paul-climbing/+archive/ppa/');
++ frmMain.LaunchBrowser('https://tracker.debian.org/pkg/winff');
end;
procedure TfrmAbout.lblStoffbergClick(Sender: TObject);
begin
--frmMain.LaunchBrowser('http://istoff.blogspot.com');
+- frmMain.LaunchBrowser('http://istoff.blogspot.com');
-end;
-
-procedure TfrmAbout.lblGmaqClick(Sender: TObject);
-begin
-- frmMain.LaunchBrowser('http://www.bandshed.net/');
-+frmMain.LaunchBrowser('https://istoff.blogspot.com');
+- frmMain.LaunchBrowser('http://www.bandshed.net/');
++ frmMain.LaunchBrowser('https://istoff.blogspot.com');
end;
procedure TfrmAbout.lblURLZeranoClick(Sender: TObject);
begin
-- frmMain.LaunchBrowser('http://ffmpeg.zeranoe.com');
-+ frmMain.LaunchBrowser('https://www.gyan.dev/ffmpeg/builds');
+- frmMain.LaunchBrowser('http://ffmpeg.zeranoe.com');
++ frmMain.LaunchBrowser('https://www.gyan.dev/ffmpeg/builds');
end;
procedure TfrmAbout.btnOkClick(Sender: TObject);
-@@ -162,7 +156,7 @@
+@@ -158,7 +152,7 @@
procedure TfrmAbout.lblWeatherfordClick(Sender: TObject);
begin
-- frmMain.LaunchBrowser('http://www.biggmatt.com');
-+ frmMain.LaunchBrowser('https://www.biggmatt.com/p/winff.html');
+- frmMain.LaunchBrowser('http://www.biggmatt.com');
++ frmMain.LaunchBrowser('https://github.com/WinFF/winff');
end;
procedure TfrmAbout.lblURLWinffOrgClick(Sender: TObject);
-@@ -172,12 +166,12 @@
+@@ -168,12 +162,12 @@
procedure TfrmAbout.lblURLffmpegClick(Sender: TObject);
begin
-- frmMain.LaunchBrowser('http://ffmpeg.org/');
-+ frmMain.LaunchBrowser('https://ffmpeg.org/');
+- frmMain.LaunchBrowser('http://ffmpeg.org/');
++ frmMain.LaunchBrowser('https://ffmpeg.org/');
end;
procedure TfrmAbout.lblwinbuildsClick(Sender: TObject);
begin
-- frmMain.LaunchBrowser('http://ffmpeg.zeranoe.com/builds/');
-+ frmMain.LaunchBrowser('https://www.gyan.dev/ffmpeg/builds');
+- frmMain.LaunchBrowser('http://ffmpeg.zeranoe.com/builds/');
++ frmMain.LaunchBrowser('https://www.gyan.dev/ffmpeg/builds');
end;
procedure TfrmAbout.lblWindowsBuildsClick(Sender: TObject);
diff --git a/multimedia/winff/patches/winff-lpi.patch b/multimedia/winff/patches/winff-lpi.patch
index 663bce1c32..5c606b7ec4 100644
--- a/multimedia/winff/patches/winff-lpi.patch
+++ b/multimedia/winff/patches/winff-lpi.patch
@@ -1,5 +1,5 @@
---- winff.lpi 2023-10-03 19:20:47.000000000 +0530
-+++ winffn.lpi 2024-01-10 22:47:30.406244263 +0530
+--- winff.lpi 2024-04-17 01:41:03.000000000 +0530
++++ winffn.lpi 2024-04-25 17:33:23.998161221 +0530
@@ -20,7 +20,7 @@
<MajorVersionNr Value="1"/>
<MinorVersionNr Value="6"/>
@@ -9,23 +9,11 @@
</VersionInfo>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
-@@ -117,6 +117,11 @@
- <UseAnsiStrings Value="False"/>
- </SyntaxOptions>
- </Parsing>
-+ <CodeGeneration>
-+ <Optimizations>
-+ <OptimizationLevel Value="2"/>
-+ </Optimizations>
-+ </CodeGeneration>
- <Linking>
- <Debugging>
- <DebugInfoType Value="dsStabs"/>
-@@ -124,7 +129,7 @@
- <LinkSmart Value="True"/>
+@@ -129,7 +129,7 @@
+ </Debugging>
<Options>
<PassLinkerOptions Value="True"/>
-- <LinkerOptions Value="--as-needed"/>
+- <LinkerOptions Value="--as-needed -zrelro -znow"/>
+ <LinkerOptions Value="--as-needed -zrelro -znow -zdefs -pie"/>
<Win32>
<GraphicApplication Value="True"/>
diff --git a/multimedia/winff/winff.SlackBuild b/multimedia/winff/winff.SlackBuild
index 70d2b7209e..52eb1ccfc3 100644
--- a/multimedia/winff/winff.SlackBuild
+++ b/multimedia/winff/winff.SlackBuild
@@ -31,7 +31,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=winff
-VERSION=${VERSION:-1.6.3}
+VERSION=${VERSION:-1.6.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/multimedia/winff/winff.info b/multimedia/winff/winff.info
index 5ac2f04f02..52aaafeaf7 100644
--- a/multimedia/winff/winff.info
+++ b/multimedia/winff/winff.info
@@ -1,8 +1,8 @@
PRGNAM="winff"
-VERSION="1.6.3"
+VERSION="1.6.4"
HOMEPAGE="https://github.com/WinFF/winff"
-DOWNLOAD="https://github.com/WinFF/winff/archive/winff-1.6.3/winff-winff-1.6.3.tar.gz"
-MD5SUM="7a85f02bd23acef5b916166f83586e82"
+DOWNLOAD="https://github.com/WinFF/winff/archive/winff-1.6.4/winff-winff-1.6.4.tar.gz"
+MD5SUM="23138be15b60bf3fcb1c11c634d44d16"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libqtpas lazarus"
diff --git a/multimedia/xavs2/xavs2.SlackBuild b/multimedia/xavs2/xavs2.SlackBuild
index 64ac967293..d140ef2ae7 100644
--- a/multimedia/xavs2/xavs2.SlackBuild
+++ b/multimedia/xavs2/xavs2.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for xavs2
-# Copyright 2022, Vijay Marcel
+# Copyright 2022-2024, Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,37 +29,31 @@ VERSION=${VERSION:-1.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+sys_arch=${sys_arch:-$(uname -m)}
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
- arm*) export ARCH=arm ;;
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
+case "$sys_arch" in
+ x86_64) export ARCH=x86_64 ;;
+ *) echo "This program will not build on $sys_arch platform" && exit 1 ;;
+esac
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKCFLAGS="-march=i586 -mtune=i686 -pipe -O2 -fPIC"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ SLKCFLAGS="-march=i686 -mtune=i686 -pipe -O2 -fPIC"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-march=x86-64 -mtune=generic -pipe -O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -74,7 +68,6 @@ cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
-cd build/linux/
chown -R root:root .
find -L . \
@@ -83,6 +76,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+cd build/linux/
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -90,11 +84,10 @@ CXXFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--bindir=/usr/bin \
--enable-shared \
- --bit-depth='8' \
- --chroma-format='all' \
- --enable-lto \
- --system-libxavs2 \
- --enable-strip
+ --bit-depth=8 \
+ --chroma-format=all \
+ --enable-strip \
+ --disable-asm
make
make install DESTDIR=$PKG
@@ -105,7 +98,7 @@ cd ../..
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded --remove-section=.comment --remove-section=.note 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a COPYING README.md $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/multimedia/xavs2/xavs2.info b/multimedia/xavs2/xavs2.info
index 8ac339e43d..68dda4eedc 100644
--- a/multimedia/xavs2/xavs2.info
+++ b/multimedia/xavs2/xavs2.info
@@ -1,10 +1,10 @@
PRGNAM="xavs2"
VERSION="1.4"
HOMEPAGE="https://github.com/pkuvcl/xavs2"
-DOWNLOAD="https://github.com/pkuvcl/xavs2/archive/1.4/xavs2-1.4.tar.gz"
-MD5SUM="b776941aad474fed23da1d1eb0c0b720"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/pkuvcl/xavs2/archive/1.4/xavs2-1.4.tar.gz"
+MD5SUM_x86_64="b776941aad474fed23da1d1eb0c0b720"
REQUIRES=""
MAINTAINER="Vijay Marcel"
EMAIL="vijaymarcel@outlook.com"
diff --git a/network/QuiteRSS/QuiteRSS.info b/network/QuiteRSS/QuiteRSS.info
index f37df41ce7..31bc5425d5 100644
--- a/network/QuiteRSS/QuiteRSS.info
+++ b/network/QuiteRSS/QuiteRSS.info
@@ -1,7 +1,7 @@
PRGNAM="QuiteRSS"
VERSION="0.19.4"
HOMEPAGE="http://quiterss.org/en/node"
-DOWNLOAD="https://quiterss.org/files/0.19.4_/QuiteRSS-0.19.4-src.tar.gz"
+DOWNLOAD="https://web.archive.org/web/20240314094710/https://quiterss.org/files/0.19.4_/QuiteRSS-0.19.4-src.tar.gz"
MD5SUM="96a25a33904dadba2daa3ea5c92d4388"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/network/argus-clients/argus-clients.SlackBuild b/network/argus-clients/argus-clients.SlackBuild
index c9c7a09f28..5021d2ce9d 100644
--- a/network/argus-clients/argus-clients.SlackBuild
+++ b/network/argus-clients/argus-clients.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# Slackware build script for argus-clients
# Written by R. Bailey <GooseYArd@gmail.com>
-# Emmanuel N. Millan <emmanueln@gmail.com> - 2018
+# Emmanuel N. Millan <emmanueln@gmail.com> - 2018-2024
# 20220410 bkw: Modified by SlackBuilds.org, BUILD=2:
# - do not install headers in /usr/include with execute permission!
@@ -10,8 +10,9 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=argus-clients
-VERSION=${VERSION:-3.0.8.3}
-BUILD=${BUILD:-2}
+SRCNAM=clients
+VERSION=${VERSION:-3.0.8.4}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -32,6 +33,7 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
@@ -52,7 +54,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+mv clients-$VERSION $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -82,6 +85,9 @@ gzip -9 $PKG/usr/man/man*/*
# 20220410 bkw: wtf, upstream?
find $PKG/usr/include/argus/ -type f -exec chmod 0644 {} \+
+find $PKG/usr/lib${LIBDIRSUFFIX} -type f -exec chmod 0644 {} \+
+
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -90,7 +96,9 @@ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
ChangeLog COPYING CREDITS MANIFEST README VERSION \
$PKG/usr/doc/$PRGNAM-$VERSION
+mv $PKG/usr/argus/* $PKG/usr/doc/$PRGNAM-$VERSION/
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+rm -rf $PKG/usr/argus
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/network/argus-clients/argus-clients.info b/network/argus-clients/argus-clients.info
index 5637f19aba..f57e9a3fd4 100644
--- a/network/argus-clients/argus-clients.info
+++ b/network/argus-clients/argus-clients.info
@@ -1,8 +1,8 @@
PRGNAM="argus-clients"
-VERSION="3.0.8.3"
+VERSION="3.0.8.4"
HOMEPAGE="https://www.qosient.com/argus/index.shtml"
-DOWNLOAD="https://qosient.com/argus/src/argus-clients-3.0.8.3.tar.gz"
-MD5SUM="fc3ad12cea5154d3123aa96765e7aee7"
+DOWNLOAD="https://github.com/openargus/clients/archive/v3.0.8.4/clients-3.0.8.4.tar.gz"
+MD5SUM="67768854b128be2c477b3c0ea9eaca50"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/bpfmon/bpfmon.SlackBuild b/network/bpfmon/bpfmon.SlackBuild
index 5331c3663c..e67a13693b 100644
--- a/network/bpfmon/bpfmon.SlackBuild
+++ b/network/bpfmon/bpfmon.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for bpfmon
-# Copyright 2022-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2022-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=bpfmon
-VERSION=${VERSION:-2.51}
+VERSION=${VERSION:-2.52}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/bpfmon/bpfmon.info b/network/bpfmon/bpfmon.info
index f7db79bf56..a6eaba6a29 100644
--- a/network/bpfmon/bpfmon.info
+++ b/network/bpfmon/bpfmon.info
@@ -1,8 +1,8 @@
PRGNAM="bpfmon"
-VERSION="2.51"
+VERSION="2.52"
HOMEPAGE="https://github.com/bbonev/bpfmon"
-DOWNLOAD="https://github.com/bbonev/bpfmon/releases/download/v2.51/bpfmon-2.51.tar.xz"
-MD5SUM="54c105b49808ac8b8ad7af0dba6f73b9"
+DOWNLOAD="https://github.com/bbonev/bpfmon/releases/download/v2.52/bpfmon-2.52.tar.xz"
+MD5SUM="421beb09d0c503f1dbee1a2198985a7f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="yascreen"
diff --git a/network/brave-browser/brave-browser.SlackBuild b/network/brave-browser/brave-browser.SlackBuild
index 8c757756b4..b8da43cbac 100644
--- a/network/brave-browser/brave-browser.SlackBuild
+++ b/network/brave-browser/brave-browser.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=brave-browser
-VERSION=${VERSION:-1.65.114}
+VERSION=${VERSION:-1.65.126}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/brave-browser/brave-browser.info b/network/brave-browser/brave-browser.info
index 77dafefff7..4f591c926f 100644
--- a/network/brave-browser/brave-browser.info
+++ b/network/brave-browser/brave-browser.info
@@ -1,10 +1,10 @@
PRGNAM="brave-browser"
-VERSION="1.65.114"
+VERSION="1.65.126"
HOMEPAGE="https://brave.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/brave/brave-browser/releases/download/v1.65.114/brave-browser-1.65.114-1.x86_64.rpm"
-MD5SUM_x86_64="bdd1be24d71588c20f93a29ec15bd791"
+DOWNLOAD_x86_64="https://github.com/brave/brave-browser/releases/download/v1.65.126/brave-browser-1.65.126-1.x86_64.rpm"
+MD5SUM_x86_64="7edca82047d8267638bf60155160475c"
REQUIRES=""
MAINTAINER="Andrew Payne"
EMAIL="phalange@komputermatrix.com"
diff --git a/network/cacti/cacti.SlackBuild b/network/cacti/cacti.SlackBuild
index ad194b09c5..51c674525a 100644
--- a/network/cacti/cacti.SlackBuild
+++ b/network/cacti/cacti.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=cacti
-VERSION=${VERSION:-1.1.38}
+VERSION=${VERSION:-1.2.26}
ARCH=noarch
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -36,9 +36,6 @@ DOCROOT=${DOCROOT:-/var/www/htdocs}
PHPUSER=${PHPUSER:-root}
PHPGROUP=${PHPGROUP:-apache}
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/network/cacti/cacti.info b/network/cacti/cacti.info
index bdfc98b130..04b86b39a0 100644
--- a/network/cacti/cacti.info
+++ b/network/cacti/cacti.info
@@ -1,8 +1,8 @@
PRGNAM="cacti"
-VERSION="1.1.38"
+VERSION="1.2.26"
HOMEPAGE="https://www.cacti.net/"
-DOWNLOAD="https://www.cacti.net/downloads/cacti-1.1.38.tar.gz"
-MD5SUM="9bf4b63fd661e1cb91ba13e538f38288"
+DOWNLOAD="https://www.cacti.net/downloads/cacti-1.2.26.tar.gz"
+MD5SUM="53043d8279640a074cc054c7b156375d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="rrdtool"
diff --git a/network/davmail/davmail.SlackBuild b/network/davmail/davmail.SlackBuild
index ae6c441bea..c714cfd4f2 100644
--- a/network/davmail/davmail.SlackBuild
+++ b/network/davmail/davmail.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for DavMail
-# Copyright (c) 2015-2022 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
+# Copyright (c) 2015-2024 Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=davmail
-VERSION=${VERSION:-5.5.1}
+VERSION=${VERSION:-6.2.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/davmail/davmail.info b/network/davmail/davmail.info
index f24a018308..6a7d9442a9 100644
--- a/network/davmail/davmail.info
+++ b/network/davmail/davmail.info
@@ -1,8 +1,8 @@
PRGNAM="davmail"
-VERSION="5.5.1"
+VERSION="6.2.2"
HOMEPAGE="http://davmail.sourceforge.net"
-DOWNLOAD="https://sourceforge.net/projects/davmail/files/davmail/5.5.1/davmail-5.5.1-3299.zip"
-MD5SUM="ae194c3571e107081164913a001d6f27"
+DOWNLOAD="https://sourceforge.net/projects/davmail/files/davmail/6.2.2/davmail-6.2.2-3546.zip"
+MD5SUM="9c017f41e43ff7d2df7c33a1e068d0da"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="zulu-openjdk8"
diff --git a/network/discord/discord.SlackBuild b/network/discord/discord.SlackBuild
index 51712eae42..93a18588b5 100644
--- a/network/discord/discord.SlackBuild
+++ b/network/discord/discord.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=discord
-VERSION=${VERSION:-0.0.50}
+VERSION=${VERSION:-0.0.52}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/discord/discord.info b/network/discord/discord.info
index e667e9d346..92b95bb9d3 100644
--- a/network/discord/discord.info
+++ b/network/discord/discord.info
@@ -1,10 +1,10 @@
PRGNAM="discord"
-VERSION="0.0.50"
+VERSION="0.0.52"
HOMEPAGE="https://discordapp.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://dl.discordapp.net/apps/linux/0.0.50/discord-0.0.50.deb"
-MD5SUM_x86_64="d8833eed04524519f0dc716252fc751a"
+DOWNLOAD_x86_64="https://dl.discordapp.net/apps/linux/0.0.52/discord-0.0.52.deb"
+MD5SUM_x86_64="24d5d49fd9ef0da86f5703b7ca37873a"
REQUIRES=""
MAINTAINER="Jeremy Hansen"
EMAIL="jebrhansen+SBo@gmail.com"
diff --git a/network/dnsproxy-bin/dnsproxy-bin.SlackBuild b/network/dnsproxy-bin/dnsproxy-bin.SlackBuild
index 754f02619a..3700915963 100644
--- a/network/dnsproxy-bin/dnsproxy-bin.SlackBuild
+++ b/network/dnsproxy-bin/dnsproxy-bin.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dnsproxy-bin
-VERSION=${VERSION:-0.70.0}
+VERSION=${VERSION:-0.71.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/dnsproxy-bin/dnsproxy-bin.info b/network/dnsproxy-bin/dnsproxy-bin.info
index a92b474217..2142d4f910 100644
--- a/network/dnsproxy-bin/dnsproxy-bin.info
+++ b/network/dnsproxy-bin/dnsproxy-bin.info
@@ -1,13 +1,13 @@
PRGNAM="dnsproxy-bin"
-VERSION="0.70.0"
+VERSION="0.71.1"
HOMEPAGE="https://github.com/AdguardTeam/dnsproxy"
-DOWNLOAD="https://github.com/AdguardTeam/dnsproxy/releases/download/v0.70.0/dnsproxy-linux-386-v0.70.0.tar.gz \
- https://raw.githubusercontent.com/AdguardTeam/dnsproxy/v0.70.0/config.yaml.dist"
-MD5SUM="2477cd961231ea37dacd5f66306e3a27 \
+DOWNLOAD="https://github.com/AdguardTeam/dnsproxy/releases/download/v0.71.1/dnsproxy-linux-386-v0.71.1.tar.gz \
+ https://raw.githubusercontent.com/AdguardTeam/dnsproxy/v0.71.1/config.yaml.dist"
+MD5SUM="1536d50297c7fdaa1754f15be45785ab \
5a8aaaacbc3aeb1af4aac34233f2d14b"
-DOWNLOAD_x86_64="https://github.com/AdguardTeam/dnsproxy/releases/download/v0.70.0/dnsproxy-linux-amd64-v0.70.0.tar.gz \
- https://raw.githubusercontent.com/AdguardTeam/dnsproxy/v0.70.0/config.yaml.dist"
-MD5SUM_x86_64="3866f2ffc11a96222e6d2986ee1d743e \
+DOWNLOAD_x86_64="https://github.com/AdguardTeam/dnsproxy/releases/download/v0.71.1/dnsproxy-linux-amd64-v0.71.1.tar.gz \
+ https://raw.githubusercontent.com/AdguardTeam/dnsproxy/v0.71.1/config.yaml.dist"
+MD5SUM_x86_64="1dd834f8afa0eb721977a1ede6cf8a5f \
5a8aaaacbc3aeb1af4aac34233f2d14b"
REQUIRES=""
MAINTAINER="Alexander Verbovetsky"
diff --git a/network/drawterm/drawterm.info b/network/drawterm/drawterm.info
index 0fec204c43..3711f8fd53 100644
--- a/network/drawterm/drawterm.info
+++ b/network/drawterm/drawterm.info
@@ -2,7 +2,7 @@ PRGNAM="drawterm"
VERSION="dc703b3438f9"
HOMEPAGE="http://drawterm.9front.org"
DOWNLOAD="https://code.9front.org/hg/drawterm/archive/dc703b3438f9.tar.gz"
-MD5SUM="d5625ed2b9f830e94e7ddce1872da6f4"
+MD5SUM="49f2fea5fefe6c184f01c7f4249f19b4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/dropbear/dropbear.SlackBuild b/network/dropbear/dropbear.SlackBuild
index 490b671695..870bb7ec01 100644
--- a/network/dropbear/dropbear.SlackBuild
+++ b/network/dropbear/dropbear.SlackBuild
@@ -2,7 +2,7 @@
# Copyright 2007-2008, Piter Punk, São Paulo, Brazil
# Copyright 2017-2020,2022 Andrew Clemons, Wellington New Zealand
-# Copyright 2022 Andrew Clemons, Tokyo Japan
+# Copyright 2022,2024 Andrew Clemons, Tokyo Japan
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dropbear
-VERSION=${VERSION:-2022.83}
+VERSION=${VERSION:-2024.85}
SRCVERSION="DROPBEAR_$VERSION"
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -77,8 +77,6 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-autoreconf -if
-
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -132,7 +130,7 @@ mkdir -p $PKG/etc/rc.d
cat $CWD/rc.dropbear.new > $PKG/etc/rc.d/rc.dropbear.new
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGES LICENSE MULTI README SMALL $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGES DEVELOPING.md FUZZER-NOTES.md LICENSE MULTI.md README.md SMALL.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/network/dropbear/dropbear.info b/network/dropbear/dropbear.info
index b4635fc56b..8fe661d388 100644
--- a/network/dropbear/dropbear.info
+++ b/network/dropbear/dropbear.info
@@ -1,8 +1,8 @@
PRGNAM="dropbear"
-VERSION="2022.83"
+VERSION="2024.85"
HOMEPAGE="https://github.com/mkj/dropbear"
-DOWNLOAD="https://github.com/mkj/dropbear/archive/DROPBEAR_2022.83/dropbear-DROPBEAR_2022.83.tar.gz"
-MD5SUM="f166e27ec24752ffa892910fc89a51b1"
+DOWNLOAD="https://github.com/mkj/dropbear/archive/DROPBEAR_2024.85/dropbear-DROPBEAR_2024.85.tar.gz"
+MD5SUM="d4b107f6fd103bc2c6ed7226bbae69b2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/dropbox/dropbox.SlackBuild b/network/dropbox/dropbox.SlackBuild
index f84854721d..5d1b5763ba 100644
--- a/network/dropbox/dropbox.SlackBuild
+++ b/network/dropbox/dropbox.SlackBuild
@@ -31,7 +31,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dropbox
-VERSION=${VERSION:-196.4.6900}
+VERSION=${VERSION:-197.4.7629}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/dropbox/dropbox.info b/network/dropbox/dropbox.info
index 9df24e3a6b..77878c44de 100644
--- a/network/dropbox/dropbox.info
+++ b/network/dropbox/dropbox.info
@@ -1,10 +1,10 @@
PRGNAM="dropbox"
-VERSION="196.4.6900"
+VERSION="197.4.7629"
HOMEPAGE="https://www.dropbox.com"
-DOWNLOAD="https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86-196.4.6900.tar.gz"
-MD5SUM="691c757e0689c38df18d5d3a0e54b66c"
-DOWNLOAD_x86_64="https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-196.4.6900.tar.gz"
-MD5SUM_x86_64="7ceac7a9546e337c78d13106fb923880"
+DOWNLOAD="https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86-197.4.7629.tar.gz"
+MD5SUM="e242860cabbb4ad5696aa1785c67b998"
+DOWNLOAD_x86_64="https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-197.4.7629.tar.gz"
+MD5SUM_x86_64="953e587aa7d803d55286ac91873bb87c"
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/network/enet/enet.SlackBuild b/network/enet/enet.SlackBuild
index c31af6a1a2..84e201aa40 100644
--- a/network/enet/enet.SlackBuild
+++ b/network/enet/enet.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for enet
-# Copyright 2021 S. S. Bolokanar, Bulgaria <bolokanar@bulgars.org>
+# Copyright 2021 S. S. Bolokanar, Bulgaria <bolokanar@bulgarsociety.org>
# С. С. Болоканаръ, България
# All rights reserved.
#
@@ -28,8 +28,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=enet
-VERSION=${VERSION:-1.3.17}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-1.3.18}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/enet/enet.info b/network/enet/enet.info
index 2d5be7c542..4c3c9de948 100644
--- a/network/enet/enet.info
+++ b/network/enet/enet.info
@@ -1,10 +1,10 @@
PRGNAM="enet"
-VERSION="1.3.17"
+VERSION="1.3.18"
HOMEPAGE="http://enet.bespin.org"
-DOWNLOAD="http://enet.bespin.org/download/enet-1.3.17.tar.gz"
-MD5SUM="c8e96051c5a60afa9f3052d02b2cbe19"
+DOWNLOAD="http://enet.bespin.org/download/enet-1.3.18.tar.gz"
+MD5SUM="0b52430b05f42ff867a44a8ce5df2012"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="S. S. Bolokanar"
-EMAIL="bolokanar@bulgars.org"
+EMAIL="bolokanar@bulgarsociety.org"
diff --git a/network/fail2ban/doinst.sh b/network/fail2ban/doinst.sh
index 1239d0323e..7c5f64edbf 100644
--- a/network/fail2ban/doinst.sh
+++ b/network/fail2ban/doinst.sh
@@ -24,4 +24,3 @@ preserve_perms() {
preserve_perms etc/rc.d/rc.fail2ban.new
config etc/logrotate.d/fail2ban.new
-config etc/bash_completion.d/fail2ban.new
diff --git a/network/fail2ban/fail2ban.SlackBuild b/network/fail2ban/fail2ban.SlackBuild
index a08000e8f7..db6e648408 100644
--- a/network/fail2ban/fail2ban.SlackBuild
+++ b/network/fail2ban/fail2ban.SlackBuild
@@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM="fail2ban"
VERSION=${VERSION:-1.0.2}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -72,7 +72,7 @@ sed -i 's|self.install_dir|"/usr/bin"|' setup.py
sed -i 's/^before = paths-debian.conf/before = paths-slackware.conf/' config/jail.conf
./fail2ban-2to3
-python setup.py install --root=$PKG
+python3 setup.py install --root=$PKG
# installing man pages
mkdir -p $PKG/usr/man/{man1,man5}
@@ -87,14 +87,18 @@ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; r
install -D -m 0644 $CWD/rc.fail2ban $PKG/etc/rc.d/rc.fail2ban.new
# install slackware specific config file
-install -D -m 0644 $CWD/config/paths-slackware.conf $PKG/etc/fail2ban/paths-slackware.conf.new
+install -D -m 0644 $CWD/config/paths-slackware.conf $PKG/etc/fail2ban/paths-slackware.conf
# remove non-slackware specific config files
-rm -f $PKG/etc/fail2ban/paths-{arch,debian,fedora,freebsd,osx,opensuse}.conf.new
+rm -f $PKG/etc/fail2ban/paths-{arch,debian,fedora,freebsd,osx,opensuse}.conf
# install bash completion script if requested
if [ "$BASH_COMPLETION" = "yes" ]; then
install -D -m 0644 files/bash-completion $PKG/usr/share/bash-completion/completions/fail2ban
+ ( cd $PKG/usr/share/bash-completion/completions ; ln -sf fail2ban fail2ban-client )
+ ( cd $PKG/usr/share/bash-completion/completions ; ln -sf fail2ban fail2ban-python )
+ ( cd $PKG/usr/share/bash-completion/completions ; ln -sf fail2ban fail2ban-regex )
+ ( cd $PKG/usr/share/bash-completion/completions ; ln -sf fail2ban fail2ban-server )
fi
# install logrotate script
diff --git a/network/freedownloadmanager/freedownloadmanager.SlackBuild b/network/freedownloadmanager/freedownloadmanager.SlackBuild
index aebf680763..478a103c6e 100644
--- a/network/freedownloadmanager/freedownloadmanager.SlackBuild
+++ b/network/freedownloadmanager/freedownloadmanager.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=freedownloadmanager
-VERSION=${VERSION:-6.16.0.4468}
+VERSION=${VERSION:-6.20.0.5510}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +38,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/network/freedownloadmanager/freedownloadmanager.info b/network/freedownloadmanager/freedownloadmanager.info
index 9469b5fffd..032ec1f397 100644
--- a/network/freedownloadmanager/freedownloadmanager.info
+++ b/network/freedownloadmanager/freedownloadmanager.info
@@ -1,8 +1,8 @@
PRGNAM="freedownloadmanager"
-VERSION="6.16.0.4468"
+VERSION="6.20.0.5510"
HOMEPAGE="https://www.freedownloadmanager.org"
DOWNLOAD="https://dn3.freedownloadmanager.org/6/latest/freedownloadmanager.deb"
-MD5SUM="d5c4888ca4ebf7473af898c98e943bf5"
+MD5SUM="5be30821ccb115819d54c8d0642b6c70"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/goimapnotify/go.mod b/network/goimapnotify/go.mod
index 7dd7616515..0769ccfa39 100644
--- a/network/goimapnotify/go.mod
+++ b/network/goimapnotify/go.mod
@@ -1,6 +1,6 @@
module gitlab.com/shackra/goimapnotify
-go 1.21.6
+go 1.22.1
require (
github.com/emersion/go-imap v1.2.1
@@ -10,6 +10,6 @@ require (
)
require (
- golang.org/x/sys v0.18.0 // indirect
+ golang.org/x/sys v0.19.0 // indirect
golang.org/x/text v0.14.0 // indirect
)
diff --git a/network/goimapnotify/go.sum b/network/goimapnotify/go.sum
index b58b347ff4..910b3e0e89 100644
--- a/network/goimapnotify/go.sum
+++ b/network/goimapnotify/go.sum
@@ -26,8 +26,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
-golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
+golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
diff --git a/network/goimapnotify/goimapnotify.SlackBuild b/network/goimapnotify/goimapnotify.SlackBuild
index 4f84f8f0b9..314febaac3 100644
--- a/network/goimapnotify/goimapnotify.SlackBuild
+++ b/network/goimapnotify/goimapnotify.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=goimapnotify
-VERSION=${VERSION:-2.3.12}
+VERSION=${VERSION:-2.3.15}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -98,7 +98,7 @@ go build
install -sDm 755 goimapnotify -t $PKG/usr/bin
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGELOG.rst README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG* README* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/network/goimapnotify/goimapnotify.info b/network/goimapnotify/goimapnotify.info
index d28f3389f0..b51ff5a449 100644
--- a/network/goimapnotify/goimapnotify.info
+++ b/network/goimapnotify/goimapnotify.info
@@ -1,19 +1,19 @@
PRGNAM="goimapnotify"
-VERSION="2.3.12"
+VERSION="2.3.15"
HOMEPAGE="https://gitlab.com/shackra/goimapnotify"
-DOWNLOAD="https://gitlab.com/shackra/goimapnotify/-/archive/2.3.12/goimapnotify-2.3.12.tar.gz \
+DOWNLOAD="https://gitlab.com/shackra/goimapnotify/-/archive/2.3.15/goimapnotify-2.3.15.tar.gz \
https://github.com/emersion/go-imap/archive/v1.2.1/go-imap-v1.2.1.tar.gz \
https://github.com/emersion/go-imap-idle/archive/db25684/go-imap-idle-db2568431445.tar.gz \
https://github.com/emersion/go-sasl/archive/e73c9f7/go-sasl-e73c9f7bad43.tar.gz \
https://github.com/sirupsen/logrus/archive/v1.9.3/logrus-v1.9.3.tar.gz \
- https://github.com/golang/sys/archive/v0.18.0/sys-v0.18.0.tar.gz \
+ https://github.com/golang/sys/archive/v0.19.0/sys-v0.19.0.tar.gz \
https://github.com/golang/text/archive/v0.14.0/text-v0.14.0.tar.gz"
-MD5SUM="ace5c852d7c851e4cb9da3f4c576bba9 \
+MD5SUM="cdd63ac1f0465b365a0d49f48494bd63 \
337ec4e15b3b9435bec02d0b4c634797 \
0c60834c277747653bf1d883ac7660b2 \
efc2190ae65129b3e2531a9258181e98 \
29e75bd7c106e1853d2a9de8bd17dbb0 \
- e00453d8847cde61907bcbee219c44bb \
+ 884f364735b00bb72fcea01a6de28c46 \
9f64144d4b1647ce4597abf657028a8d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/network/goimapnotify/modules.txt b/network/goimapnotify/modules.txt
index 0429696a1f..1711fb33fa 100644
--- a/network/goimapnotify/modules.txt
+++ b/network/goimapnotify/modules.txt
@@ -16,7 +16,7 @@ github.com/emersion/go-sasl
# github.com/sirupsen/logrus v1.9.3
## explicit; go 1.13
github.com/sirupsen/logrus
-# golang.org/x/sys v0.18.0
+# golang.org/x/sys v0.19.0
## explicit; go 1.18
golang.org/x/sys/unix
golang.org/x/sys/windows
diff --git a/network/hylafax+/hylafax+.SlackBuild b/network/hylafax+/hylafax+.SlackBuild
index 18465f759a..32abfd11e8 100644
--- a/network/hylafax+/hylafax+.SlackBuild
+++ b/network/hylafax+/hylafax+.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=hylafax+
SRCNAM=hylafax
-VERSION=${VERSION:-7.0.5}
+VERSION=${VERSION:-7.0.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/hylafax+/hylafax+.info b/network/hylafax+/hylafax+.info
index fd7edd7862..57f3555f7c 100644
--- a/network/hylafax+/hylafax+.info
+++ b/network/hylafax+/hylafax+.info
@@ -1,8 +1,8 @@
PRGNAM="hylafax+"
-VERSION="7.0.5"
+VERSION="7.0.8"
HOMEPAGE="http://hylafax.sourceforge.net"
-DOWNLOAD="http://prdownloads.sourceforge.net/hylafax/hylafax-7.0.5.tar.gz"
-MD5SUM="ac8450d7aa8e5d6dd726e4d601702d69"
+DOWNLOAD="http://prdownloads.sourceforge.net/hylafax/hylafax-7.0.8.tar.gz"
+MD5SUM="3b04ab1eef3ea44706c461168cab1f24"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/kismet/kismet.SlackBuild b/network/kismet/kismet.SlackBuild
index 31c32c7fa4..0a4f245297 100644
--- a/network/kismet/kismet.SlackBuild
+++ b/network/kismet/kismet.SlackBuild
@@ -28,8 +28,9 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=kismet
-VERSION=${VERSION:-2023.07.R1}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-20240430}
+COMMITVER="c28bca11baa23888510fac59a34bbe0b5d68dc37"
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -41,9 +42,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -82,10 +80,10 @@ set -eu
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-${VERSION//./-}
+rm -rf $PRGNAM-$COMMITVER
-tar xvf $CWD/$PRGNAM-${VERSION//./-}.tar.xz
-cd $PRGNAM-${VERSION//./-}
+tar xvf $CWD/$PRGNAM-$COMMITVER.tar.gz
+cd $PRGNAM-$COMMITVER
chown -R root:root .
find -L . \
diff --git a/network/kismet/kismet.info b/network/kismet/kismet.info
index 93aae74af6..56afd59c8c 100644
--- a/network/kismet/kismet.info
+++ b/network/kismet/kismet.info
@@ -1,10 +1,10 @@
PRGNAM="kismet"
-VERSION="2023.07.R1"
+VERSION="20240430"
HOMEPAGE="https://kismetwireless.net/"
-DOWNLOAD="https://www.kismetwireless.net/code/kismet-2023-07-R1.tar.xz"
-MD5SUM="d6c82b241de1be72d2dcb5e0102d8c99"
+DOWNLOAD="https://github.com/kismetwireless/kismet/archive/c28bca11baa23888510fac59a34bbe0b5d68dc37/kismet-c28bca11baa23888510fac59a34bbe0b5d68dc37.tar.gz"
+MD5SUM="8ebc66d758162eb4bf5324a17c7b46ad"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libwebsockets protobuf-c"
+REQUIRES="libwebsockets protobuf-c mosquitto"
MAINTAINER="pyllyukko"
EMAIL="pyllyukko@maimed.org"
diff --git a/network/monkey/monkey.info b/network/monkey/monkey.info
index 079b2763c6..bf97a19323 100644
--- a/network/monkey/monkey.info
+++ b/network/monkey/monkey.info
@@ -1,7 +1,7 @@
PRGNAM="monkey"
VERSION="1.6.9"
HOMEPAGE="http://monkey-project.com/"
-DOWNLOAD="http://monkey-project.com/releases/1.6/monkey-1.6.9.tar.gz"
+DOWNLOAD="https://dev.alpinelinux.org/archive/monkey/monkey-1.6.9.tar.gz"
MD5SUM="c401734985a936ee07dbff5eca7d176a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/network/movgrab/movgrab.SlackBuild b/network/movgrab/movgrab.SlackBuild
index fc151c4a1d..1597dd3544 100644
--- a/network/movgrab/movgrab.SlackBuild
+++ b/network/movgrab/movgrab.SlackBuild
@@ -6,7 +6,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=movgrab
-VERSION=${VERSION:-1.2.1}
+SRCNAM=Movgrab
+VERSION=${VERSION:-3.1.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -19,9 +20,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -50,9 +48,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -62,7 +60,6 @@ find -L . \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
-autoreconf # otherwise fails with libUseful
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -80,13 +77,9 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/libUseful-2.0
cp -a \
Docs/* README LICENCE CHANGES \
$PKG/usr/doc/$PRGNAM-$VERSION
- cp -a \
- libUseful-2.0/Docs/* \
- $PKG/usr/doc/$PRGNAM-$VERSION/libUseful-2.0
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/network/movgrab/movgrab.info b/network/movgrab/movgrab.info
index 636f393e21..def597f952 100644
--- a/network/movgrab/movgrab.info
+++ b/network/movgrab/movgrab.info
@@ -1,8 +1,8 @@
PRGNAM="movgrab"
-VERSION="1.2.1"
-HOMEPAGE="http://sites.google.com/site/columscode/home/movgrab"
-DOWNLOAD="https://sites.google.com/site/columscode/files/movgrab-1.2.1.tar.gz"
-MD5SUM="db162d6963b9753d6235f23419d08a5a"
+VERSION="3.1.2"
+HOMEPAGE="https://github.com/ColumPaget/Movgrab"
+DOWNLOAD="https://github.com/ColumPaget/Movgrab/archive/3.1.2/Movgrab-3.1.2.tar.gz"
+MD5SUM="567faf36bf7f75b30e6098050688fbd3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/movgrab/slack-desc b/network/movgrab/slack-desc
index ed316e1576..80a6e4b96a 100644
--- a/network/movgrab/slack-desc
+++ b/network/movgrab/slack-desc
@@ -12,7 +12,7 @@ movgrab: movgrab is a downloader for all those pesky sites that insist you use
movgrab: a big fat browser that runs flash in order to see their content.
movgrab: It's a command-line app written in straight C.
movgrab:
-movgrab: homepage: http://sites.google.com/site/columscode/home/movgrab
+movgrab: homepage: https://github.com/ColumPaget/Movgrab
movgrab:
movgrab:
movgrab:
diff --git a/network/mptcpd/README b/network/mptcpd/README
new file mode 100644
index 0000000000..432f248bf4
--- /dev/null
+++ b/network/mptcpd/README
@@ -0,0 +1,6 @@
+The Multipath TCP Daemon is a daemon for Linux based operating systems
+that performs multipath TCP path management related operations in the
+user space. It interacts with the Linux kernel through a generic
+netlink connection to track per-connection information (e.g. available
+remote addresses), available network interfaces, request new MPTCP
+subflows, handle requests for subflows, etc.
diff --git a/network/mptcpd/mptcpd.SlackBuild b/network/mptcpd/mptcpd.SlackBuild
new file mode 100644
index 0000000000..2abb0f06d6
--- /dev/null
+++ b/network/mptcpd/mptcpd.SlackBuild
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+# Slackware build script for mptcpd
+
+# Copyright 2024 Thibaut Notteboom, Paris, FRANCE
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=mptcpd
+VERSION=${VERSION:-0.12}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make
+make install-strip DESTDIR=$PKG
+
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*/*.la
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING LICENSES/ NEWS README* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/mptcpd/mptcpd.info b/network/mptcpd/mptcpd.info
new file mode 100644
index 0000000000..62f67cf5a9
--- /dev/null
+++ b/network/mptcpd/mptcpd.info
@@ -0,0 +1,10 @@
+PRGNAM="mptcpd"
+VERSION="0.12"
+HOMEPAGE="https://github.com/multipath-tcp/mptcpd"
+DOWNLOAD="https://github.com/multipath-tcp/mptcpd/releases/download/v0.12/mptcpd-0.12.tar.gz"
+MD5SUM="db55d55ab4591452582101d2343a8958"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="ell"
+MAINTAINER="Thibaut Notteboom"
+EMAIL="thibaut.notteboom@gmail.com"
diff --git a/network/mptcpd/slack-desc b/network/mptcpd/slack-desc
new file mode 100644
index 0000000000..6248c115aa
--- /dev/null
+++ b/network/mptcpd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+mptcpd: mptcpd (Multipath TCP daemon)
+mptcpd:
+mptcpd: The Multipath TCP Daemon is a daemon for Linux based operating systems
+mptcpd: that performs multipath TCP path management related operations in the
+mptcpd: user space. It interacts with the Linux kernel through a generic
+mptcpd: netlink connection to track per-connection information (e.g. available
+mptcpd: remote addresses), available network interfaces, request new MPTCP
+mptcpd: subflows, handle requests for subflows, etc.
+mptcpd:
+mptcpd:
+mptcpd:
diff --git a/network/mullvadvpn-app/mullvadvpn-app.SlackBuild b/network/mullvadvpn-app/mullvadvpn-app.SlackBuild
index 164a12feba..766711169e 100644
--- a/network/mullvadvpn-app/mullvadvpn-app.SlackBuild
+++ b/network/mullvadvpn-app/mullvadvpn-app.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for mullvadvpn-app
#
-# Copyright 2023 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
+# Copyright 2023-2024 Jay Lanagan (j@lngn.net), Detroit, MI, USA.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mullvadvpn-app
SRCNAM=MullvadVPN
-VERSION=${VERSION:-2024.1}
+VERSION=${VERSION:-2024.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/mullvadvpn-app/mullvadvpn-app.info b/network/mullvadvpn-app/mullvadvpn-app.info
index 12c12a9a7e..970e0d7ce0 100644
--- a/network/mullvadvpn-app/mullvadvpn-app.info
+++ b/network/mullvadvpn-app/mullvadvpn-app.info
@@ -1,12 +1,12 @@
PRGNAM="mullvadvpn-app"
-VERSION="2024.1"
+VERSION="2024.2"
HOMEPAGE="https://mullvad.net/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/mullvad/mullvadvpn-app/releases/download/2024.1/MullvadVPN-2024.1_amd64.deb \
- https://github.com/mullvad/mullvadvpn-app/releases/download/2024.1/MullvadVPN-2024.1_arm64.deb"
-MD5SUM_x86_64="80a62dba93bdbce63f6468ccb2b41d46 \
- 39b9868dbd2a48088c3143c82771b5aa"
+DOWNLOAD_x86_64="https://github.com/mullvad/mullvadvpn-app/releases/download/2024.2/MullvadVPN-2024.2_amd64.deb \
+ https://github.com/mullvad/mullvadvpn-app/releases/download/2024.2/MullvadVPN-2024.2_arm64.deb"
+MD5SUM_x86_64="3b9f7014b7256d1edb2485eaecd1b495 \
+ ffde31ffe09e4039c501f05f177c16a5"
REQUIRES=""
MAINTAINER="Jay Lanagan"
EMAIL="j@lngn.net"
diff --git a/network/neomutt/neomutt.SlackBuild b/network/neomutt/neomutt.SlackBuild
index 51d1f52858..53bc4ec66b 100644
--- a/network/neomutt/neomutt.SlackBuild
+++ b/network/neomutt/neomutt.SlackBuild
@@ -28,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=neomutt
-VERSION=${VERSION:-20240329}
+VERSION=${VERSION:-20240425}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/neomutt/neomutt.info b/network/neomutt/neomutt.info
index fab43ad595..b8d67e12fb 100644
--- a/network/neomutt/neomutt.info
+++ b/network/neomutt/neomutt.info
@@ -1,8 +1,8 @@
PRGNAM="neomutt"
-VERSION="20240329"
+VERSION="20240425"
HOMEPAGE="https://github.com/neomutt/neomutt"
-DOWNLOAD="https://github.com/neomutt/neomutt/archive/20240329/neomutt-20240329.tar.gz"
-MD5SUM="3ea5e0b732ecff28a2105041602e6222"
+DOWNLOAD="https://github.com/neomutt/neomutt/archive/20240425/neomutt-20240425.tar.gz"
+MD5SUM="136fa78c0ded07adb227446bdd5842c1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/nessus/README b/network/nessus/README
index 6833489890..2ca8ce9a48 100644
--- a/network/nessus/README
+++ b/network/nessus/README
@@ -1,6 +1,6 @@
Nessus Vulnerability Scanner
-Nessus Professional, the industry's most widely deployed vulnerability
+Nessus Professional, the industry's most widely deployed vulnerability
assessment solution helps you reduce your organization's attack surface
and ensure compliance. Nessus features high-speed asset discovery,
configuration auditing, target profiling, malware detection, sensitive
diff --git a/network/nessus/nessus.SlackBuild b/network/nessus/nessus.SlackBuild
index 780603c7f3..22cdab661d 100644
--- a/network/nessus/nessus.SlackBuild
+++ b/network/nessus/nessus.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nessus
-VERSION=${VERSION:-10.7.0}
+VERSION=${VERSION:-10.7.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/nessus/nessus.info b/network/nessus/nessus.info
index aabe4b852c..3661a91f7f 100644
--- a/network/nessus/nessus.info
+++ b/network/nessus/nessus.info
@@ -1,10 +1,10 @@
PRGNAM="nessus"
-VERSION="10.7.0"
+VERSION="10.7.2"
HOMEPAGE="https://www.tenable.com/products/nessus"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.7.0-el7.x86_64.rpm"
-MD5SUM_x86_64="618234819d2fc39c49890abb595c87e8"
+DOWNLOAD_x86_64="https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.7.2-el7.x86_64.rpm"
+MD5SUM_x86_64="7d3da436fd0759df20b6b20e56ff397e"
REQUIRES=""
MAINTAINER="Giuseppe Di Terlizzi"
EMAIL="giuseppe.diterlizzi@gmail.com"
diff --git a/network/nextcloud-desktop/nextcloud-desktop.SlackBuild b/network/nextcloud-desktop/nextcloud-desktop.SlackBuild
index 7bd204277b..5c40ac499f 100644
--- a/network/nextcloud-desktop/nextcloud-desktop.SlackBuild
+++ b/network/nextcloud-desktop/nextcloud-desktop.SlackBuild
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nextcloud-desktop
SRCNAM=desktop
-VERSION=${VERSION:-3.12.3}
+VERSION=${VERSION:-3.13.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/nextcloud-desktop/nextcloud-desktop.info b/network/nextcloud-desktop/nextcloud-desktop.info
index a6a8559331..ffb9b736b7 100644
--- a/network/nextcloud-desktop/nextcloud-desktop.info
+++ b/network/nextcloud-desktop/nextcloud-desktop.info
@@ -1,10 +1,10 @@
PRGNAM="nextcloud-desktop"
-VERSION="3.12.3"
+VERSION="3.13.0"
HOMEPAGE="https://nextcloud.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/nextcloud/desktop/archive/refs/tags/v3.12.3/desktop-3.12.3.tar.gz"
-MD5SUM_x86_64="e018bec41afc23060ea6afea6108e94f"
+DOWNLOAD_x86_64="https://github.com/nextcloud/desktop/archive/refs/tags/v3.13.0/desktop-3.13.0.tar.gz"
+MD5SUM_x86_64="11eea2f5c2909114ddb4b74ff21b67b7"
REQUIRES=""
MAINTAINER="Andrew Payne"
EMAIL="phalange@komputermatrix.com"
diff --git a/network/ngrok/ngrok.SlackBuild b/network/ngrok/ngrok.SlackBuild
index 17a21d9468..b9646a6679 100644
--- a/network/ngrok/ngrok.SlackBuild
+++ b/network/ngrok/ngrok.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ngrok
-VERSION=${VERSION:-3.5.0}
+VERSION=${VERSION:-3.8.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/ngrok/ngrok.info b/network/ngrok/ngrok.info
index 99ae27e927..94f5f20803 100644
--- a/network/ngrok/ngrok.info
+++ b/network/ngrok/ngrok.info
@@ -1,10 +1,10 @@
PRGNAM="ngrok"
-VERSION="3.5.0"
+VERSION="3.8.0"
HOMEPAGE="https://ngrok.com"
-DOWNLOAD="https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-3.5.0-linux-386.tar.gz"
-MD5SUM="a6049195365e77c3cc30abc53d57fc5a"
-DOWNLOAD_x86_64="https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-3.5.0-linux-amd64.tar.gz"
-MD5SUM_x86_64="0fff0e38125e1b90663b1a7a9c90c701"
+DOWNLOAD="https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-3.8.0-linux-386.tar.gz"
+MD5SUM="a9c770d5d0d4f893b12d9067d0c8b8bc"
+DOWNLOAD_x86_64="https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-3.8.0-linux-amd64.tar.gz"
+MD5SUM_x86_64="4674abecd13591051680bf0268bf48fc"
REQUIRES=""
MAINTAINER="Ebben Aries"
EMAIL="slackbuilds@dscp.org"
diff --git a/network/noip-duc/README b/network/noip-duc/README
new file mode 100644
index 0000000000..af93171fe0
--- /dev/null
+++ b/network/noip-duc/README
@@ -0,0 +1,15 @@
+Dynamic DNS Update Client for Linux
+
+Keep your current IP address in sync with your No-IP host or domain
+Default behavior is to check every 5 minutes.
+
+NOTE: This script requires network access
+
+Usage:
+noip-duc -g myhostname.ddns.net -u username -p password
+
+If you’re using DDNS Keys use all.ddnskey.com
+and DDNS Key Username/Password.
+
+noip-duc -g all.ddnskey.com --username <DDNS Key Username>
+--password <DDNS Key Password>
diff --git a/network/noip-duc/noip-duc.SlackBuild b/network/noip-duc/noip-duc.SlackBuild
new file mode 100644
index 0000000000..228b1145e0
--- /dev/null
+++ b/network/noip-duc/noip-duc.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+# Slackware build script for noip-duc
+
+# Copyright 2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=noip-duc
+VERSION=${VERSION:-3.0.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf ${PRGNAM}_$VERSION
+tar xvf $CWD/${PRGNAM}_$VERSION.tar.gz
+cd ${PRGNAM}_$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+export PATH="/opt/rust16/bin:$PATH"
+if [ -z "$LD_LIBRARY_PATH" ]; then
+ export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX"
+else
+ export LD_LIBRARY_PATH="/opt/rust16/lib$LIBDIRSUFFIX:$LD_LIBRARY_PATH"
+fi
+
+cargo build --release
+
+mkdir -p $PKG/usr/bin
+
+cp target/release/noip-duc $PKG/usr/bin
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.md README.md LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/noip-duc/noip-duc.info b/network/noip-duc/noip-duc.info
new file mode 100644
index 0000000000..bf5211f4d7
--- /dev/null
+++ b/network/noip-duc/noip-duc.info
@@ -0,0 +1,10 @@
+PRGNAM="noip-duc"
+VERSION="3.0.0"
+HOMEPAGE="https://www.noip.com"
+DOWNLOAD="https://dmej8g5cpdyqd.cloudfront.net/downloads/noip-duc_3.0.0.tar.gz"
+MD5SUM="8cf9a6f8b94d48f1897d9ef860727cf6"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="rust16"
+MAINTAINER="Willy Sudiarto Raharjo"
+EMAIL="willysr@slackbuilds.org"
diff --git a/network/noip-duc/slack-desc b/network/noip-duc/slack-desc
new file mode 100644
index 0000000000..61be775e9a
--- /dev/null
+++ b/network/noip-duc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+noip-duc: noip-duc (Dynamic DNS Update Client)
+noip-duc:
+noip-duc: Keep your current IP address in sync with your No-IP host or domain
+noip-duc:
+noip-duc:
+noip-duc: Project: https://www.noip.com
+noip-duc:
+noip-duc:
+noip-duc:
+noip-duc:
+noip-duc:
diff --git a/network/opera/opera.SlackBuild b/network/opera/opera.SlackBuild
index 23ef5941f3..8737eb06c7 100644
--- a/network/opera/opera.SlackBuild
+++ b/network/opera/opera.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=opera
-VERSION=${VERSION:-109.0.5097.45}
+VERSION=${VERSION:-109.0.5097.68}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/opera/opera.info b/network/opera/opera.info
index 302d6b2447..ebf9778096 100644
--- a/network/opera/opera.info
+++ b/network/opera/opera.info
@@ -1,10 +1,10 @@
PRGNAM="opera"
-VERSION="109.0.5097.45"
+VERSION="109.0.5097.68"
HOMEPAGE="https://www.opera.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://get.geo.opera.com/pub/opera/desktop/109.0.5097.45/linux/opera-stable_109.0.5097.45_amd64.deb"
-MD5SUM_x86_64="8f42e3889190c6ef7de87101dff70028"
+DOWNLOAD_x86_64="https://get.geo.opera.com/pub/opera/desktop/109.0.5097.68/linux/opera-stable_109.0.5097.68_amd64.deb"
+MD5SUM_x86_64="747fa8c00196c238742bb01938c78fe7"
REQUIRES=""
MAINTAINER="Dimitris Zlatanidis"
EMAIL="dslackw@gmail.com"
diff --git a/network/owncloud-server/owncloud-server.info b/network/owncloud-server/owncloud-server.info
index ecd6605907..da1e51b1ff 100644
--- a/network/owncloud-server/owncloud-server.info
+++ b/network/owncloud-server/owncloud-server.info
@@ -1,7 +1,7 @@
PRGNAM="owncloud-server"
VERSION="8.2.11"
HOMEPAGE="https://owncloud.org/"
-DOWNLOAD="https://download.owncloud.org/community/owncloud-8.2.11.tar.bz2"
+DOWNLOAD="https://attic.owncloud.com/server/stable/owncloud-8.2.11.tar.bz2"
MD5SUM="43e3b4c53d4e819f612296c032cd2d37"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/network/phppgadmin/phppgadmin.SlackBuild b/network/phppgadmin/phppgadmin.SlackBuild
index 86bd57a71b..ef63e95e2c 100644
--- a/network/phppgadmin/phppgadmin.SlackBuild
+++ b/network/phppgadmin/phppgadmin.SlackBuild
@@ -24,12 +24,13 @@
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM='phppgadmin'
-VERSION=${VERSION:-7.13.0}
+PRGNAM="phppgadmin"
+VERSION=${VERSION:-7.14.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=phpPgAdmin
+SUFF=${SUFF:--mod}
DOCROOT=${DOCROOT:-/usr/share}
PHPUSER=${PHPUSER:-root}
@@ -58,8 +59,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
-cd $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION$SUFF.tar.gz
+cd $SRCNAM-$VERSION$SUFF
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -68,8 +69,8 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir -p $PKG$DOCROOT
-cp -a $TMP/$SRCNAM-$VERSION $PKG$DOCROOT
-( cd $PKG$DOCROOT; ln -s ./$SRCNAM-$VERSION ./$PRGNAM )
+cp -a $TMP/$SRCNAM-$VERSION$SUFF $PKG$DOCROOT
+( cd $PKG$DOCROOT; ln -s ./$SRCNAM-$VERSION$SUFF ./$PRGNAM )
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
@@ -80,8 +81,8 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/etc/httpd/conf.d
cp -a $CWD/http-pgadmin.conf $PKG/etc/httpd/conf.d/phppgadmin.conf.new
-chown -R $PHPUSER:$PHPGROUP $PKG$DOCROOT/$SRCNAM-$VERSION
-chmod -R o-rwx $PKG$DOCROOT/$SRCNAM-$VERSION
+chown -R $PHPUSER:$PHPGROUP $PKG$DOCROOT/$SRCNAM-$VERSION$SUFF
+chmod -R o-rwx $PKG$DOCROOT/$SRCNAM-$VERSION$SUFF
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/network/phppgadmin/phppgadmin.info b/network/phppgadmin/phppgadmin.info
index 73bfd5f275..25d5f5a8da 100644
--- a/network/phppgadmin/phppgadmin.info
+++ b/network/phppgadmin/phppgadmin.info
@@ -1,8 +1,8 @@
PRGNAM="phppgadmin"
-VERSION="7.13.0"
-HOMEPAGE="https://github.com/phppgadmin/phppgadmin"
-DOWNLOAD="https://github.com/phppgadmin/phppgadmin/releases/download/REL_7-13-0/phpPgAdmin-7.13.0.tar.gz"
-MD5SUM="8a38dca6bd0bcdc9481c88f1ac0c0f80"
+VERSION="7.14.7"
+HOMEPAGE="https://github.com/ReimuHakurei/phpPgAdmin"
+DOWNLOAD="https://github.com/ReimuHakurei/phpPgAdmin/archive/v7.14.7-mod/phpPgAdmin-7.14.7-mod.tar.gz"
+MD5SUM="ede785d9f3d7c85342f2bb858fd96b34"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="php-pgsql"
diff --git a/network/purple-hangouts/LICENSE b/network/purple-hangouts/LICENSE
deleted file mode 100644
index bab24037e7..0000000000
--- a/network/purple-hangouts/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- purple-hangouts SlackBuild script
- Copyright (C) 2019 Marian Marinov
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- purple-hangouts Copyright (C) 2019 Marian Marinov
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/network/purple-hangouts/README b/network/purple-hangouts/README
deleted file mode 100644
index 2648b4d1ac..0000000000
--- a/network/purple-hangouts/README
+++ /dev/null
@@ -1,10 +0,0 @@
-Hangouts plugin for libpurple
-
-A replacement prpl for Hangouts in Pidgin/libpurple to support the
-proprietary protocol that Google uses for its Hangouts service.
-So far it supports all the fun things that aren't part of the XMPP
-interface, such as Group Chats, synchronised history between devices
-and SMS support via Google Voice.
-
-Homepage: https://bitbucket.org/EionRobb/purple-hangouts
-
diff --git a/network/purple-hangouts/purple-hangouts.info b/network/purple-hangouts/purple-hangouts.info
deleted file mode 100644
index def421fa90..0000000000
--- a/network/purple-hangouts/purple-hangouts.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="purple-hangouts"
-VERSION="effc9b41df8c"
-HOMEPAGE="https://bitbucket.org/EionRobb/purple-hangouts"
-DOWNLOAD="https://slackware.uk/~urchlay/src/effc9b41df8c.zip"
-MD5SUM="35cc2a7bf8ae191c04d630783b0f6e55"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="protobuf-c"
-MAINTAINER="Marian Marinov"
-EMAIL="mm@yuhu.biz"
diff --git a/network/purple-hangouts/slack-desc b/network/purple-hangouts/slack-desc
deleted file mode 100644
index 83c5176e74..0000000000
--- a/network/purple-hangouts/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-purple-hangouts: purple-hangouts (Hangouts plugin for libpurple)
-purple-hangouts:
-purple-hangouts: A replacement prpl for Hangouts in Pidgin/libpurple to support the
-purple-hangouts: proprietary protocol that Google uses for its Hangouts service.
-purple-hangouts: So far it supports all the fun things that aren't part of the XMPP
-purple-hangouts: interface, such as Group Chats, synchronised history between devices
-purple-hangouts: and SMS support via Google Voice.
-purple-hangouts:
-purple-hangouts: Homepage: https://bitbucket.org/EionRobb/purple-hangouts
-purple-hangouts:
-purple-hangouts:
diff --git a/network/signal-desktop/signal-desktop.SlackBuild b/network/signal-desktop/signal-desktop.SlackBuild
index 935ba82bf3..8d909eebaa 100644
--- a/network/signal-desktop/signal-desktop.SlackBuild
+++ b/network/signal-desktop/signal-desktop.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=signal-desktop
-VERSION=${VERSION:-7.4.0}
+VERSION=${VERSION:-7.7.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/signal-desktop/signal-desktop.info b/network/signal-desktop/signal-desktop.info
index c828a99176..60b89ccfb2 100644
--- a/network/signal-desktop/signal-desktop.info
+++ b/network/signal-desktop/signal-desktop.info
@@ -1,10 +1,10 @@
PRGNAM="signal-desktop"
-VERSION="7.4.0"
+VERSION="7.7.0"
HOMEPAGE="https://signal.org/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_7.4.0_amd64.deb"
-MD5SUM_x86_64="6bf4be996883f361d25bdff81ffc3120"
+DOWNLOAD_x86_64="https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_7.7.0_amd64.deb"
+MD5SUM_x86_64="7f64900eb662001044eb269bb3a5d99d"
REQUIRES=""
MAINTAINER="ArTourter"
EMAIL="artourter@gmail.com"
diff --git a/network/teamviewer/teamviewer.SlackBuild b/network/teamviewer/teamviewer.SlackBuild
index b1819a9c35..adde76fee7 100644
--- a/network/teamviewer/teamviewer.SlackBuild
+++ b/network/teamviewer/teamviewer.SlackBuild
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=teamviewer
-VERSION=${VERSION:-15.52.3}
+VERSION=${VERSION:-15.53.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/teamviewer/teamviewer.info b/network/teamviewer/teamviewer.info
index 4718349a69..694cb14dc0 100644
--- a/network/teamviewer/teamviewer.info
+++ b/network/teamviewer/teamviewer.info
@@ -1,10 +1,10 @@
PRGNAM="teamviewer"
-VERSION="15.52.3"
+VERSION="15.53.6"
HOMEPAGE="https://www.teamviewer.com/"
-DOWNLOAD="https://dl.teamviewer.com/download/linux/version_15x/teamviewer_15.52.3_i386.deb"
-MD5SUM="2a7e6d6b4928c594ba91735d643f8fad"
-DOWNLOAD_x86_64="https://dl.teamviewer.com/download/linux/version_15x/teamviewer_15.52.3_amd64.deb"
-MD5SUM_x86_64="31556dcdf43ce4e0aed3dd091d2bda41"
+DOWNLOAD="https://dl.teamviewer.com/download/linux/version_15x/teamviewer_15.53.6_i386.deb"
+MD5SUM="20191185cd9f41ad2bb8d1f5eb4bbcbc"
+DOWNLOAD_x86_64="https://dl.teamviewer.com/download/linux/version_15x/teamviewer_15.53.6_amd64.deb"
+MD5SUM_x86_64="208ede881c2c8d54aaf78aee3fc72fe8"
REQUIRES="libminizip"
MAINTAINER="ArTourter"
EMAIL="artourter@gmail.com"
diff --git a/network/telegram/telegram.SlackBuild b/network/telegram/telegram.SlackBuild
index a11760559c..39c5f9fb2d 100644
--- a/network/telegram/telegram.SlackBuild
+++ b/network/telegram/telegram.SlackBuild
@@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=telegram
SRCNAM=tsetup
SRCDIR=Telegram
-VERSION=${VERSION:-4.16.8}
+VERSION=${VERSION:-5.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/telegram/telegram.info b/network/telegram/telegram.info
index e50a9dc192..91c42bb953 100644
--- a/network/telegram/telegram.info
+++ b/network/telegram/telegram.info
@@ -1,10 +1,10 @@
PRGNAM="telegram"
-VERSION="4.16.8"
+VERSION="5.0.0"
HOMEPAGE="https://telegram.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://updates.tdesktop.com/tlinux/tsetup.4.16.8.tar.xz"
-MD5SUM_x86_64="ee1a670cc7e8da43aba7a78d38b20eaf"
+DOWNLOAD_x86_64="https://updates.tdesktop.com/tlinux/tsetup.5.0.0.tar.xz"
+MD5SUM_x86_64="74350850bc7c2dd7fa065811ea5075f2"
REQUIRES=""
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/network/tor-browser/tor-browser.SlackBuild b/network/tor-browser/tor-browser.SlackBuild
index 66004f1b3c..a624225a37 100644
--- a/network/tor-browser/tor-browser.SlackBuild
+++ b/network/tor-browser/tor-browser.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for tor-browser
-# Copyright 2014-2023 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2014-2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -44,6 +44,10 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
+if [ $ARCH == "i586" ]; then
+ ARCH="i686"
+fi
+
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
diff --git a/network/translate/translate.info b/network/translate/translate.info
index a4e09be129..349b9cd302 100644
--- a/network/translate/translate.info
+++ b/network/translate/translate.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://files.pythonhosted.org/packages/d1/9d/692066b9e26176a93ce627bf
MD5SUM="3ebcafb25c270e785c5f18580c4ad0c4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="python3-libretranslatepy python3-lxml click"
+REQUIRES="python3-libretranslatepy python3-lxml click python3-pytest-runner"
MAINTAINER="Dimitris Zlatanidis"
EMAIL="dslackw@gmail.com"
diff --git a/network/viber/viber.SlackBuild b/network/viber/viber.SlackBuild
index 81a497720a..b54fcd1295 100644
--- a/network/viber/viber.SlackBuild
+++ b/network/viber/viber.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=viber
-VERSION=${VERSION:-21.0.0.1}
+VERSION=${VERSION:-21.8.0.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/viber/viber.info b/network/viber/viber.info
index efc5945b88..7dee10b22a 100644
--- a/network/viber/viber.info
+++ b/network/viber/viber.info
@@ -1,10 +1,10 @@
PRGNAM="viber"
-VERSION="21.0.0.1"
+VERSION="21.8.0.11"
HOMEPAGE="https://www.viber.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="http://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"
-MD5SUM_x86_64="7e93a64efebd9112df3ac7f8dc0c4580"
+MD5SUM_x86_64="376ebe7c7b798dc722e8dc2c71d3bcee"
REQUIRES="snappy tslib"
MAINTAINER="Petar Petrov"
EMAIL="slackalaxy@gmail.com"
diff --git a/network/vimb/vimb.SlackBuild b/network/vimb/vimb.SlackBuild
index e62c7acc5b..f2dbe3c8b2 100644
--- a/network/vimb/vimb.SlackBuild
+++ b/network/vimb/vimb.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vimb
VERSION=${VERSION:-3.7.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/vimb/vimb.info b/network/vimb/vimb.info
index d5c1cb95aa..34dc7ac89b 100644
--- a/network/vimb/vimb.info
+++ b/network/vimb/vimb.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/fanglingsu/vimb/archive/3.7.0/vimb-3.7.0.tar.gz"
MD5SUM="4052a71111eb31e5b5a39a75c460d441"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="webkit2gtk"
+REQUIRES="webkit2gtk4.1"
MAINTAINER="Leonard Schmidt"
EMAIL="lems@gmx.net"
diff --git a/network/vivaldi/vivaldi.SlackBuild b/network/vivaldi/vivaldi.SlackBuild
index 0b8ba3e053..fc62e00cb6 100644
--- a/network/vivaldi/vivaldi.SlackBuild
+++ b/network/vivaldi/vivaldi.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vivaldi
-VERSION=${VERSION:-6.6.3271.61}
+VERSION=${VERSION:-6.7.3329.21}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/vivaldi/vivaldi.info b/network/vivaldi/vivaldi.info
index 2dddcfae85..c75d268aaa 100644
--- a/network/vivaldi/vivaldi.info
+++ b/network/vivaldi/vivaldi.info
@@ -1,12 +1,12 @@
PRGNAM="vivaldi"
-VERSION="6.6.3271.61"
+VERSION="6.7.3329.21"
HOMEPAGE="https://vivaldi.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://downloads.vivaldi.com/stable/vivaldi-stable_6.6.3271.61-1_amd64.deb \
- https://update.vivaldi.com/update/1.0/relnotes/6.6.3271.61.html"
-MD5SUM_x86_64="8f5399008b3ce407841768b2e88d84cf \
- 5dcbd276bf780eb1106b8ac254e2a223"
+DOWNLOAD_x86_64="https://downloads.vivaldi.com/stable/vivaldi-stable_6.7.3329.21-1_amd64.deb \
+ https://update.vivaldi.com/update/1.0/relnotes/6.7.3329.21.html"
+MD5SUM_x86_64="ff07df08201dd7d9d7d99351e4833fb2 \
+ 1d86b27fde02e996db65351adcc99b91"
REQUIRES=""
MAINTAINER="Ruari Oedegaard"
EMAIL="sbo@ruari.com"
diff --git a/network/vmware-horizon-client/README b/network/vmware-horizon-client/README
index 5548d422ea..abbfbef819 100644
--- a/network/vmware-horizon-client/README
+++ b/network/vmware-horizon-client/README
@@ -1,31 +1,6 @@
-The VMware Horizon Client for Linux, allowing you to use your
+The VMware Horizon Client for Linux allows you to use your
Slackware box as a thin client and lets you connect to your company's
-Virtual Desktop Infrastructure using the proprietary VMware View 6
-PCoIP protocol.
+Virtual Desktop Infrastructure using the proprietary VMware View
+protocol.
-*ATTENTION*: This build script installs binary, proprietary
-software. Only use it if you need the proprietary parts and you are
-OK with installing and using proprietary software. By installing
-this SlackBuild you agree to the EULA you'll find installed in
-/usr/doc/vmware-horizon-client-4.3.0/. If you do not agree, uninstall
-the package.
-
-This SlackBuild installs multiple components. At the moment only the
-PCoIP and the Smart Card component seem to work. USB redirection and
-Virtual Printing won't work.
-
-To deactivate one of the working components, use the installation
-options
-
-PCOIP="NO"
-
-and
-
-SMARTCRD="NO"
-
-You could try to activate USB support by setting USB="YES". But there
-will be a problem with libcrypto. If you find a fix, please email me.
-
-This application is a 32bit application. It won't work on a
-Slackware64 system without multilib capability. But it has been tested
-and works with a multilib setup.
+This build script installs the Debian binary package.
diff --git a/network/vmware-horizon-client/doinst.sh b/network/vmware-horizon-client/doinst.sh
new file mode 100644
index 0000000000..4e7bf288e1
--- /dev/null
+++ b/network/vmware-horizon-client/doinst.sh
@@ -0,0 +1,26 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if ! /etc/init.d/ftscanhv start > /dev/null 2>&1; then
+ echo "Warning: The daemon for Scanner redirection fails to start!"
+fi
+if ! /etc/init.d/ftsprhv start > /dev/null 2>&1; then
+ echo "Warning: The daemon for SerialPort redirection fails to start!"
+fi
+
+if [ -x /usr/lib64/vmware/view/integratedPrinting/integrated-printing-setup.sh ]; then
+ /usr/lib64/vmware/view/integratedPrinting/integrated-printing-setup.sh -i || true
+fi
+
+if ! /etc/init.d/vmware-USBArbitrator start; then
+ echo "Warning: The daemon for USB redirection fails to start!"
+fi
+
+python3 /usr/lib64/vmware/view/urlRedirection/install-url-redirection.py -i || true
+
+sed -i '1i127.0.0.1 view-localhost' /etc/hosts
+
+if ! udevadm control --reload-rules || ! udevadm trigger; then
+ echo "Warning: Error reloading udev HID rules, failed to configure HID devices!"
+fi
diff --git a/network/vmware-horizon-client/douninst.sh b/network/vmware-horizon-client/douninst.sh
new file mode 100644
index 0000000000..fea504ccb8
--- /dev/null
+++ b/network/vmware-horizon-client/douninst.sh
@@ -0,0 +1,3 @@
+rm /usr/bin/prlinuxcupsppd
+rm /usr/lib64/cupsPPD/prlinuxcupsppd
+rmdir --ignore-fail-on-non-empty /usr/lib64/cupsPPD
diff --git a/network/vmware-horizon-client/slack-desc b/network/vmware-horizon-client/slack-desc
index 9d4818d909..e663a105f6 100644
--- a/network/vmware-horizon-client/slack-desc
+++ b/network/vmware-horizon-client/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-vmware-horizon-client: vmware-horizon-client (VMWare Horizon Client with PCoIP support)
+vmware-horizon-client: vmware-horizon-client (VMWare Horizon Client)
vmware-horizon-client:
-vmware-horizon-client: The VMware Horizon Client for Linux, optimised for VMware horizon 6,
-vmware-horizon-client: allowing you to use your Slackware box as a thin client and connects
-vmware-horizon-client: you to your company's Virtual Desktop Infrastructure, even if they
-vmware-horizon-client: use the proprietary VMware Horizon 6 PCoIP protocol.
-vmware-horizon-client: Only use this package if you need the proprietary parts.
+vmware-horizon-client: The VMware Horizon Client for Linux allows you to use your Slackware
+vmware-horizon-client: box as a thin client and connects you to your company's Virtual
+vmware-horizon-client: Desktop Infrastructure, even if they use the proprietary VMware
+vmware-horizon-client: Horizon protocol.
vmware-horizon-client:
+vmware-horizon-client: Homepage: https:/www.vmware.com
vmware-horizon-client:
vmware-horizon-client:
vmware-horizon-client:
diff --git a/network/vmware-horizon-client/vmware-bundle.eclass b/network/vmware-horizon-client/vmware-bundle.eclass
deleted file mode 100644
index 261b6e1cae..0000000000
--- a/network/vmware-horizon-client/vmware-bundle.eclass
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/vmware-bundle.eclass,v 1.2 2011/08/22 04:46:32 vapier Exp $
-
-# @ECLASS: vmware-bundle.eclass
-# @MAINTAINER:
-# vmware@gentoo.org
-# @AUTHOR:
-# Matt Whitlock <matt@whitlock.name>
-# @BLURB: Provides extract functionality for vmware products bundles
-
-# This version of the file has been modified to work as part of the vmware SlackBuild. Since the
-# modifications are limited to renaming functions, we'll keep the original header
-
-extract_bundle_component() {
- local bundle=${1:?} component=${2:?} dest=${3:-${2}}
- cat > "${CWD}"/list-bundle-components.xsl <<-EOF
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output omit-xml-declaration="yes"/>
- <xsl:template match="text()"/>
- <xsl:template match="/bundle/components/component">
- <xsl:value-of select="@offset"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@size"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>&#10;</xsl:text>
- </xsl:template>
- </xsl:stylesheet>
- EOF
- local -i bundle_size=$(stat -L -c'%s' "${bundle}")
- local -i bundle_manifestOffset=$(od -An -j$((bundle_size-36)) -N4 -tu4 "${bundle}")
- local -i bundle_manifestSize=$(od -An -j$((bundle_size-40)) -N4 -tu4 "${bundle}")
- local -i bundle_dataOffset=$(od -An -j$((bundle_size-44)) -N4 -tu4 "${bundle}")
- local -i bundle_dataSize=$(od -An -j$((bundle_size-52)) -N8 -tu8 "${bundle}")
- tail -c+$((bundle_manifestOffset+1)) "${bundle}" 2> /dev/null | head -c$((bundle_manifestSize)) |
- xsltproc "${CWD}"/list-bundle-components.xsl - |
- while read -r component_offset component_size component_name ; do
- if [[ ${component_name} == ${component} ]] ; then
- echo "Extracting '${component_name}' component from '$(basename "${bundle}")'"
- extract_component "${bundle}" "${dest}" $((bundle_dataOffset+component_offset))
- echo "Done."
- fi
- done
-}
-
-extract_component() {
- local component=${1:?} dest=${2:-.}
- local -i offset=${3}
- cat > "${CWD}"/list-component-files.xsl <<-EOF
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output omit-xml-declaration="yes"/>
- <xsl:template match="text()"/>
- <xsl:template match="/component/fileset/file">
- <xsl:value-of select="@offset"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@compressedSize"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@uncompressedSize"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@path"/>
- <xsl:text>&#10;</xsl:text>
- </xsl:template>
- </xsl:stylesheet>
- EOF
- local -i component_manifestOffset=$(od -An -j$((offset+9)) -N4 -tu4 "${component}")
- local -i component_manifestSize=$(od -An -j$((offset+13)) -N4 -tu4 "${component}")
- local -i component_dataOffset=$(od -An -j$((offset+17)) -N4 -tu4 "${component}")
- local -i component_dataSize=$(od -An -j$((offset+21)) -N8 -tu8 "${component}")
- tail -c+$((offset+component_manifestOffset+1)) "${component}" 2> /dev/null |
- head -c$((component_manifestSize)) | xsltproc "${CWD}"/list-component-files.xsl - |
- while read -r file_offset file_compressedSize file_uncompressedSize file_path ; do
- if [[ ${file_path} ]] ; then
- echo -n '.'
- file_path="${dest}/${file_path}"
- mkdir -p "$(dirname "${file_path}")" || die
- tail -c+$((offset+component_dataOffset+file_offset+1)) "${component}" 2> /dev/null |
- head -c$((file_compressedSize)) | gzip -cd > "${file_path}" || die
- fi
- done
- echo
-}
diff --git a/network/vmware-horizon-client/vmware-horizon-client.SlackBuild b/network/vmware-horizon-client/vmware-horizon-client.SlackBuild
index d8c70d3605..4216cc2f62 100644
--- a/network/vmware-horizon-client/vmware-horizon-client.SlackBuild
+++ b/network/vmware-horizon-client/vmware-horizon-client.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for vmware-horizon-client
# Copyright 2015 Beni Keller, Schwyz, Switzerland
+# Copyright 2024 Erich Ritz, Jenks, Oklahoma, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,76 +26,44 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vmware-horizon-client
-VERSION=${VERSION:-3.4.0}
+SRCNAM=VMware-Horizon-Client
+VERSION=${VERSION:-2312.1_8.12.1_23543969}
+DEBVERSION=${VERSION//_/-}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-ARCH=i586
-_BUILD=2769709
-
-# Install PCOIP component
-PCOIP=${PCOIP:-YES}
-# Install USB-redirection component
-# This is deactivated by default because
-# It's not working with the current version of libcrypto.
-USB=${USB:-NO}
-# Install Smartcard component
-SMARTCRD=${SMARTCRD:-YES}
-# Install Real Time Audio and Video component
-RTAV=${RTAV:-YES}
-
-echo $PCOIP
-break
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
-fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-BUNDLE=$CWD/VMware-Horizon-Client-$VERSION-$_BUILD.x86.bundle
-# All the components we support with this SlackBuild. The
-# 'virtual-printing' support is excluded because I have no
-# way to test whether it's working.
-COMPONENTS="client pcoip usb smartcard rtav"
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-
-# We use the Gentoo eclass to extract components from the bundle.
-# These are the settings needed for these functions.
-
-
-
-
-export T="$CWD"
-
-ebegin() {
- echo -n "Begin ${1}: "
-}
-eend() {
- echo 'done'
-}
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
-source "$CWD/vmware-bundle.eclass"
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
-# Extracting the components from the bundle
-for COMPONENT in $COMPONENTS; do
- extract_bundle_component $BUNDLE "vmware-horizon-$COMPONENT" "$CWD/extract/vmware-horizon-$COMPONENT"
-done
+# Upstream only has binary support for x86_64 at present.
+if [ "$ARCH" = "x86_64" ]; then
+ DEBARCH="x64"
+else
+ echo "Sorry, the VMware Horizon Client binary is currently available for x86_64 only."
+ exit 1
+fi
-cd $CWD/extract
+set -e
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $PKG
+ar p $CWD/${SRCNAM}-${DEBVERSION}.$DEBARCH.deb data.tar.gz | tar xzv
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -102,69 +71,52 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Dirty hack copied from Arch PKGBUILD
-# https://aur.archlinux.org/packages/vm/vmware-horizon-client
-# Helps linking to the correct version of the OpenSSL libs
-for FILE in $(find "$CWD/extract/" -type f); do
- # executables and libraries only
- file --mime "${FILE}" | egrep -q "(application/x-(executable|sharedlib)|text/x-shellscript)" || continue
-
- # make executable
- chmod +x "${FILE}"
-
- # link against libudev.so.1
- #sed -i -e 's/libudev.so.0/libudev.so.1/' "${FILE}"
-
- # even openssl 1.0.1.x has library file names ending in .so.1.0.0
- sed -i -e 's/libssl.so.1.0.1/libssl.so.1.0.0/' \
- -e 's/libcrypto.so.1.0.1/libcrypto.so.1.0.0/' \
- "${FILE}"
-done
-# Delete these libraries. We'll recreate these files later as links
-rm "$CWD"/extract/vmware-horizon-pcoip/pcoip/lib/vmware/lib{crypto,ssl}.so.1.0.1
-
-# We install the client without the other components
-# Since it's a binary distribution we just copy the files
-cd $CWD/extract/vmware-horizon-client
-
-mkdir -p "$PKG/usr/"
-mkdir -p "$PKG/usr/doc/"
-
-cp -a bin/ "$PKG/usr/"
-cp -a lib/ "$PKG/usr/"
-cp -a share/ "$PKG/usr/"
-cp -a doc/ "$PKG/usr/doc/$PRGNAM-$VERSION/"
-cp -a debug/ "$PKG/usr/doc/$PRGNAM-$VERSION/"
+# Move lib to lib64
+mv $PKG/usr/lib $PKG/usr/lib64
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/bin/vmware-appstub
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/bin/vmware-url-filter
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/bin/vmware-view
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/bin/vmware-view-lib-scan
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/bin/vmware-view-log-collector
+sed -i 's-/usr/lib-/usr/lib64-g' $PKG/usr/lib64/vmware/view/integratedPrinting/integrated-printing-setup.sh
+
+#find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+# | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+#find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+# | cut -f 1 -d : | xargs chmod 755 2> /dev/null || true
+
+# Handle Debian's postinst:
+ln -s /lib64/libudev.so.1 $PKG/usr/lib64/vmware/libudev.so.0
+ln -s /usr/lib64/libsecret-1.so $PKG/usr/lib64/vmware/libsecret.so
+mkdir -p $PKG/etc/rc0.d
+mkdir -p $PKG/etc/rc3.d
+mkdir -p $PKG/etc/rc4.d
+mkdir -p $PKG/etc/rc6.d
+ln -s /etc/init.d/ftsprhv $PKG/etc/rc0.d/K08ftsprhv
+ln -s /etc/init.d/ftsprhv $PKG/etc/rc6.d/K08ftsprhv
+ln -s /etc/init.d/ftsprhv $PKG/etc/rc3.d/S50ftsprhv
+ln -s /etc/init.d/ftsprhv $PKG/etc/rc4.d/S50ftsprhv
+ln -s /etc/init.d/ftscanhv $PKG/etc/rc0.d/K08ftscanhv
+ln -s /etc/init.d/ftscanhv $PKG/etc/rc6.d/K08ftscanhv
+ln -s /etc/init.d/ftscanhv $PKG/etc/rc3.d/S50ftscanhv
+ln -s /etc/init.d/ftscanhv $PKG/etc/rc4.d/S50ftscanhv
+ln -s /etc/init.d/vmware-USBArbitrator $PKG/etc/rc0.d/K01vmware-USBArbitrator
+ln -s /etc/init.d/vmware-USBArbitrator $PKG/etc/rc6.d/K01vmware-USBArbitrator
+ln -s /etc/init.d/vmware-USBArbitrator $PKG/etc/rc3.d/S01vmware-USBArbitrator
+ln -s /etc/init.d/vmware-USBArbitrator $PKG/etc/rc4.d/S01vmware-USBArbitrator
+ln -sf /usr/lib64/vmware/view/usb/vmware-usbarbitrator $PKG/usr/bin/vmware-usbarbitrator
+chmod +755 $PKG/usr/lib64/vmware/view/html5mmr/*.so*
+chmod +755 $PKG/usr/lib64/vmware/view/vdpService/webrtcRedir/libwebrtc_sharedlib.so
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mv $PKG/usr/share/doc/vmware-horizon-client/* $PKG/usr/doc/$PRGNAM-$VERSION/
+rm -rf $PKG/usr/share/doc
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-# We install the components
-if [ "$PCOIP" == "YES" ]; then
- cd ../vmware-horizon-pcoip
- cp -a pcoip/lib/* "$PKG/usr/lib/"
- cp -a pcoip/bin/* "$PKG/usr/bin/"
- # We create the symbolic links for the libraries
- ln -sf ../../lib/libcrypto.so.1.0.0 "$PKG/usr/lib/vmware/libcrypto.so.1.0.0"
- ln -sf ../../lib/libssl.so.1.0.0 "$PKG/usr/lib/vmware/libssl.so.1.0.0"
-fi
-
-if [ "$USB" == "YES" ]; then
- cd ../vmware-horizon-usb
- cp -a bin/* "$PKG/usr/bin/"
-fi
-
-if [ "$SMARTCRD" == "YES" ]; then
- cd ../vmware-horizon-smartcard
- cp -a lib/* "$PKG/usr/lib/"
-fi
-
-if [ "$RTAV" == "YES" ]; then
- cd ../vmware-horizon-rtav
- cp -a lib/* "$PKG/usr/lib/"
-fi
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/douninst.sh > $PKG/install/douninst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/vmware-horizon-client/vmware-horizon-client.info b/network/vmware-horizon-client/vmware-horizon-client.info
index f5b507edfe..a8583ee4f6 100644
--- a/network/vmware-horizon-client/vmware-horizon-client.info
+++ b/network/vmware-horizon-client/vmware-horizon-client.info
@@ -1,10 +1,10 @@
PRGNAM="vmware-horizon-client"
-VERSION="3.4.0"
-HOMEPAGE="https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_horizon_clients/3_0"
-DOWNLOAD="https://download3.vmware.com/software/view/viewclients/CART15Q1/VMware-Horizon-Client-3.4.0-2769709.x86.bundle"
-MD5SUM="8f963a6b4eea7b2625e1e9aecd130234"
-DOWNLOAD_x86_64="UNTESTED"
-MD5SUM_x86_64=""
+VERSION="2312.1_8.12.1_23543969"
+HOMEPAGE="https://customerconnect.vmware.com/downloads/info/slug/desktop_end_user_computing/vmware_horizon_clients/horizon_8"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://download3.vmware.com/software/CART25FQ1_LIN64_DebPkg_2312.1/VMware-Horizon-Client-2312.1-8.12.1-23543969.x64.deb"
+MD5SUM_x86_64="25cf7acbe05f250297f3697f4b21a636"
REQUIRES=""
-MAINTAINER="Navigium"
-EMAIL="beni.nospam@sdf.org"
+MAINTAINER="Erich Ritz"
+EMAIL="erich.public@protonmail.com"
diff --git a/network/xmrig/xmrig.SlackBuild b/network/xmrig/xmrig.SlackBuild
index 6f182923cd..0b6ada30e7 100644
--- a/network/xmrig/xmrig.SlackBuild
+++ b/network/xmrig/xmrig.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xmrig
-VERSION=${VERSION:-6.21.1}
+VERSION=${VERSION:-6.21.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/network/xmrig/xmrig.info b/network/xmrig/xmrig.info
index e2ea65a269..6727e9c63c 100644
--- a/network/xmrig/xmrig.info
+++ b/network/xmrig/xmrig.info
@@ -1,8 +1,8 @@
PRGNAM="xmrig"
-VERSION="6.21.1"
+VERSION="6.21.3"
HOMEPAGE="https://xmrig.com/"
-DOWNLOAD="https://github.com/xmrig/xmrig/archive/v6.21.1/xmrig-6.21.1.tar.gz"
-MD5SUM="072d9a86308243368a89c43c2e5d7ed4"
+DOWNLOAD="https://github.com/xmrig/xmrig/archive/v6.21.3/xmrig-6.21.3.tar.gz"
+MD5SUM="5067943a9c3d387d0833d1af2540dde6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README% hwloc"
diff --git a/network/zoom-linux/zoom-linux.SlackBuild b/network/zoom-linux/zoom-linux.SlackBuild
index 4263ee5520..ed7813e375 100644
--- a/network/zoom-linux/zoom-linux.SlackBuild
+++ b/network/zoom-linux/zoom-linux.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=zoom-linux
-VERSION=${VERSION:-6.0.0.4563} # may be overridden by source!
+VERSION=${VERSION:-6.0.2.4680} # may be overridden by source!
SRCNAM=zoom
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/network/zoom-linux/zoom-linux.info b/network/zoom-linux/zoom-linux.info
index f1b77a4e27..5bdc183dd8 100644
--- a/network/zoom-linux/zoom-linux.info
+++ b/network/zoom-linux/zoom-linux.info
@@ -1,10 +1,10 @@
PRGNAM="zoom-linux"
-VERSION="6.0.0.4563"
+VERSION="6.0.2.4680"
HOMEPAGE="https://www.zoom.us/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://cdn.zoom.us/prod/6.0.0.4563/zoom_x86_64.pkg.tar.xz"
-MD5SUM_x86_64="0c53fed4b3eb7ad942708e02a468021a"
+DOWNLOAD_x86_64="https://cdn.zoom.us/prod/6.0.2.4680/zoom_x86_64.pkg.tar.xz"
+MD5SUM_x86_64="0e46a93bc0f450ec551489d8a639ea46"
REQUIRES=""
MAINTAINER="Ebben Aries"
EMAIL="slackbuilds@dscp.org"
diff --git a/office/1password/1password.info b/office/1password/1password.info
index ffe5ec8164..db8cf11513 100644
--- a/office/1password/1password.info
+++ b/office/1password/1password.info
@@ -4,7 +4,7 @@ HOMEPAGE="https://1password.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="https://downloads.1password.com/linux/rpm/beta/x86_64/1password-latest.rpm"
-MD5SUM_x86_64="c7cb43ff2b8b46b899b00942cd122126"
+MD5SUM_x86_64="4d0b0ceb2ed3c46a9b6d2f1ddfd18c9f"
REQUIRES=""
MAINTAINER="Akileo"
EMAIL="theakileo@hotmail.com"
diff --git a/office/LibreOffice/LibreOffice.SlackBuild b/office/LibreOffice/LibreOffice.SlackBuild
index b3b349606f..8994813b6f 100644
--- a/office/LibreOffice/LibreOffice.SlackBuild
+++ b/office/LibreOffice/LibreOffice.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=LibreOffice
SRCNAM=libreoffice
-VERSION=${VERSION:-24.2.2.2}
+VERSION=${VERSION:-24.2.3.2}
SHORT_VERSION=${VERSION%.*.*}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/office/LibreOffice/LibreOffice.info b/office/LibreOffice/LibreOffice.info
index eb06942f03..726660b5b7 100644
--- a/office/LibreOffice/LibreOffice.info
+++ b/office/LibreOffice/LibreOffice.info
@@ -1,10 +1,10 @@
PRGNAM="LibreOffice"
-VERSION="24.2.2.2"
+VERSION="24.2.3.2"
HOMEPAGE="https://www.libreoffice.org"
-DOWNLOAD="https://download.documentfoundation.org/libreoffice/src/24.2.2/libreoffice-24.2.2.2.tar.xz \
- https://sourceforge.net/projects/slackbuildsdirectlinks/files/LibreOffice/libreoffice-24.2.2.2-srcs.tar.xz"
-MD5SUM="72d05d00734c6921a47c369b8d7ef8cf \
- 87a2d12d9b00c2662c1fee4303d54c48"
+DOWNLOAD="https://download.documentfoundation.org/libreoffice/src/24.2.3/libreoffice-24.2.3.2.tar.xz \
+ https://sourceforge.net/projects/slackbuildsdirectlinks/files/LibreOffice/libreoffice-24.2.3.2-srcs.tar.xz"
+MD5SUM="df019f1cfa41c3dd80f06f865c752817 \
+ 8791428dd6764e1f653db63a19e4ea1f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="zulu-openjdk17 apache-ant perl-Archive-Zip libcdr libfreehand liblangtag libmspub libzmf"
diff --git a/office/calibre-bin/calibre-bin.SlackBuild b/office/calibre-bin/calibre-bin.SlackBuild
index 0adcf0b982..e01633e816 100644
--- a/office/calibre-bin/calibre-bin.SlackBuild
+++ b/office/calibre-bin/calibre-bin.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=calibre-bin
-VERSION=${VERSION:-7.9.0}
+VERSION=${VERSION:-7.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/office/calibre-bin/calibre-bin.info b/office/calibre-bin/calibre-bin.info
index 0d2217abd9..30bf1c52f7 100644
--- a/office/calibre-bin/calibre-bin.info
+++ b/office/calibre-bin/calibre-bin.info
@@ -1,10 +1,10 @@
PRGNAM="calibre-bin"
-VERSION="7.9.0"
+VERSION="7.10.0"
HOMEPAGE="https://calibre-ebook.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.calibre-ebook.com/7.9.0/calibre-7.9.0-x86_64.txz"
-MD5SUM_x86_64="fcff97c68fadeb4c9f6e731fae94af35"
+DOWNLOAD_x86_64="https://download.calibre-ebook.com/7.10.0/calibre-7.10.0-x86_64.txz"
+MD5SUM_x86_64="f16f8530308b81b5d6ab303890c412d9"
REQUIRES=""
MAINTAINER="Alexander Verbovetsky"
EMAIL="alik@ejik.org"
diff --git a/office/epr/README b/office/epr/README
new file mode 100644
index 0000000000..a791c92707
--- /dev/null
+++ b/office/epr/README
@@ -0,0 +1,11 @@
+Terminal/CLI Epub reader written in Python 3.6 with features:
+
+Remembers last read file (just run epr without any argument)
+Remembers last reading state for each file
+Per file saved state
+Adjustable text area width
+Adaptive to terminal resize
+Supports EPUB3 (no audio support)
+Secondary vim-like bindings
+Supports opening images
+Dark/Light colorscheme (depends on terminal color capability)
diff --git a/office/epr/epr.SlackBuild b/office/epr/epr.SlackBuild
new file mode 100644
index 0000000000..a2fa151e30
--- /dev/null
+++ b/office/epr/epr.SlackBuild
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+# Slackware build script for epr
+
+# Copyright 2024 doclai <toi@doclai.com>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=epr
+VERSION=${VERSION:-2.4.15}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+GOOS=linux
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+case "$ARCH" in
+ x86_64) PRINTARCH=amd64 ;;
+ i586) PRINTARCH=386 ;;
+ *) PRINTARCH=$ARCH ;;
+esac
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+
+install -dm 755 "$PKG/usr/bin"
+install -Dm 644 LICENSE "$PRGNAM/usr/share/licenses/$PRGNAM/LICENSE"
+
+install -Dm 644 epr.py "$PKG/usr/bin/epr"
+chmod +x "$PKG/usr/bin/epr"
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/office/epr/epr.info b/office/epr/epr.info
new file mode 100644
index 0000000000..70443965dd
--- /dev/null
+++ b/office/epr/epr.info
@@ -0,0 +1,10 @@
+PRGNAM="epr"
+VERSION="2.4.15"
+HOMEPAGE="https://github.com/wustho/epr"
+DOWNLOAD="https://github.com/wustho/epr/archive/refs/tags/v2.4.15.tar.gz"
+MD5SUM="85c49a9faaf8a69b750d949572d8bbfe"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="doclai"
+EMAIL="toi@doclai.com"
diff --git a/office/epr/slack-desc b/office/epr/slack-desc
new file mode 100644
index 0000000000..b8a352767b
--- /dev/null
+++ b/office/epr/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+epr: epr (Terminal/CLI Epub reader)
+epr:
+epr:
+epr: Homepage: https://github.com/wustho/epr
+epr:
+epr:
+epr:
+epr:
+epr:
+epr:
+epr:
diff --git a/office/gnumeric/gnumeric.SlackBuild b/office/gnumeric/gnumeric.SlackBuild
index 8bcfa5691c..0ca64cb5e9 100644
--- a/office/gnumeric/gnumeric.SlackBuild
+++ b/office/gnumeric/gnumeric.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for gnumeric
# Copyright 2010-2021 Robby Workman, Tuscaloosa, Alabama, USA
-# Copyright 2023 Jim Diamond, Dartmouth, Nova Scotia, Canada
+# Copyright 2023-24 Jim Diamond, Dartmouth, Nova Scotia, Canada
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gnumeric
-VERSION=${VERSION:-1.12.56}
+VERSION=${VERSION:-1.12.57}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -54,7 +54,7 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
+if [ "$ARCH" = "i586" -o "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
diff --git a/office/gnumeric/gnumeric.info b/office/gnumeric/gnumeric.info
index b8de66e8f2..f1ac6550e7 100644
--- a/office/gnumeric/gnumeric.info
+++ b/office/gnumeric/gnumeric.info
@@ -1,8 +1,8 @@
PRGNAM="gnumeric"
-VERSION="1.12.56"
+VERSION="1.12.57"
HOMEPAGE="https://projects.gnome.org/gnumeric/"
-DOWNLOAD="https://download.gnome.org/sources/gnumeric/1.12/gnumeric-1.12.56.tar.xz"
-MD5SUM="8d5b6928173797043e0a0aceeb2ceb78"
+DOWNLOAD="https://download.gnome.org/sources/gnumeric/1.12/gnumeric-1.12.57.tar.xz"
+MD5SUM="237ce4f6c43661892e802bf81dbff1b2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="goffice"
diff --git a/office/krop/krop.SlackBuild b/office/krop/krop.SlackBuild
index b768e7ec12..44d0c56cb5 100644
--- a/office/krop/krop.SlackBuild
+++ b/office/krop/krop.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for krop
-# Copyright 2018-2023, Alexander Verbovetsky, Moscow, Russia
+# Copyright 2018-2024, Alexander Verbovetsky, Moscow, Russia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
diff --git a/office/krop/krop.info b/office/krop/krop.info
index 0410cf1288..bd03c0a489 100644
--- a/office/krop/krop.info
+++ b/office/krop/krop.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/arminstraub/krop/archive/e96d42b/krop-e96d42b2f1ab4
MD5SUM="9ddb0caa00585882e4d3b081bf5b3b4f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="%README% python-poppler-qt5 python3-PyPDF2"
+REQUIRES="%README% python-poppler-qt5 python3-pypdf"
MAINTAINER="Alexander Verbovetsky"
EMAIL="alik@ejik.org"
diff --git a/office/libreoffice-helppack/libreoffice-helppack.SlackBuild b/office/libreoffice-helppack/libreoffice-helppack.SlackBuild
index 1152e6eb05..1df7d8669b 100644
--- a/office/libreoffice-helppack/libreoffice-helppack.SlackBuild
+++ b/office/libreoffice-helppack/libreoffice-helppack.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libreoffice-helppack
-VERSION=${VERSION:-"24.2.2"}
+VERSION=${VERSION:-"24.2.3"}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/office/libreoffice-helppack/libreoffice-helppack.info b/office/libreoffice-helppack/libreoffice-helppack.info
index e51c799a13..7f16a18ec0 100644
--- a/office/libreoffice-helppack/libreoffice-helppack.info
+++ b/office/libreoffice-helppack/libreoffice-helppack.info
@@ -1,10 +1,10 @@
PRGNAM="libreoffice-helppack"
-VERSION="24.2.2"
+VERSION="24.2.3"
HOMEPAGE="https://www.libreoffice.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.2/rpm/x86_64/LibreOffice_24.2.2_Linux_x86-64_rpm_helppack_en-US.tar.gz"
-MD5SUM_x86_64="51b02247337c97a95fa873e52a75a991"
+DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.3/rpm/x86_64/LibreOffice_24.2.3_Linux_x86-64_rpm_helppack_en-US.tar.gz"
+MD5SUM_x86_64="c43c97ae9070404aae545e910657606d"
REQUIRES="libreoffice"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/office/libreoffice-langpack/libreoffice-langpack.SlackBuild b/office/libreoffice-langpack/libreoffice-langpack.SlackBuild
index 5c8cd5a3d1..7a99cccf53 100644
--- a/office/libreoffice-langpack/libreoffice-langpack.SlackBuild
+++ b/office/libreoffice-langpack/libreoffice-langpack.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libreoffice-langpack
-VERSION=${VERSION:-"24.2.2"}
+VERSION=${VERSION:-"24.2.3"}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/office/libreoffice-langpack/libreoffice-langpack.info b/office/libreoffice-langpack/libreoffice-langpack.info
index 2149b7fe31..4d7a4f7493 100644
--- a/office/libreoffice-langpack/libreoffice-langpack.info
+++ b/office/libreoffice-langpack/libreoffice-langpack.info
@@ -1,10 +1,10 @@
PRGNAM="libreoffice-langpack"
-VERSION="24.2.2"
+VERSION="24.2.3"
HOMEPAGE="https://www.libreoffice.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.2/rpm/x86_64/LibreOffice_24.2.2_Linux_x86-64_rpm_langpack_en-GB.tar.gz"
-MD5SUM_x86_64="15008149a534cc5340fc1ed2b3c820ae"
+DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.3/rpm/x86_64/LibreOffice_24.2.3_Linux_x86-64_rpm_langpack_en-GB.tar.gz"
+MD5SUM_x86_64="4a1fcfeb971e1d0bb266c6eb02f5ef64"
REQUIRES="libreoffice"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/office/libreoffice/libreoffice.SlackBuild b/office/libreoffice/libreoffice.SlackBuild
index 82137b0e3c..747823e610 100644
--- a/office/libreoffice/libreoffice.SlackBuild
+++ b/office/libreoffice/libreoffice.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=libreoffice
-VERSION=${VERSION:-"24.2.2"}
+VERSION=${VERSION:-"24.2.3"}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/office/libreoffice/libreoffice.info b/office/libreoffice/libreoffice.info
index 6482c0a1aa..c31c235b28 100644
--- a/office/libreoffice/libreoffice.info
+++ b/office/libreoffice/libreoffice.info
@@ -1,10 +1,10 @@
PRGNAM="libreoffice"
-VERSION="24.2.2"
+VERSION="24.2.3"
HOMEPAGE="https://www.libreoffice.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.2/rpm/x86_64/LibreOffice_24.2.2_Linux_x86-64_rpm.tar.gz"
-MD5SUM_x86_64="cde06aceac2f7eed5b5761a30a072444"
+DOWNLOAD_x86_64="https://download.documentfoundation.org/libreoffice/stable/24.2.3/rpm/x86_64/LibreOffice_24.2.3_Linux_x86-64_rpm.tar.gz"
+MD5SUM_x86_64="8970eb3fc932ee7779230f97f89f7222"
REQUIRES="zulu-openjdk8 avahi"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/office/lotus123/lotus123.info b/office/lotus123/lotus123.info
index 1a8158789d..1069e16b2e 100644
--- a/office/lotus123/lotus123.info
+++ b/office/lotus123/lotus123.info
@@ -15,7 +15,7 @@ MD5SUM="c1d56afbf72353cfc8b1e478dbbb5bb2 \
1752432abf4951589386db4f8ace4c92 \
0965e866b299af5046ec7973e7157211 \
6e39cad1bb414add02b5b1169c18fdc5"
-DOWNLOAD_x86_64=""
+DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
diff --git a/office/semantik/changelog b/office/semantik/changelog
index d26fd537cc..f83eda4399 100644
--- a/office/semantik/changelog
+++ b/office/semantik/changelog
@@ -8,3 +8,7 @@ Added to SlackBuilds.org
15/05/2023:
Updated to Version 1.2.10
+
+23/04/2024:
+
+Updated to Version 1.2.11
diff --git a/office/semantik/semantik.SlackBuild b/office/semantik/semantik.SlackBuild
index 46409d1bda..67f9094952 100644
--- a/office/semantik/semantik.SlackBuild
+++ b/office/semantik/semantik.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for semantik
-# Copyright 2022-2023 Vijay Marcel
+# Copyright 2022-2024 Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=semantik
-VERSION=${VERSION:-1.2.10}
+VERSION=${VERSION:-1.2.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -39,9 +39,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/office/semantik/semantik.info b/office/semantik/semantik.info
index 2cfa9b3465..0d1c241a39 100644
--- a/office/semantik/semantik.info
+++ b/office/semantik/semantik.info
@@ -1,8 +1,8 @@
PRGNAM="semantik"
-VERSION="1.2.10"
+VERSION="1.2.11"
HOMEPAGE="https://waf.io/semantik.html"
-DOWNLOAD="https://waf.io/semantik-1.2.10.tar.bz2"
-MD5SUM="aeabd57ce02b68cb1182a649e8f41924"
+DOWNLOAD="https://waf.io/semantik-1.2.11.tar.bz2"
+MD5SUM="adc209b898ee63ba8531f6f223acd383"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/office/xtrkcad/slack-desc b/office/xtrkcad/slack-desc
index 0d5c1a3b59..d6ce431c39 100644
--- a/office/xtrkcad/slack-desc
+++ b/office/xtrkcad/slack-desc
@@ -15,5 +15,5 @@ xtrkcad: is easy with the built-in editor.
xtrkcad:
xtrkcad: The website is located at http://www.xtrkcad.org and files at
xtrkcad: http://sourceforge.net/projects/xtrkcad-fork
-xtrkcad: Also check the Yahoo! Group [XtrkCAD].
+xtrkcad: Also check the groups.io-group https://xtrackcad.groups.io.
xtrkcad: Note the spelling and CamelCase are inconsistent throughout the app.
diff --git a/office/xtrkcad/xtrkcad.SlackBuild b/office/xtrkcad/xtrkcad.SlackBuild
index 33804d3c70..c0f98a282b 100644
--- a/office/xtrkcad/xtrkcad.SlackBuild
+++ b/office/xtrkcad/xtrkcad.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for xtrkcad
-# Copyright 2013-2022 Heiko Rosemann Germany
+# Copyright 2013-2024 Heiko Rosemann Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xtrkcad
-VERSION=${VERSION:-5.2.2GA}
+VERSION=${VERSION:-5.3.0GA}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -53,16 +53,12 @@ SRCNAM=${PRGNAM}-source-$VERSION
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
fi
set -e
@@ -80,6 +76,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Remove libzip.a bundled with xtrkcad to make cmake find the system version
+# Required for supporting platforms other than x86_64
+rm -rf app/tools/lib
+
mkdir -p build
cd build
cmake \
@@ -89,7 +89,8 @@ cd build
-DCMAKE_BUILD_TYPE=Release \
-DXTRKCAD_USE_GETTEXT=ON \
-DXTRKCAD_USE_GTK=ON ..
- make
+ # Remove DBUS access from make to avoid parallel inkscape crashing
+ DBUS_SESSION_BUS_ADDRESS="" make
make install DESTDIR=$PKG
cd ..
diff --git a/office/xtrkcad/xtrkcad.info b/office/xtrkcad/xtrkcad.info
index 24b3c50293..e3ef590bc9 100644
--- a/office/xtrkcad/xtrkcad.info
+++ b/office/xtrkcad/xtrkcad.info
@@ -1,10 +1,10 @@
PRGNAM="xtrkcad"
-VERSION="5.2.2GA"
+VERSION="5.3.0GA"
HOMEPAGE="http://www.xtrkcad.org"
-DOWNLOAD="http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%205.2.2/xtrkcad-source-5.2.2GA.tar.gz"
-MD5SUM="a91da56b9e509eab1ceab0b8fee92b2f"
+DOWNLOAD="http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%205.3.0/xtrkcad-source-5.3.0GA.tar.gz"
+MD5SUM="d9ea03fcd396a3ff7d1592abd98c3aa3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="FreeImage inkscape"
MAINTAINER="Heiko Rosemann"
EMAIL="heiko.rosemann@web.de"
diff --git a/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.SlackBuild b/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.SlackBuild
index 122fa97d39..09a461a300 100644
--- a/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.SlackBuild
+++ b/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for perl-ExtUtils-Config
-# Copyright 2013-2014 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2013-2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-ExtUtils-Config
-VERSION=${VERSION:-0.008}
+VERSION=${VERSION:-0.009}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -40,9 +40,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.info b/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.info
index a2a7f19e1f..38746ea4c5 100644
--- a/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.info
+++ b/perl/perl-ExtUtils-Config/perl-ExtUtils-Config.info
@@ -1,10 +1,10 @@
PRGNAM="perl-ExtUtils-Config"
-VERSION="0.008"
+VERSION="0.009"
HOMEPAGE="https://metacpan.org/pod/ExtUtils::Config"
-DOWNLOAD="http://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz"
-MD5SUM="565a7b09c7cac5907a25bbe2c959a717"
+DOWNLOAD="http://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-Config-0.009.tar.gz"
+MD5SUM="4333113089815c2aa92573b151bb43cb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="perl-Test-Harness"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.SlackBuild b/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.SlackBuild
index ec5ab5a341..e25be3abc9 100644
--- a/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.SlackBuild
+++ b/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for perl-ExtUtils-InstallPaths
-# Copyright 2013-2018 Willy Sudiarto Raharjo <willysr@slackware-id.org>
+# Copyright 2013-2024 Willy Sudiarto Raharjo <willysr@slackware-id.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-ExtUtils-InstallPaths
-VERSION=${VERSION:-0.012}
+VERSION=${VERSION:-0.013}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -40,9 +40,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
diff --git a/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.info b/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.info
index e05a843b2b..b4a252881b 100644
--- a/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.info
+++ b/perl/perl-ExtUtils-InstallPaths/perl-ExtUtils-InstallPaths.info
@@ -1,8 +1,8 @@
PRGNAM="perl-ExtUtils-InstallPaths"
-VERSION="0.012"
+VERSION="0.013"
HOMEPAGE="https://metacpan.org/pod/ExtUtils::InstallPaths"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz"
-MD5SUM="9a8d66aab1ffec98ea260faf03ac612b"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.013.tar.gz"
+MD5SUM="84d9af4ab9c2d5211681122bcc6e67a3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-ExtUtils-Config"
diff --git a/perl/perl-Locale-Codes/perl-Locale-Codes.SlackBuild b/perl/perl-Locale-Codes/perl-Locale-Codes.SlackBuild
index ff588325b8..a6a7213610 100644
--- a/perl/perl-Locale-Codes/perl-Locale-Codes.SlackBuild
+++ b/perl/perl-Locale-Codes/perl-Locale-Codes.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-Locale-Codes
-VERSION=${VERSION:-3.70}
+VERSION=${VERSION:-3.78}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/perl/perl-Locale-Codes/perl-Locale-Codes.info b/perl/perl-Locale-Codes/perl-Locale-Codes.info
index b3edafbed0..51402ecaf8 100644
--- a/perl/perl-Locale-Codes/perl-Locale-Codes.info
+++ b/perl/perl-Locale-Codes/perl-Locale-Codes.info
@@ -1,8 +1,8 @@
PRGNAM="perl-Locale-Codes"
-VERSION="3.70"
+VERSION="3.78"
HOMEPAGE="https://metacpan.org/pod/Locale::Codes"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SB/SBECK/Locale-Codes-3.70.tar.gz"
-MD5SUM="6e79c77d7c82f00cda3d0137c24fb798"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SB/SBECK/Locale-Codes-3.78.tar.gz"
+MD5SUM="899cd9b8a9188bad93763ff0aa5ff5ee"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-Test-Inter"
diff --git a/perl/perl-Locale-Msgfmt/README b/perl/perl-Locale-Msgfmt/README
deleted file mode 100644
index 854d640c47..0000000000
--- a/perl/perl-Locale-Msgfmt/README
+++ /dev/null
@@ -1,9 +0,0 @@
-perl-Locale-Msgfmt
-
-Locale::Msgfmt - Compile .po files to .mo files
-
-This module does the same thing as msgfmt from GNU gettext-tools,
-except this is pure Perl. The interface is best explained through
-examples here:
-
-https://metacpan.org/source/AZAWAWI/Locale-Msgfmt-0.15/lib/Locale/Msgfmt.pm
diff --git a/perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.info b/perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.info
deleted file mode 100644
index 9e2de3c0dd..0000000000
--- a/perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="perl-Locale-Msgfmt"
-VERSION="0.15"
-HOMEPAGE="https://metacpan.org/pod/Locale::Msgfmt"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz"
-MD5SUM="7e6fde43db034f765f3a425dfa1dd4d8"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="perl-Module-Install"
-MAINTAINER="Nikos Giotis"
-EMAIL="nikos.giotis@gmail.com"
diff --git a/perl/perl-Locale-Msgfmt/slack-desc b/perl/perl-Locale-Msgfmt/slack-desc
deleted file mode 100644
index 245da7a8fd..0000000000
--- a/perl/perl-Locale-Msgfmt/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-perl-Locale-Msgfmt: perl-Locale-Msgfmt (Compile .po files to .mo files)
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt: Locale::Msgfmt is a pure Perl reimplementation of msgfmt from GNU
-perl-Locale-Msgfmt: gettext-tools.
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt: Homepage: https://metacpan.org/pod/Locale::Msgfmt
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt:
-perl-Locale-Msgfmt:
diff --git a/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.SlackBuild b/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.SlackBuild
index d0a157b7ba..2c2e7eb157 100644
--- a/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.SlackBuild
+++ b/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-Module-Build-Tiny
-VERSION=${VERSION:-0.047}
+VERSION=${VERSION:-0.048}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.info b/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.info
index 1453eafff3..17537db75d 100644
--- a/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.info
+++ b/perl/perl-Module-Build-Tiny/perl-Module-Build-Tiny.info
@@ -1,8 +1,8 @@
PRGNAM="perl-Module-Build-Tiny"
-VERSION="0.047"
+VERSION="0.048"
HOMEPAGE="https://metacpan.org/pod/Module::Build::Tiny"
-DOWNLOAD="http://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz"
-MD5SUM="de9814b3c22825837438fc70adad58ac"
+DOWNLOAD="http://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-Tiny-0.048.tar.gz"
+MD5SUM="130e952464b3f8d86995392a3cb1314e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-ExtUtils-InstallPaths perl-ExtUtils-Helpers perl-Test-Harness perl-JSON"
diff --git a/perl/perl-Module-Install/perl-Module-Install.SlackBuild b/perl/perl-Module-Install/perl-Module-Install.SlackBuild
index 0e3ae06411..8bef7ddbae 100644
--- a/perl/perl-Module-Install/perl-Module-Install.SlackBuild
+++ b/perl/perl-Module-Install/perl-Module-Install.SlackBuild
@@ -2,7 +2,7 @@
#
# Slackware build script for perl-Module-Install.
#
-# Copyright 2020 M.A. Begue mab974@gmail.com
+# Copyright 2020 M.A. Begue mab974@misouk.com
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-Module-Install
-VERSION=${VERSION:-1.19}
+VERSION=${VERSION:-1.21}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -86,6 +86,7 @@ perl Makefile.PL \
INSTALLDIRS=vendor \
INSTALLVENDORMAN3DIR=/usr/man/man3
make
+make test
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
diff --git a/perl/perl-Module-Install/perl-Module-Install.info b/perl/perl-Module-Install/perl-Module-Install.info
index 7242f629a9..700a418b4a 100644
--- a/perl/perl-Module-Install/perl-Module-Install.info
+++ b/perl/perl-Module-Install/perl-Module-Install.info
@@ -1,10 +1,10 @@
PRGNAM="perl-Module-Install"
-VERSION="1.19"
+VERSION="1.21"
HOMEPAGE="https://metacpan.org/pod/Module::Install"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Install-1.19.tar.gz"
-MD5SUM="0d1b78cc13ebf9b9ad008c8928a5b2dd"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz"
+MD5SUM="71a170c4ecc224cb5c8b147830979549"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-YAML-Tiny perl-File-Remove"
MAINTAINER="Michel A. BEGUE"
-EMAIL="mab974@gmail.com"
+EMAIL="mab974@misouk.com"
diff --git a/perl/perl-Module-Manifest/perl-Module-Manifest.SlackBuild b/perl/perl-Module-Manifest/perl-Module-Manifest.SlackBuild
index 38d572815a..6519146614 100644
--- a/perl/perl-Module-Manifest/perl-Module-Manifest.SlackBuild
+++ b/perl/perl-Module-Manifest/perl-Module-Manifest.SlackBuild
@@ -7,7 +7,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-Module-Manifest
-VERSION=${VERSION:-1.08}
+VERSION=${VERSION:-1.09}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/perl/perl-Module-Manifest/perl-Module-Manifest.info b/perl/perl-Module-Manifest/perl-Module-Manifest.info
index 4cf3c5dcce..ce620b737f 100644
--- a/perl/perl-Module-Manifest/perl-Module-Manifest.info
+++ b/perl/perl-Module-Manifest/perl-Module-Manifest.info
@@ -1,8 +1,8 @@
PRGNAM="perl-Module-Manifest"
-VERSION="1.08"
+VERSION="1.09"
HOMEPAGE="https://metacpan.org/release/Module-Manifest"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/A/AD/ADAMK/Module-Manifest-1.08.tar.gz"
-MD5SUM="90f035a0074c3edcf8f595a38ec90da1"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz"
+MD5SUM="71cd43db0ef8d6497b4b0415497453c6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-Params-Util perl-Test-Exception perl-test-warn perl-Module-Install"
diff --git a/perl/perl-Mojolicious/perl-Mojolicious.SlackBuild b/perl/perl-Mojolicious/perl-Mojolicious.SlackBuild
index dcef0c7cd4..82dd8b953d 100644
--- a/perl/perl-Mojolicious/perl-Mojolicious.SlackBuild
+++ b/perl/perl-Mojolicious/perl-Mojolicious.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-Mojolicious
-VERSION=${VERSION:-9.35}
+VERSION=${VERSION:-9.36}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/perl/perl-Mojolicious/perl-Mojolicious.info b/perl/perl-Mojolicious/perl-Mojolicious.info
index 1b6f93e00a..8bf265ac7a 100644
--- a/perl/perl-Mojolicious/perl-Mojolicious.info
+++ b/perl/perl-Mojolicious/perl-Mojolicious.info
@@ -1,8 +1,8 @@
PRGNAM="perl-Mojolicious"
-VERSION="9.35"
+VERSION="9.36"
HOMEPAGE="https://mojolicious.org/"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojolicious-9.35.tar.gz"
-MD5SUM="8fba4deae54681d560c275c28803b48c"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojolicious-9.36.tar.gz"
+MD5SUM="6bc41de3773e35a892ec64f9cb0a2dfd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.SlackBuild b/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.SlackBuild
index 5b6692edfb..4dcbd1e587 100644
--- a/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.SlackBuild
+++ b/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.SlackBuild
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM="perl-Net-DNS-SEC"
SRCNAM="Net-DNS-SEC"
-VERSION=${VERSION:-1.02}
+VERSION=${VERSION:-1.24}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -42,9 +42,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -80,7 +77,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-echo "y" | CFLAGS="$SLKCFLAGS" perl Makefile.PL \
+CFLAGS="$SLKCFLAGS" perl Makefile.PL \
PREFIX=/usr \
INSTALLDIRS=vendor \
INSTALLVENDORMAN3DIR=/usr/man/man3
diff --git a/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.info b/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.info
index 8a4a7db72f..240c039d3f 100644
--- a/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.info
+++ b/perl/perl-Net-DNS-SEC/perl-Net-DNS-SEC.info
@@ -1,8 +1,8 @@
PRGNAM="perl-Net-DNS-SEC"
-VERSION="1.02"
+VERSION="1.24"
HOMEPAGE="https://metacpan.org/pod/Net::DNS::SEC"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-SEC-1.02.tar.gz"
-MD5SUM="3d11216697d0fe43e74484b59f94188d"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-SEC-1.24.tar.gz"
+MD5SUM="63879e0f104320f63633be7d4b02b851"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-Crypt-OpenSSL-DSA perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-ECDSA perl-Digest-GOST perl-net-dns"
diff --git a/perl/perl-PDF-API2/perl-PDF-API2.SlackBuild b/perl/perl-PDF-API2/perl-PDF-API2.SlackBuild
index bf2095a64f..4090bcdd05 100644
--- a/perl/perl-PDF-API2/perl-PDF-API2.SlackBuild
+++ b/perl/perl-PDF-API2/perl-PDF-API2.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for perl-PDF-API2
-# Copyright 2019 M.A.Begue mab974@gmail.com
+# Copyright 2019 M.A.Begue mab974@misouk.com
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-PDF-API2
-VERSION=${VERSION:-2.038}
+VERSION=${VERSION:-2.045}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -87,6 +87,7 @@ perl Makefile.PL \
INSTALLVENDORMAN1DIR=/usr/man/man1 \
INSTALLVENDORMAN3DIR=/usr/man/man3
make
+make test
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
diff --git a/perl/perl-PDF-API2/perl-PDF-API2.info b/perl/perl-PDF-API2/perl-PDF-API2.info
index c54df2e261..66b01b8524 100644
--- a/perl/perl-PDF-API2/perl-PDF-API2.info
+++ b/perl/perl-PDF-API2/perl-PDF-API2.info
@@ -1,10 +1,10 @@
PRGNAM="perl-PDF-API2"
-VERSION="2.038"
+VERSION="2.045"
HOMEPAGE="https://metacpan.org/pod/PDF::API2"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SS/SSIMMS/PDF-API2-2.038.tar.gz"
-MD5SUM="2d6683d01b95f554ec5bb2e29f31ff03"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz"
+MD5SUM="afe283ab6b1273ed0d129ec1a18cfb8a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="perl-Font-TTF"
+REQUIRES="perl-Font-TTF perl-Test-Exception perl-Test-Memory-Cycle"
MAINTAINER="Michel A. BEGUE"
-EMAIL="mab974@gmail.com"
+EMAIL="mab974@misouk.com"
diff --git a/perl/perl-Test-Script/README b/perl/perl-Test-Script/README
deleted file mode 100644
index 1855d732c0..0000000000
--- a/perl/perl-Test-Script/README
+++ /dev/null
@@ -1,6 +0,0 @@
-The intent of Test-Script module is to provide a series of basic
-tests for 80% of the testing you will need to do for scripts in the
-script (or bin as is also commonly used) paths of your Perl
-distribution. Further, it aims to provide this functionality with
-perfect platform-compatibility, and in a way that is as unobtrusive
-as possible.
diff --git a/perl/perl-Test-Script/perl-Test-Script.info b/perl/perl-Test-Script/perl-Test-Script.info
deleted file mode 100644
index 1ad7a3f757..0000000000
--- a/perl/perl-Test-Script/perl-Test-Script.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="perl-Test-Script"
-VERSION="1.07"
-HOMEPAGE="https://metacpan.org/pod/Test::Script"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/A/AD/ADAMK/Test-Script-1.07.tar.gz"
-MD5SUM="f6b5baa6403cd24dac7f023e0ea22384"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="perl-IPC-Run3 perl-Probe-Perl perl-Module-Install"
-MAINTAINER="Mikko Värri"
-EMAIL="vmj@linuxbox.fi"
diff --git a/perl/perl-Test-Script/slack-desc b/perl/perl-Test-Script/slack-desc
deleted file mode 100644
index d05ae887b0..0000000000
--- a/perl/perl-Test-Script/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-perl-Test-Script: perl-Test-Script (Basic cross-platform tests for scripts)
-perl-Test-Script:
-perl-Test-Script: The intent of Test-Script module is to provide a series of basic
-perl-Test-Script: tests for 80% of the testing you will need to do for scripts in the
-perl-Test-Script: script (or bin as is also commonly used) paths of your Perl
-perl-Test-Script: distribution. Further, it aims to provide this functionality with
-perl-Test-Script: perfect platform-compatibility, and in a way that is as unobtrusive
-perl-Test-Script: as possible.
-perl-Test-Script:
-perl-Test-Script:
-perl-Test-Script:
diff --git a/perl/perl-WWW-Curl/curl-7.71.0.patch.gz b/perl/perl-WWW-Curl/curl-7.71.0.patch.gz
index f85592a36f..96e83e4a30 100644
--- a/perl/perl-WWW-Curl/curl-7.71.0.patch.gz
+++ b/perl/perl-WWW-Curl/curl-7.71.0.patch.gz
Binary files differ
diff --git a/perl/perl-WWW-Curl/perl-WWW-Curl.SlackBuild b/perl/perl-WWW-Curl/perl-WWW-Curl.SlackBuild
index 46291bd33f..f99a85f115 100644
--- a/perl/perl-WWW-Curl/perl-WWW-Curl.SlackBuild
+++ b/perl/perl-WWW-Curl/perl-WWW-Curl.SlackBuild
@@ -7,7 +7,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-WWW-Curl
VERSION=${VERSION:-4.17}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -21,9 +21,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -64,6 +61,8 @@ find -L . \
zcat $CWD/curl-7.71.0.patch.gz | patch -p1
+PERL_USE_UNSAFE_INC=1 \
+PERL_MM_USE_DEFAULT=1 \
perl Makefile.PL \
PREFIX=/usr \
INSTALLDIRS=vendor \
diff --git a/perl/perl-YAML-Tiny/perl-YAML-Tiny.SlackBuild b/perl/perl-YAML-Tiny/perl-YAML-Tiny.SlackBuild
index 735e56ae23..42d511b0fc 100644
--- a/perl/perl-YAML-Tiny/perl-YAML-Tiny.SlackBuild
+++ b/perl/perl-YAML-Tiny/perl-YAML-Tiny.SlackBuild
@@ -2,7 +2,7 @@
#
# Slackware build script for perl-YAML-Tiny.
#
-# Copyright 2020 M.A. Begue mab974@gmail.com
+# Copyright 2020 M.A. Begue mab974@misouk.com
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-YAML-Tiny
-VERSION=${VERSION:-1.73}
+VERSION=${VERSION:-1.74}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -86,6 +86,7 @@ perl Makefile.PL \
INSTALLDIRS=vendor \
INSTALLVENDORMAN3DIR=/usr/man/man3
make
+make test
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
diff --git a/perl/perl-YAML-Tiny/perl-YAML-Tiny.info b/perl/perl-YAML-Tiny/perl-YAML-Tiny.info
index 7373a62810..b4ba6a7fb3 100644
--- a/perl/perl-YAML-Tiny/perl-YAML-Tiny.info
+++ b/perl/perl-YAML-Tiny/perl-YAML-Tiny.info
@@ -1,10 +1,10 @@
PRGNAM="perl-YAML-Tiny"
-VERSION="1.73"
+VERSION="1.74"
HOMEPAGE="https://metacpan.org/pod/YAML::Tiny"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/E/ET/ETHER/YAML-Tiny-1.73.tar.gz"
-MD5SUM="d1bb2525e4ab46bfab4b22842c467529"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz"
+MD5SUM="5a2b53a7cf7f3dcc98173944565ca0d6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Michel A. BEGUE"
-EMAIL="mab974@gmail.com"
+EMAIL="mab974@misouk.com"
diff --git a/perl/perl-html-form/perl-html-form.SlackBuild b/perl/perl-html-form/perl-html-form.SlackBuild
index a02769e550..b002bc8df9 100644
--- a/perl/perl-html-form/perl-html-form.SlackBuild
+++ b/perl/perl-html-form/perl-html-form.SlackBuild
@@ -28,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-html-form
-VERSION=${VERSION:-6.07}
+VERSION=${VERSION:-6.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -43,9 +43,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -104,7 +101,7 @@ find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f
find $PKG -depth -type d -empty -delete || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a Changes INSTALL LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a Changes LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/perl/perl-html-form/perl-html-form.info b/perl/perl-html-form/perl-html-form.info
index 79e9e18c1a..330730ef45 100644
--- a/perl/perl-html-form/perl-html-form.info
+++ b/perl/perl-html-form/perl-html-form.info
@@ -1,10 +1,10 @@
PRGNAM="perl-html-form"
-VERSION="6.07"
+VERSION="6.11"
HOMEPAGE="https://metacpan.org/pod/HTML::Form"
-DOWNLOAD="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTML-Form-6.07.tar.gz"
-MD5SUM="71718750e6a2132b50eeca417a55e18e"
+DOWNLOAD="https://cpan.metacpan.org/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz"
+MD5SUM="5348fbdee5ec572e21c1579d4eb183d3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="perl-http-message"
+REQUIRES="perl-html-parser perl-Test-Warnings"
MAINTAINER="Donald Cooley"
EMAIL="chytraeu@sdf.org"
diff --git a/python/PyPy/PyPy.SlackBuild b/python/PyPy/PyPy.SlackBuild
index 321ed43910..198a892583 100644
--- a/python/PyPy/PyPy.SlackBuild
+++ b/python/PyPy/PyPy.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=PyPy
-VERSION=${VERSION:-7.3.15}
+VERSION=${VERSION:-7.3.16}
SRCNAM=pypy2.7
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/PyPy/PyPy.info b/python/PyPy/PyPy.info
index 051f4f1617..fb47ee33b2 100644
--- a/python/PyPy/PyPy.info
+++ b/python/PyPy/PyPy.info
@@ -1,8 +1,8 @@
PRGNAM="PyPy"
-VERSION="7.3.15"
+VERSION="7.3.16"
HOMEPAGE="https://www.pypy.org/"
-DOWNLOAD="https://downloads.python.org/pypy/pypy2.7-v7.3.15-src.tar.bz2"
-MD5SUM="47a5fffbae1567f0ae3e83bab5a695c1"
+DOWNLOAD="https://downloads.python.org/pypy/pypy2.7-v7.3.16-src.tar.bz2"
+MD5SUM="9d527bc634e25b793f181580cf58d1a7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pycparser %README%"
diff --git a/python/PyPy3/PyPy3.SlackBuild b/python/PyPy3/PyPy3.SlackBuild
index 033588860d..15232dfeb9 100644
--- a/python/PyPy3/PyPy3.SlackBuild
+++ b/python/PyPy3/PyPy3.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=PyPy3
-VERSION=${VERSION:-7.3.15}
+VERSION=${VERSION:-7.3.16}
SRCNAM=pypy3.9
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/PyPy3/PyPy3.info b/python/PyPy3/PyPy3.info
index 2828704ecd..04474e6a74 100644
--- a/python/PyPy3/PyPy3.info
+++ b/python/PyPy3/PyPy3.info
@@ -1,8 +1,8 @@
PRGNAM="PyPy3"
-VERSION="7.3.15"
+VERSION="7.3.16"
HOMEPAGE="https://www.pypy.org/"
-DOWNLOAD="https://downloads.python.org/pypy/pypy3.9-v7.3.15-src.tar.bz2"
-MD5SUM="f98d921a74c98d2037cacf2ca396db71"
+DOWNLOAD="https://downloads.python.org/pypy/pypy3.9-v7.3.16-src.tar.bz2"
+MD5SUM="78d5d432aee45650d1a24b9a0f17a336"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pycparser %README%"
diff --git a/python/certbot-dns-cloudflare/certbot-dns-cloudflare.SlackBuild b/python/certbot-dns-cloudflare/certbot-dns-cloudflare.SlackBuild
index dde14d1a34..37dbd46694 100644
--- a/python/certbot-dns-cloudflare/certbot-dns-cloudflare.SlackBuild
+++ b/python/certbot-dns-cloudflare/certbot-dns-cloudflare.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2022 S.S. Bolokanar, Bulgaria <bolokanar@bulgars.org>
+# Copyright 2022 S.S. Bolokanar, Bulgaria <bolokanar@bulgarsociety.org>
# С. С. Болоканаръ, България
# All rights reserved.
#
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=certbot-dns-cloudflare
-VERSION=${VERSION:-2.9.0}
+VERSION=${VERSION:-2.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/certbot-dns-cloudflare/certbot-dns-cloudflare.info b/python/certbot-dns-cloudflare/certbot-dns-cloudflare.info
index bde2756c46..48dba67317 100644
--- a/python/certbot-dns-cloudflare/certbot-dns-cloudflare.info
+++ b/python/certbot-dns-cloudflare/certbot-dns-cloudflare.info
@@ -1,10 +1,10 @@
PRGNAM="certbot-dns-cloudflare"
-VERSION="2.9.0"
+VERSION="2.10.0"
HOMEPAGE="https://pypi.org/project/certbot-dns-cloudflare/"
-DOWNLOAD="https://files.pythonhosted.org/packages/cd/b4/db80e1ea8f9165ed816f64acce5e7df8beb8689457f1b1872f5b41124ae4/certbot-dns-cloudflare-2.9.0.tar.gz"
-MD5SUM="c5c704fc0035325a90457b01733fb227"
+DOWNLOAD="https://files.pythonhosted.org/packages/e9/42/afd7d47caa771fc40eb1b77d126648c3421b9277ca66917aa6d8e3599810/certbot-dns-cloudflare-2.10.0.tar.gz"
+MD5SUM="f438fa6dbaf63f1fcea140fa885827a2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-cloudflare"
MAINTAINER="S. S. Bolokanar"
-EMAIL="bolokanar@bulgars.org"
+EMAIL="bolokanar@bulgarsociety.org"
diff --git a/python/mypy/mypy.SlackBuild b/python/mypy/mypy.SlackBuild
index edadfa83d9..db07edb032 100644
--- a/python/mypy/mypy.SlackBuild
+++ b/python/mypy/mypy.SlackBuild
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mypy
-VERSION=${VERSION:-1.9.0}
+VERSION=${VERSION:-1.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/mypy/mypy.info b/python/mypy/mypy.info
index 4025b600ed..075f53638a 100644
--- a/python/mypy/mypy.info
+++ b/python/mypy/mypy.info
@@ -1,8 +1,8 @@
PRGNAM="mypy"
-VERSION="1.9.0"
+VERSION="1.10.0"
HOMEPAGE="https://github.com/python/mypy"
-DOWNLOAD="https://files.pythonhosted.org/packages/72/1e/a587a862c766a755a58b62d8c00aed11b74a15dc415c1bf5da7b607b0efd/mypy-1.9.0.tar.gz"
-MD5SUM="cb49d141290487e31c067cbb9c8bc362"
+DOWNLOAD="https://files.pythonhosted.org/packages/c3/b6/297734bb9f20ddf5e831cf4a83f422ddef5a29a33463999f0959d9cdc2df/mypy-1.10.0.tar.gz"
+MD5SUM="fc3dad1171168682b7ddd185cba15cca"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="typing-extensions mypy_extensions"
diff --git a/python/pyPdf/README b/python/pyPdf/README
deleted file mode 100644
index de81982790..0000000000
--- a/python/pyPdf/README
+++ /dev/null
@@ -1,16 +0,0 @@
-A Pure-Python library built as a PDF toolkit. It is capable of:
-
- extracting document information (title, author, ...),
- splitting documents page by page,
- merging documents page by page,
- cropping pages,
- merging multiple pages into a single page,
- encrypting and decrypting PDF files.
-
-It should run on any Python platform without any dependencies on
-external libraries. It can also work entirely on StringIO objects
-rather than file streams, allowing for PDF manipulation in memory. It
-is therefore a useful tool for websites that manage or manipulate PDFs.
-
-NOTE: the upstream project is NOT MAINTAINED. PyPDF2 is a fork based on
-this project that provides enhanced features.
diff --git a/python/pyPdf/pyPdf.info b/python/pyPdf/pyPdf.info
deleted file mode 100644
index 817b2a041d..0000000000
--- a/python/pyPdf/pyPdf.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="pyPdf"
-VERSION="1.13"
-HOMEPAGE="http://pybrary.net/pyPdf/"
-DOWNLOAD="http://pybrary.net/pyPdf/pyPdf-1.13.tar.gz"
-MD5SUM="7a75ef56f227b78ae62d6e38d4b6b1da"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Alan Alberghini"
-EMAIL="414N@slacky.it"
diff --git a/python/pyPdf/slack-desc b/python/pyPdf/slack-desc
deleted file mode 100644
index 7bd23be9aa..0000000000
--- a/python/pyPdf/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-pyPdf: pyPdf (pure Python library built as a PDF toolkit)
-pyPdf:
-pyPdf: It is capable of:
-pyPdf: - extracting document information (title, author, ...),
-pyPdf: - splitting documents page by page,
-pyPdf: - merging documents page by page,
-pyPdf: - cropping pages,
-pyPdf: - merging multiple pages into a single page,
-pyPdf: - encrypting and decrypting PDF files.
-pyPdf:
-pyPdf: Homepage: http://pybrary.net/pyPdf/
diff --git a/python/pypy/pypy.SlackBuild b/python/pypy/pypy.SlackBuild
index db7175ee10..57b2b9f890 100644
--- a/python/pypy/pypy.SlackBuild
+++ b/python/pypy/pypy.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pypy
-VERSION=${VERSION:-7.3.15}
+VERSION=${VERSION:-7.3.16}
SRCNAM=pypy2.7
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/pypy/pypy.info b/python/pypy/pypy.info
index 218b9d4193..7e092fb796 100644
--- a/python/pypy/pypy.info
+++ b/python/pypy/pypy.info
@@ -1,10 +1,10 @@
PRGNAM="pypy"
-VERSION="7.3.15"
+VERSION="7.3.16"
HOMEPAGE="https://www.pypy.org/"
-DOWNLOAD="https://downloads.python.org/pypy/pypy2.7-v7.3.15-linux32.tar.bz2"
-MD5SUM="30682b3a2afa20cd9679ed0582eaf68d"
-DOWNLOAD_x86_64="https://downloads.python.org/pypy/pypy2.7-v7.3.15-linux64.tar.bz2"
-MD5SUM_x86_64="1e58859cb8f1af76a6b91a7feceb53dd"
+DOWNLOAD="https://downloads.python.org/pypy/pypy2.7-v7.3.16-linux32.tar.bz2"
+MD5SUM="3c62b4c8d8ab8e38b7d260eea7d64904"
+DOWNLOAD_x86_64="https://downloads.python.org/pypy/pypy2.7-v7.3.16-linux64.tar.bz2"
+MD5SUM_x86_64="8efbdf5b721d1d2fab824c9cdf01ea7b"
REQUIRES=""
MAINTAINER="Yth - Arnaud"
EMAIL="yth@ythogtha.org"
diff --git a/python/pypy3/pypy3.SlackBuild b/python/pypy3/pypy3.SlackBuild
index 519fdc9daf..031c898724 100644
--- a/python/pypy3/pypy3.SlackBuild
+++ b/python/pypy3/pypy3.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pypy3
-VERSION=${VERSION:-7.3.15}
+VERSION=${VERSION:-7.3.16}
SRCNAM=pypy3.9
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/pypy3/pypy3.info b/python/pypy3/pypy3.info
index 767b6cdd11..158131cfc6 100644
--- a/python/pypy3/pypy3.info
+++ b/python/pypy3/pypy3.info
@@ -1,10 +1,10 @@
PRGNAM="pypy3"
-VERSION="7.3.15"
+VERSION="7.3.16"
HOMEPAGE="https://www.pypy.org/"
-DOWNLOAD="https://downloads.python.org/pypy/pypy3.9-v7.3.15-linux32.tar.bz2"
-MD5SUM="54227609e72be7d6afa41a37125600b9"
-DOWNLOAD_x86_64="https://downloads.python.org/pypy/pypy3.9-v7.3.15-linux64.tar.bz2"
-MD5SUM_x86_64="970f89d56dbfc7f9c722ba425c647945"
+DOWNLOAD="https://downloads.python.org/pypy/pypy3.9-v7.3.16-linux32.tar.bz2"
+MD5SUM="a53657ebe1aa4c10122c9a103b674ad7"
+DOWNLOAD_x86_64="https://downloads.python.org/pypy/pypy3.9-v7.3.16-linux64.tar.bz2"
+MD5SUM_x86_64="d97e99c14eac97e81275ae5548c2c372"
REQUIRES=""
MAINTAINER="Yth - Arnaud"
EMAIL="yth@ythogtha.org"
diff --git a/python/pytest/pytest.info b/python/pytest/pytest.info
index fc5a4d8b63..f66a59d9d4 100644
--- a/python/pytest/pytest.info
+++ b/python/pytest/pytest.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pytest/pytest-3.8.2.t
MD5SUM="8e7d324528a63c2dab64a10ae028e0f2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="python2-py python2-attrs pluggy more-itertools python2-atomicwrites funcsigs python2-pathlib2"
+REQUIRES="python2-py python2-attrs python2-pluggy more-itertools python2-atomicwrites funcsigs python2-pathlib2"
MAINTAINER="Dimitris Zlatanidis"
EMAIL="d.zlatanidis@gmail.com"
diff --git a/python/python-mysql-replication/python-mysql-replication.SlackBuild b/python/python-mysql-replication/python-mysql-replication.SlackBuild
index 439e830544..8617797374 100644
--- a/python/python-mysql-replication/python-mysql-replication.SlackBuild
+++ b/python/python-mysql-replication/python-mysql-replication.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python-mysql-replication
SRCNAM=mysql-replication
-VERSION=${VERSION:-1.0.7}
+VERSION=${VERSION:-1.0.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python-mysql-replication/python-mysql-replication.info b/python/python-mysql-replication/python-mysql-replication.info
index 2d35516022..4cc3d64634 100644
--- a/python/python-mysql-replication/python-mysql-replication.info
+++ b/python/python-mysql-replication/python-mysql-replication.info
@@ -1,8 +1,8 @@
PRGNAM="python-mysql-replication"
-VERSION="1.0.7"
+VERSION="1.0.8"
HOMEPAGE="https://github.com/julien-duponchelle/python-mysql-replication"
-DOWNLOAD="https://files.pythonhosted.org/packages/40/c7/43da46437af8857e474cdb6d6cc270018a227abeee3f6672edb916210357/mysql-replication-1.0.7.tar.gz"
-MD5SUM="33746e65168bb8849307b6e95fd8d5ff"
+DOWNLOAD="https://files.pythonhosted.org/packages/65/3b/74c995490ee88c906df4008a6a30c3cb0f7426edd8ed2257faaab27273d7/mysql-replication-1.0.8.tar.gz"
+MD5SUM="9004112b965b8dcd72c30c46e1be5ca0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pymysql"
diff --git a/python/python2-pluggy/README b/python/python2-pluggy/README
new file mode 100644
index 0000000000..588eb17442
--- /dev/null
+++ b/python/python2-pluggy/README
@@ -0,0 +1,6 @@
+pluggy (mechanisms for python)
+
+This is the plugin manager as used by pytest but stripped of pytest
+specific details.
+
+This is the Python 2 build of pluggy.
diff --git a/libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.SlackBuild b/python/python2-pluggy/python2-pluggy.SlackBuild
index b305f42544..ef6b2874e7 100644
--- a/libraries/libtorch-cxx11-abi-shared-with-deps/libtorch-cxx11-abi-shared-with-deps.SlackBuild
+++ b/python/python2-pluggy/python2-pluggy.SlackBuild
@@ -1,8 +1,9 @@
#!/bin/bash
-# Slackware build script for libtorch-cxx11-abi-shared-with-deps
+# Slackware build script for pluggy
-# Copyright 2024 Johannes Schoepfer, Germany
+# Copyright 2015-2019 Dimitris Zlatanidis Orestiada, Greece
+# Copyright 2022 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,12 +25,14 @@
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM=libtorch-cxx11-abi-shared-with-deps
-VERSION=${VERSION:-2.1.1}
+PRGNAM=python2-pluggy
+VERSION=${VERSION:-0.13.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+SRCNAM=pluggy
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -52,25 +55,23 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf libtorch
-unzip $CWD/$PRGNAM-$VERSION+cpu.zip
-
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} + -o \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-mkdir -p $PKG/opt/
-mv libtorch $PKG/opt
-rmdir $PKG/opt/libtorch/bin
-chmod 755 $PKG/opt/libtorch/lib/libgomp-52f2fd74.so.1
+python2 setup.py install --root=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.rst LICENSE README.rst $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/python/python2-pluggy/python2-pluggy.info b/python/python2-pluggy/python2-pluggy.info
new file mode 100644
index 0000000000..22082499a2
--- /dev/null
+++ b/python/python2-pluggy/python2-pluggy.info
@@ -0,0 +1,10 @@
+PRGNAM="python2-pluggy"
+VERSION="0.13.1"
+HOMEPAGE="https://github.com/pytest-dev/pluggy"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pluggy/pluggy-0.13.1.tar.gz"
+MD5SUM="7f610e28b8b34487336b585a3dfb803d"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="python2-setuptools-scm"
+MAINTAINER="Isaac Yu"
+EMAIL="isaacyu@protonmail.com"
diff --git a/python/python2-pluggy/slack-desc b/python/python2-pluggy/slack-desc
new file mode 100644
index 0000000000..4d8890c877
--- /dev/null
+++ b/python/python2-pluggy/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+python2-pluggy: python2-pluggy (mechanisms for python)
+python2-pluggy:
+python2-pluggy: This is the plugin manager as used by pytest but stripped of pytest
+python2-pluggy: specific details.
+python2-pluggy:
+python2-pluggy: Homepage: https://github.com/pytest-dev/pluggy
+python2-pluggy:
+python2-pluggy:
+python2-pluggy:
+python2-pluggy:
+python2-pluggy:
diff --git a/python/python3-PyMuPDF/README b/python/python3-PyMuPDF/README
index da799f0765..9a35043dd8 100644
--- a/python/python3-PyMuPDF/README
+++ b/python/python3-PyMuPDF/README
@@ -12,8 +12,13 @@ can also be handled like documents: .png, .jpg, .bmp, .tiff, etc.
krop (available on SBo) can use PyMuPDF for both rendering and cropping.
-To be on the safe side, keep the version of python3-PyMuPDF in sync with
-the mupdf version.
+Mupdf is not a dependency because all of the necessary code is built
+into PyMuPDF.
-Optional autodetected dependencies are python-fonttools, tesseract, and
+Optional runtime dependencies are python3-fonttools, tesseract, and
python3-pymupdf_fonts.
+
+To enable Tesseract OCR functions in PyMuPDF, the software must be
+installed and the system environment variable TESSDATA_PREFIX must
+be defined as follows:
+export TESSDATA_PREFIX=/usr/share/tessdata
diff --git a/python/python3-PyMuPDF/python3-PyMuPDF.SlackBuild b/python/python3-PyMuPDF/python3-PyMuPDF.SlackBuild
index 1d4a8b7a23..bb0690c9d7 100644
--- a/python/python3-PyMuPDF/python3-PyMuPDF.SlackBuild
+++ b/python/python3-PyMuPDF/python3-PyMuPDF.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-PyMuPDF
-VERSION=${VERSION:-1.23.26}
+VERSION=${VERSION:-1.24.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -52,27 +52,23 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf ${PRGNAM:8}-$VERSION
+rm -rf ${PRGNAM:8}-$VERSION mupdf*
+tar xvf $CWD/mupdf-*-source.tar.lz
+mv mupdf* mupdf
tar xvf $CWD/${PRGNAM:8}-$VERSION.tar.gz
cd ${PRGNAM:8}-$VERSION
-chown -R root:root .
-find -L . \
+chown -R root:root . ../mupdf
+find -L . ../mupdf \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-sed -i -e 's/"libclang", "swig", //' pyproject.toml
+sed -i -e "s/ret.append([ ]*'libclang'[ ]*)/pass/" \
+ -e "s/ret.append([ ]*'swig'[ ]*)/pass/" \
+ setup.py
-mv src_classic/fitz_old.i src_classic/fitz.i
-
-sed -i "s/fitz_old/fitz/g" setup.py \
- src_classic/__init__.py src_classic/utils.py
-
-export PYMUPDF_SETUP_MUPDF_BUILD=
-export PYMUPDF_SETUP_IMPLEMENTATIONS=a
-export PYMUPDF_INCLUDES=/usr/include:/usr/include/mupdf:/usr/include/freetype2
-export TESSDATA_PREFIX=/usr/share/tessdata
+export PYMUPDF_SETUP_MUPDF_BUILD=../mupdf
python3 -m build --wheel --no-isolation
python3 -m installer --destdir "$PKG" dist/*.whl
diff --git a/python/python3-PyMuPDF/python3-PyMuPDF.info b/python/python3-PyMuPDF/python3-PyMuPDF.info
index 6fbc4eef4d..69ed3b9c11 100644
--- a/python/python3-PyMuPDF/python3-PyMuPDF.info
+++ b/python/python3-PyMuPDF/python3-PyMuPDF.info
@@ -1,10 +1,12 @@
PRGNAM="python3-PyMuPDF"
-VERSION="1.23.26"
+VERSION="1.24.2"
HOMEPAGE="https://github.com/pymupdf/PyMuPDF"
-DOWNLOAD="https://github.com/pymupdf/PyMuPDF/archive/1.23.26/PyMuPDF-1.23.26.tar.gz"
-MD5SUM="3dd25058cbee9f45e823806901b804e8"
+DOWNLOAD="https://github.com/pymupdf/PyMuPDF/archive/1.24.2/PyMuPDF-1.24.2.tar.gz \
+ https://mupdf.com/downloads/archive/mupdf-1.24.1-source.tar.lz"
+MD5SUM="f78d847b251d46d60ba9ef0a22ba9293 \
+ 9bc87d3dd7acbd6f958b65353c73ebc5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="mupdf python3-psutil %README%"
+REQUIRES="python3-psutil %README%"
MAINTAINER="Alexander Verbovetsky"
EMAIL="alik@ejik.org"
diff --git a/python/python3-ZConfig/python3-ZConfig.SlackBuild b/python/python3-ZConfig/python3-ZConfig.SlackBuild
index 42efe8023f..b96b71c9cd 100644
--- a/python/python3-ZConfig/python3-ZConfig.SlackBuild
+++ b/python/python3-ZConfig/python3-ZConfig.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-ZConfig
-SRCNAM=${PRGNAM#python3-*}
-VERSION=${VERSION:-4.0}
+SRCNAM=zconfig
+VERSION=${VERSION:-4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-ZConfig/python3-ZConfig.info b/python/python3-ZConfig/python3-ZConfig.info
index f338c0ce30..8d77e17bb1 100644
--- a/python/python3-ZConfig/python3-ZConfig.info
+++ b/python/python3-ZConfig/python3-ZConfig.info
@@ -1,8 +1,8 @@
PRGNAM="python3-ZConfig"
-VERSION="4.0"
+VERSION="4.1"
HOMEPAGE="https://github.com/zopefoundation/ZConfig/"
-DOWNLOAD="https://pypi.python.org/packages/source/Z/ZConfig/ZConfig-4.0.tar.gz"
-MD5SUM="10b37b49d50a5006a7135cb086b72184"
+DOWNLOAD="https://pypi.python.org/packages/source/z/zconfig/zconfig-4.1.tar.gz"
+MD5SUM="2f0fd6de7d56ca7931453f486f347a39"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-aiohttp/python3-aiohttp.SlackBuild b/python/python3-aiohttp/python3-aiohttp.SlackBuild
index 691040d5f7..1f43b179fd 100644
--- a/python/python3-aiohttp/python3-aiohttp.SlackBuild
+++ b/python/python3-aiohttp/python3-aiohttp.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-aiohttp
-VERSION=${VERSION:-3.9.4}
+VERSION=${VERSION:-3.9.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-aiohttp/python3-aiohttp.info b/python/python3-aiohttp/python3-aiohttp.info
index 63c489598d..b17dc44277 100644
--- a/python/python3-aiohttp/python3-aiohttp.info
+++ b/python/python3-aiohttp/python3-aiohttp.info
@@ -1,8 +1,8 @@
PRGNAM="python3-aiohttp"
-VERSION="3.9.4"
+VERSION="3.9.5"
HOMEPAGE="https://aiohttp.readthedocs.io/en/stable/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/a/aiohttp/aiohttp-3.9.4.tar.gz"
-MD5SUM="f833062e805c0f3cf42a720b969d649c"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/a/aiohttp/aiohttp-3.9.5.tar.gz"
+MD5SUM="14829a5ea507c8219e3f679fceeb5585"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-async-timeout python3-attrs python3-yarl python3-aiosignal"
diff --git a/python/python3-astroid/python3-astroid.SlackBuild b/python/python3-astroid/python3-astroid.SlackBuild
index e106c9ffcc..ea008a6d25 100644
--- a/python/python3-astroid/python3-astroid.SlackBuild
+++ b/python/python3-astroid/python3-astroid.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for python3-astroid
-# Copyright 2022-2023 Dimitris Zlatanidis Orestiada, Greece
+# Copyright 2022-2024 Dimitris Zlatanidis Orestiada, Greece
# Copyright 2018-2019 Markus Rinne Finland
# All rights reserved.
#
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-astroid
SRCNAM=astroid
-VERSION=${VERSION:-3.0.2}
+VERSION=${VERSION:-3.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-astroid/python3-astroid.info b/python/python3-astroid/python3-astroid.info
index 4a58edf2ff..04d884d7ed 100644
--- a/python/python3-astroid/python3-astroid.info
+++ b/python/python3-astroid/python3-astroid.info
@@ -1,8 +1,8 @@
PRGNAM="python3-astroid"
-VERSION="3.0.2"
+VERSION="3.1.0"
HOMEPAGE="https://github.com/PyCQA/astroid"
-DOWNLOAD="https://files.pythonhosted.org/packages/58/03/c44924529da62cfa77a4a8f8fd5b0ac687f6f17dc68afd24d783d2046dfa/astroid-3.0.2.tar.gz"
-MD5SUM="978338f294cfabcc5aaa1b7db833ca34"
+DOWNLOAD="https://files.pythonhosted.org/packages/a9/b9/f11533eed9b65606fb02f1b0994d8ed0903358bc55a6b9759e42f1134725/astroid-3.1.0.tar.gz"
+MD5SUM="75c5ffd8edd0d2d74a6407db704a2e20"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-setuptools-opt typing-extensions"
diff --git a/python/python3-bsdiff4/README b/python/python3-bsdiff4/README
new file mode 100644
index 0000000000..88ff0ba161
--- /dev/null
+++ b/python/python3-bsdiff4/README
@@ -0,0 +1,12 @@
+binary diff and patch using the BSDIFF4-format
+
+The code is mostly derived from cx_bsdiff (written by Anthony
+Tuininga, http://cx-bsdiff.sourceforge.net/). The cx_bsdiff code in
+turn was derived from bsdiff, the standalone utility produced for BSD
+which can be found at http://www.daemonology.net/bsdiff. In addition
+to the two functions (diff and patch) cx_bsdiff provides, this package
+includes:
+
+an interface to the BSDIFF4-format
+
+command line interfaces: bsdiff4 and bspatch4
diff --git a/network/purple-hangouts/purple-hangouts.SlackBuild b/python/python3-bsdiff4/python3-bsdiff4.SlackBuild
index edeb75dac1..749f2e7e39 100644
--- a/network/purple-hangouts/purple-hangouts.SlackBuild
+++ b/python/python3-bsdiff4/python3-bsdiff4.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/bash
-# Slackware build script for python-certifi
+# Slackware build script for python3-bsdiff4
-# Copyright 2019 Marian Marinov, Sofia, Bulgaria
+# Copyright 2024, Lockywolf
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,13 +24,14 @@
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM=purple-hangouts
-SRCNAM=EionRobb-$PRGNAM
-VERSION=${VERSION:-effc9b41df8c}
+PRGNAM=python3-bsdiff4
+VERSION=${VERSION:-1.2.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+TGZNAM=bsdiff4
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -60,6 +61,9 @@ elif [ "$ARCH" = "i686" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
@@ -70,9 +74,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM-$VERSION
-unzip $CWD/$VERSION.zip
-cd $SRCNAM-$VERSION
+rm -rf $TGZNAM-$VERSION
+tar xvf $CWD/$TGZNAM-$VERSION.tar.gz
+cd $TGZNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -80,14 +84,15 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-make
-make install DESTDIR=$PKG
+python3 setup.py install --root=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a gpl3.txt README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+LICENSE README.rst $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/python/python3-bsdiff4/python3-bsdiff4.info b/python/python3-bsdiff4/python3-bsdiff4.info
new file mode 100644
index 0000000000..c031fc66f7
--- /dev/null
+++ b/python/python3-bsdiff4/python3-bsdiff4.info
@@ -0,0 +1,10 @@
+PRGNAM="python3-bsdiff4"
+VERSION="1.2.4"
+HOMEPAGE="https://pypi.org/project/bsdiff4/"
+DOWNLOAD="https://files.pythonhosted.org/packages/58/b2/ccf01309dda2c08e0600027bc0f5a99534c91f2f8728b5009fc363df6c2c/bsdiff4-1.2.4.tar.gz"
+MD5SUM="ebc06d059f3c4ed4c4a5b952f55ae239"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Lockywolf"
+EMAIL="for_sbo.python3-bsdiff4_2024-04-32@lockywolf.net"
diff --git a/python/python3-bsdiff4/slack-desc b/python/python3-bsdiff4/slack-desc
new file mode 100644
index 0000000000..24299a8e27
--- /dev/null
+++ b/python/python3-bsdiff4/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+python3-bsdiff4: python3-bsdiff4 (binary diff and patch using the BSDIFF4-format)
+python3-bsdiff4:
+python3-bsdiff4: Python binding for bsdiff4.
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
+python3-bsdiff4:
diff --git a/python/python3-cairocffi/python3-cairocffi.SlackBuild b/python/python3-cairocffi/python3-cairocffi.SlackBuild
index 31b9d1d7f3..a8cd54b8af 100644
--- a/python/python3-cairocffi/python3-cairocffi.SlackBuild
+++ b/python/python3-cairocffi/python3-cairocffi.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-cairocffi
SRCNAM=${PRGNAM#python3-*}
-VERSION=${VERSION:-1.6.1}
+VERSION=${VERSION:-1.7.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-cairocffi/python3-cairocffi.info b/python/python3-cairocffi/python3-cairocffi.info
index 093d5ec76b..443405dfff 100644
--- a/python/python3-cairocffi/python3-cairocffi.info
+++ b/python/python3-cairocffi/python3-cairocffi.info
@@ -1,8 +1,8 @@
PRGNAM="python3-cairocffi"
-VERSION="1.6.1"
+VERSION="1.7.0"
HOMEPAGE="https://github.com/Kozea/cairocffi"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/c/cairocffi/cairocffi-1.6.1.tar.gz"
-MD5SUM="57cd3346d099e2b4efbe5fad1bf085fc"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/c/cairocffi/cairocffi-1.7.0.tar.gz"
+MD5SUM="45546b73a7ec182d44340df50b5ce7a3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-pytest-runner"
diff --git a/python/python3-cloudflare/python3-cloudflare.SlackBuild b/python/python3-cloudflare/python3-cloudflare.SlackBuild
index 408bfe9426..3e96b6e0ef 100644
--- a/python/python3-cloudflare/python3-cloudflare.SlackBuild
+++ b/python/python3-cloudflare/python3-cloudflare.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2022 S.S. Bolokanar, Bulgaria <bolokanar@bulgars.org>
+# Copyright 2022 S.S. Bolokanar, Bulgaria <bolokanar@bulgarsociety.org>
# С. С. Болоканаръ, България
# All rights reserved.
#
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-cloudflare
SRCNAM=python-cloudflare
-VERSION=${VERSION:-2.19.2}
+VERSION=${VERSION:-2.19.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-cloudflare/python3-cloudflare.info b/python/python3-cloudflare/python3-cloudflare.info
index d27f8e4721..2eb193861d 100644
--- a/python/python3-cloudflare/python3-cloudflare.info
+++ b/python/python3-cloudflare/python3-cloudflare.info
@@ -1,10 +1,10 @@
PRGNAM="python3-cloudflare"
-VERSION="2.19.2"
+VERSION="2.19.4"
HOMEPAGE="https://github.com/cloudflare/python-cloudflare"
-DOWNLOAD="https://github.com/cloudflare/python-cloudflare/archive/2.19.2/python-cloudflare-2.19.2.tar.gz"
-MD5SUM="c42dc71320b156eed987c81d9d6e2b6a"
+DOWNLOAD="https://github.com/cloudflare/python-cloudflare/archive/2.19.4/python-cloudflare-2.19.4.tar.gz"
+MD5SUM="41fa857c2c6ad7124d1fe56dde624a9a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-jsonlines BeautifulSoup4"
MAINTAINER="S. S. Bolokanar"
-EMAIL="bolokanar@bulgars.org"
+EMAIL="bolokanar@bulgarsociety.org"
diff --git a/python/python3-dulwich/python3-dulwich.SlackBuild b/python/python3-dulwich/python3-dulwich.SlackBuild
index 83ecf9b137..45a80b20ec 100644
--- a/python/python3-dulwich/python3-dulwich.SlackBuild
+++ b/python/python3-dulwich/python3-dulwich.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-dulwich
SRCNAM=${PRGNAM#python3-*}
-VERSION=${VERSION:-0.21.7}
+VERSION=${VERSION:-0.22.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -72,7 +72,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS *.md *.rst COPYING NEWS $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS *.rst COPYING NEWS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/python/python3-dulwich/python3-dulwich.info b/python/python3-dulwich/python3-dulwich.info
index 17908a292c..9ecc757a3a 100644
--- a/python/python3-dulwich/python3-dulwich.info
+++ b/python/python3-dulwich/python3-dulwich.info
@@ -1,10 +1,10 @@
PRGNAM="python3-dulwich"
-VERSION="0.21.7"
+VERSION="0.22.1"
HOMEPAGE="https://www.dulwich.io/"
-DOWNLOAD="https://pypi.python.org/packages/source/d/dulwich/dulwich-0.21.7.tar.gz"
-MD5SUM="c9a188b7bbd0c23fbcce991dbec1f12a"
+DOWNLOAD="https://pypi.python.org/packages/source/d/dulwich/dulwich-0.22.1.tar.gz"
+MD5SUM="08e441d9f3c978a89ce682bfcc101dda"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="python3-setuptools-opt"
+REQUIRES="python3-setuptools-rust-opt"
MAINTAINER="Yth - Arnaud"
EMAIL="yth@ythogtha.org"
diff --git a/python/python3-filelock/python3-filelock.SlackBuild b/python/python3-filelock/python3-filelock.SlackBuild
index a550f526aa..16f1fbb573 100644
--- a/python/python3-filelock/python3-filelock.SlackBuild
+++ b/python/python3-filelock/python3-filelock.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-filelock
SRCNAM=filelock
-VERSION=${VERSION:-3.13.4}
+VERSION=${VERSION:-3.14.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-filelock/python3-filelock.info b/python/python3-filelock/python3-filelock.info
index 4f70a07e67..2be5bbe7ad 100644
--- a/python/python3-filelock/python3-filelock.info
+++ b/python/python3-filelock/python3-filelock.info
@@ -1,8 +1,8 @@
PRGNAM="python3-filelock"
-VERSION="3.13.4"
+VERSION="3.14.0"
HOMEPAGE="https://github.com/tox-dev/py-filelock"
-DOWNLOAD="https://github.com/tox-dev/py-filelock/archive/3.13.4/filelock-3.13.4.tar.gz"
-MD5SUM="b5d0234e09b488bdbc6418430bafbbc2"
+DOWNLOAD="https://github.com/tox-dev/py-filelock/archive/3.14.0/filelock-3.14.0.tar.gz"
+MD5SUM="2b7e84b2cf5a7f05d0589846d4bbd389"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-hatch_vcs"
diff --git a/python/python3-findpython/python3-findpython.SlackBuild b/python/python3-findpython/python3-findpython.SlackBuild
index 122d56e816..66f4d307c7 100644
--- a/python/python3-findpython/python3-findpython.SlackBuild
+++ b/python/python3-findpython/python3-findpython.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-findpython
-VERSION=${VERSION:-0.6.0}
+VERSION=${VERSION:-0.6.1}
SRCNAM=${SRCNAM:-findpython}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/python3-findpython/python3-findpython.info b/python/python3-findpython/python3-findpython.info
index cf1b481e6b..2e5563eb1c 100644
--- a/python/python3-findpython/python3-findpython.info
+++ b/python/python3-findpython/python3-findpython.info
@@ -1,8 +1,8 @@
PRGNAM="python3-findpython"
-VERSION="0.6.0"
+VERSION="0.6.1"
HOMEPAGE="https://github.com/frostming/findpython/"
-DOWNLOAD="https://github.com/frostming/findpython/archive/refs/tags/0.6.0/findpython-0.6.0.tar.gz"
-MD5SUM="97a71584462b75dc034b53a5f0be7f22"
+DOWNLOAD="https://github.com/frostming/findpython/archive/refs/tags/0.6.1/findpython-0.6.1.tar.gz"
+MD5SUM="302c92b3ac2ae8719b047384ac20c4b6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-pdm-backend"
diff --git a/python/python3-flake8_annotations/README b/python/python3-flake8_annotations/README
new file mode 100644
index 0000000000..9f800ce3f7
--- /dev/null
+++ b/python/python3-flake8_annotations/README
@@ -0,0 +1,2 @@
+flake8-annotations is a plugin for Flake8 that detects the absence
+of PEP 3107-style function annotations.
diff --git a/perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.SlackBuild b/python/python3-flake8_annotations/python3-flake8_annotations.SlackBuild
index 647543dde1..b22acc1c09 100644
--- a/perl/perl-Locale-Msgfmt/perl-Locale-Msgfmt.SlackBuild
+++ b/python/python3-flake8_annotations/python3-flake8_annotations.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/bash
-# Slackware build script for perl-Locale-Msgfmt
+# Slackware build script for python3-flake8_annotations
-# Copyright 2018 Nikos Giotis <nikos.giotis@gmail.com>, Athens, GR
+# Copyright 2024 Dimitris Zlatanidis Greece, Orestiada
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,14 +24,13 @@
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM=perl-Locale-Msgfmt
-VERSION=${VERSION:-0.15}
+PRGNAM=python3-flake8_annotations
+SRCNAM=flake8_annotations
+VERSION=${VERSION:-3.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-SRCNAM="$(printf $PRGNAM | cut -d- -f2-)"
-
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -40,9 +39,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -61,6 +57,9 @@ elif [ "$ARCH" = "i686" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
@@ -81,29 +80,14 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-perl Makefile.PL \
- PREFIX=/usr \
- INSTALLDIRS=vendor \
- INSTALLVENDORMAN1DIR=/usr/man/man1 \
- INSTALLVENDORMAN3DIR=/usr/man/man3
-make
-make test
-make install DESTDIR=$PKG
+python3 -m build --wheel --no-isolation
+python3 -m installer --destdir "$PKG" dist/*.whl
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
-
-find $PKG -depth -type d -empty -delete || true
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- Changes README \
- $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE CHANGELOG.md README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/python/python3-flake8_annotations/python3-flake8_annotations.info b/python/python3-flake8_annotations/python3-flake8_annotations.info
new file mode 100644
index 0000000000..e37f8d5879
--- /dev/null
+++ b/python/python3-flake8_annotations/python3-flake8_annotations.info
@@ -0,0 +1,10 @@
+PRGNAM="python3-flake8_annotations"
+VERSION="3.0.1"
+HOMEPAGE="https://github.com/sco1/flake8-annotations"
+DOWNLOAD="https://files.pythonhosted.org/packages/4a/1c/61f759cc427138603a3b2b9aee875193987e74a9c289b79bc9aa6c661687/flake8_annotations-3.0.1.tar.gz"
+MD5SUM="03b392727877d3f532062a48698d7d70"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="flake8 python3-poetry-core python3-attrs"
+MAINTAINER="Dimitris Zlatanidis"
+EMAIL="dslackw@gmail.com"
diff --git a/python/python3-flake8_annotations/slack-desc b/python/python3-flake8_annotations/slack-desc
new file mode 100644
index 0000000000..6ddd32ae8d
--- /dev/null
+++ b/python/python3-flake8_annotations/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+python3-flake8_annotations: python3-flake8_annotations (is a plugin for Flake8)
+python3-flake8_annotations:
+python3-flake8_annotations: flake8_annotations is a plugin for Flake8 that detects the absence
+python3-flake8_annotations: of PEP 3107-style function annotations.
+python3-flake8_annotations:
+python3-flake8_annotations: Homepage: https://github.com/sco1/flake8-annotations
+python3-flake8_annotations:
+python3-flake8_annotations:
+python3-flake8_annotations:
+python3-flake8_annotations:
+python3-flake8_annotations:
diff --git a/python/python3-grpcio/python3-grpcio.SlackBuild b/python/python3-grpcio/python3-grpcio.SlackBuild
index 023895ef9c..d58f76d759 100644
--- a/python/python3-grpcio/python3-grpcio.SlackBuild
+++ b/python/python3-grpcio/python3-grpcio.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-grpcio
-VERSION=${VERSION:-1.62.1}
+VERSION=${VERSION:-1.63.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-grpcio/python3-grpcio.info b/python/python3-grpcio/python3-grpcio.info
index e17fdc4016..f7f193c75f 100644
--- a/python/python3-grpcio/python3-grpcio.info
+++ b/python/python3-grpcio/python3-grpcio.info
@@ -1,8 +1,8 @@
PRGNAM="python3-grpcio"
-VERSION="1.62.1"
+VERSION="1.63.0"
HOMEPAGE="https://grpc.io/"
-DOWNLOAD="https://github.com/grpc/grpc/archive/v1.62.1/grpc-1.62.1.tar.gz"
-MD5SUM="e1d5a5152303a7edb48bdf5f60a22c04"
+DOWNLOAD="https://github.com/grpc/grpc/archive/v1.63.0/grpc-1.63.0.tar.gz"
+MD5SUM="a7a4cd8ce187c4a49d9498b3fcd148b2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="protobuf3 re2"
diff --git a/python/python3-identify/python3-identify.SlackBuild b/python/python3-identify/python3-identify.SlackBuild
index c4eb767328..754c338f1c 100644
--- a/python/python3-identify/python3-identify.SlackBuild
+++ b/python/python3-identify/python3-identify.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-identify
SRCNAM=identify
-VERSION=${VERSION:-2.5.35}
+VERSION=${VERSION:-2.5.36}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-identify/python3-identify.info b/python/python3-identify/python3-identify.info
index e77b165cf4..8fa4cf69a3 100644
--- a/python/python3-identify/python3-identify.info
+++ b/python/python3-identify/python3-identify.info
@@ -1,8 +1,8 @@
PRGNAM="python3-identify"
-VERSION="2.5.35"
+VERSION="2.5.36"
HOMEPAGE="https://github.com/pre-commit/identify"
-DOWNLOAD="https://files.pythonhosted.org/packages/c4/ba/680e84c24284eba70aebaaa90d03bd039453419151b0e6f92cd36bf69dd5/identify-2.5.35.tar.gz"
-MD5SUM="e761ee8cac68c8b0d5ad26ee0362f2ba"
+DOWNLOAD="https://files.pythonhosted.org/packages/aa/9a/83775a4e09de8b9d774a2217bfe03038c488778e58561e6970daa39b4801/identify-2.5.36.tar.gz"
+MD5SUM="6f9a1ccf7b934e11389a9dc4a3a0898a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-joblib/python3-joblib.SlackBuild b/python/python3-joblib/python3-joblib.SlackBuild
index 0d9f19d1c3..066b0d438c 100644
--- a/python/python3-joblib/python3-joblib.SlackBuild
+++ b/python/python3-joblib/python3-joblib.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-joblib
SRCNAM=joblib
-VERSION=${VERSION:-1.4.0}
+VERSION=${VERSION:-1.4.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-joblib/python3-joblib.info b/python/python3-joblib/python3-joblib.info
index 70c056d5cc..33becc4974 100644
--- a/python/python3-joblib/python3-joblib.info
+++ b/python/python3-joblib/python3-joblib.info
@@ -1,8 +1,8 @@
PRGNAM="python3-joblib"
-VERSION="1.4.0"
+VERSION="1.4.2"
HOMEPAGE="https://joblib.readthedocs.io/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/j/joblib/joblib-1.4.0.tar.gz"
-MD5SUM="496285737120962e2aea01ac21c8bdca"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/j/joblib/joblib-1.4.2.tar.gz"
+MD5SUM="979072af26696c75dc90b6c9db73c51b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-setuptools-opt"
diff --git a/python/python3-keyring/python3-keyring.SlackBuild b/python/python3-keyring/python3-keyring.SlackBuild
index 14c403ea65..385b8eedd8 100644
--- a/python/python3-keyring/python3-keyring.SlackBuild
+++ b/python/python3-keyring/python3-keyring.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-keyring
-VERSION=${VERSION:-25.1.0}
+VERSION=${VERSION:-25.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-keyring/python3-keyring.info b/python/python3-keyring/python3-keyring.info
index d82d86cb2c..b9a3a597c9 100644
--- a/python/python3-keyring/python3-keyring.info
+++ b/python/python3-keyring/python3-keyring.info
@@ -1,8 +1,8 @@
PRGNAM="python3-keyring"
-VERSION="25.1.0"
+VERSION="25.2.0"
HOMEPAGE="https://github.com/jaraco/keyring"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/k/keyring/keyring-25.1.0.tar.gz"
-MD5SUM="f5db2f4ff95722e35540e2b4fba2f83c"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/k/keyring/keyring-25.2.0.tar.gz"
+MD5SUM="02d8ecd28cc341d1875d4cc8412e4919"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python-importlib_metadata python3-jaraco.classes python3-jaraco.context python3-jaraco.functools secretstorage"
diff --git a/python/python3-librosa/python3-librosa.SlackBuild b/python/python3-librosa/python3-librosa.SlackBuild
index 2c4319b166..c34c2df935 100644
--- a/python/python3-librosa/python3-librosa.SlackBuild
+++ b/python/python3-librosa/python3-librosa.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for python3-librosa
-# Copyright 2023 Jeremy Hansen jebrhansen+SBo@gmail.com
+# Copyright 2023-2024 Jeremy Hansen <jebrhansen+SBo@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-librosa
SRCNAM=librosa
-VERSION=${VERSION:-0.10.1}
+VERSION=${VERSION:-0.10.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -47,20 +47,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/python/python3-librosa/python3-librosa.info b/python/python3-librosa/python3-librosa.info
index e58dd15819..33e2a1a4cc 100644
--- a/python/python3-librosa/python3-librosa.info
+++ b/python/python3-librosa/python3-librosa.info
@@ -1,8 +1,8 @@
PRGNAM="python3-librosa"
-VERSION="0.10.1"
+VERSION="0.10.2"
HOMEPAGE="https://librosa.org/"
-DOWNLOAD="https://github.com/librosa/librosa/archive/refs/tags/0.10.1/librosa-0.10.1.tar.gz"
-MD5SUM="5c9d22f503c0ea20dac73e775cdca2c9"
+DOWNLOAD="https://github.com/librosa/librosa/archive/refs/tags/0.10.2/librosa-0.10.2.tar.gz"
+MD5SUM="dfd6cd2aa29050c61cb73c942dee768f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-lazy_loader python3-matplotlib ipython python3-mir_eval python3-soundfile audioread python3-soxr python3-numba python3-llvmlite msgpack-python python3-pooch scikit-learn python3-presets"
diff --git a/python/python3-paste/python3-paste.SlackBuild b/python/python3-paste/python3-paste.SlackBuild
index b7916536f1..d6ed374f44 100644
--- a/python/python3-paste/python3-paste.SlackBuild
+++ b/python/python3-paste/python3-paste.SlackBuild
@@ -23,8 +23,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-paste
-SRCNAM=Paste
-VERSION=${VERSION:-3.9.0}
+SRCNAM=${PRGNAM#python3-*}
+VERSION=${VERSION:-3.10.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-paste/python3-paste.info b/python/python3-paste/python3-paste.info
index 6b4bd329c3..8ae60196d4 100644
--- a/python/python3-paste/python3-paste.info
+++ b/python/python3-paste/python3-paste.info
@@ -1,8 +1,8 @@
PRGNAM="python3-paste"
-VERSION="3.9.0"
+VERSION="3.10.1"
HOMEPAGE="https://pythonpaste.readthedocs.io/"
-DOWNLOAD="https://pypi.python.org/packages/source/P/Paste/Paste-3.9.0.tar.gz"
-MD5SUM="82c6f39498a69220aba9cbb7453f9222"
+DOWNLOAD="https://pypi.python.org/packages/source/p/paste/paste-3.10.1.tar.gz"
+MD5SUM="7d59952c9e108d8d381944b40e90e47a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-pdm-backend/python3-pdm-backend.SlackBuild b/python/python3-pdm-backend/python3-pdm-backend.SlackBuild
index de68248567..2910527c10 100644
--- a/python/python3-pdm-backend/python3-pdm-backend.SlackBuild
+++ b/python/python3-pdm-backend/python3-pdm-backend.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-pdm-backend
-VERSION=${VERSION:-2.2.0}
+VERSION=${VERSION:-2.3.0}
SRCNAM=${SRCNAM:-pdm_backend}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/python3-pdm-backend/python3-pdm-backend.info b/python/python3-pdm-backend/python3-pdm-backend.info
index 1307def902..4decac62d8 100644
--- a/python/python3-pdm-backend/python3-pdm-backend.info
+++ b/python/python3-pdm-backend/python3-pdm-backend.info
@@ -1,8 +1,8 @@
PRGNAM="python3-pdm-backend"
-VERSION="2.2.0"
+VERSION="2.3.0"
HOMEPAGE="https://github.com/pdm-project/pdm-backend"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pdm_backend/pdm_backend-2.2.0.tar.gz"
-MD5SUM="82409996b4621df61b054f0d0fafcd5c"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pdm_backend/pdm_backend-2.3.0.tar.gz"
+MD5SUM="f660cc3f12458e31ab1561c54aedb258"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python-importlib_metadata"
diff --git a/python/python3-pdm/python3-pdm.SlackBuild b/python/python3-pdm/python3-pdm.SlackBuild
index ad4b992ea7..11463f8af7 100644
--- a/python/python3-pdm/python3-pdm.SlackBuild
+++ b/python/python3-pdm/python3-pdm.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-pdm
-VERSION=${VERSION:-2.14.0}
+VERSION=${VERSION:-2.15.1}
SRCNAM=${SRCNAM:-pdm}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/python3-pdm/python3-pdm.info b/python/python3-pdm/python3-pdm.info
index 23c2a09893..ebf750dcbf 100644
--- a/python/python3-pdm/python3-pdm.info
+++ b/python/python3-pdm/python3-pdm.info
@@ -1,8 +1,8 @@
PRGNAM="python3-pdm"
-VERSION="2.14.0"
+VERSION="2.15.1"
HOMEPAGE="https://github.com/pdm-project/pdm"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pdm/pdm-2.14.0.tar.gz"
-MD5SUM="a072cd3e64231851d736cc3402b01d9f"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pdm/pdm-2.15.1.tar.gz"
+MD5SUM="190ac7f08502b3a2ea1170a7c9a0de1a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-blinker python3-dotenv python3-tomlkit python3-dep-logic python3-findpython python3-resolvelib python3-shellingham python3-unearth python3-cachecontrol requests-toolbelt python3-rich python3-hishel"
diff --git a/python/python3-platformdirs/python3-platformdirs.SlackBuild b/python/python3-platformdirs/python3-platformdirs.SlackBuild
index dac8d988e2..6e052c1995 100644
--- a/python/python3-platformdirs/python3-platformdirs.SlackBuild
+++ b/python/python3-platformdirs/python3-platformdirs.SlackBuild
@@ -26,8 +26,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-platformdirs
-VERSION=${VERSION:-4.2.0}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-4.2.1}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-platformdirs/python3-platformdirs.info b/python/python3-platformdirs/python3-platformdirs.info
index 7357ff024c..adda1fbb2b 100644
--- a/python/python3-platformdirs/python3-platformdirs.info
+++ b/python/python3-platformdirs/python3-platformdirs.info
@@ -1,8 +1,8 @@
PRGNAM="python3-platformdirs"
-VERSION="4.2.0"
+VERSION="4.2.1"
HOMEPAGE="https://github.com/platformdirs/platformdirs"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/p/platformdirs/platformdirs-4.2.0.tar.gz"
-MD5SUM="658f1b6259e29c472ea67bc60f3e35f1"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/platformdirs/platformdirs-4.2.1.tar.gz"
+MD5SUM="20ed4a4ffc70a4f7e58e974355ad1895"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-hatch_vcs python3-setuptools-scm-opt"
diff --git a/python/python3-plotly/python3-plotly.SlackBuild b/python/python3-plotly/python3-plotly.SlackBuild
index 99fec36800..49e9e4af95 100644
--- a/python/python3-plotly/python3-plotly.SlackBuild
+++ b/python/python3-plotly/python3-plotly.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-plotly
-VERSION=${VERSION:-5.21.0}
+VERSION=${VERSION:-5.22.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-plotly/python3-plotly.info b/python/python3-plotly/python3-plotly.info
index 21f9e27d28..e0daa6084f 100644
--- a/python/python3-plotly/python3-plotly.info
+++ b/python/python3-plotly/python3-plotly.info
@@ -1,8 +1,8 @@
PRGNAM="python3-plotly"
-VERSION="5.21.0"
+VERSION="5.22.0"
HOMEPAGE="https://github.com/plotly/plotly.py"
-DOWNLOAD="https://github.com/plotly/plotly.py/archive/v5.21.0/plotly.py-5.21.0.tar.gz"
-MD5SUM="6dbbb325bbf42cf3860ac77af0c58904"
+DOWNLOAD="https://github.com/plotly/plotly.py/archive/v5.22.0/plotly.py-5.22.0.tar.gz"
+MD5SUM="43e9f68f9b78083ae4a0bd8842c28818"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-tenacity"
diff --git a/python/python3-pluggy/python3-pluggy.SlackBuild b/python/python3-pluggy/python3-pluggy.SlackBuild
index 51dc975a0c..07760a7697 100644
--- a/python/python3-pluggy/python3-pluggy.SlackBuild
+++ b/python/python3-pluggy/python3-pluggy.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-pluggy
SRCNAM=pluggy
-VERSION=${VERSION:-1.4.0}
+VERSION=${VERSION:-1.5.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-pluggy/python3-pluggy.info b/python/python3-pluggy/python3-pluggy.info
index e8f7e3f8eb..5dc907446d 100644
--- a/python/python3-pluggy/python3-pluggy.info
+++ b/python/python3-pluggy/python3-pluggy.info
@@ -1,8 +1,8 @@
PRGNAM="python3-pluggy"
-VERSION="1.4.0"
+VERSION="1.5.0"
HOMEPAGE="https://github.com/pytest-dev/pluggy"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pluggy/pluggy-1.4.0.tar.gz"
-MD5SUM="ffb69741271eaeefab3f2ef2435e2d5f"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pluggy/pluggy-1.5.0.tar.gz"
+MD5SUM="ac0870be78ba0ee227a5c3955efeba59"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-pylint/python3-pylint.SlackBuild b/python/python3-pylint/python3-pylint.SlackBuild
index e44d5f2ecd..9e494f3cf6 100644
--- a/python/python3-pylint/python3-pylint.SlackBuild
+++ b/python/python3-pylint/python3-pylint.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for python3-pylint
-# Copyright 2022-2023 Dimitris Zlatanidis Orestiada, Greece
+# Copyright 2022-2024 Dimitris Zlatanidis Orestiada, Greece
# Copyright 2018 Markus Rinne Finland
# All rights reserved.
#
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-pylint
SRCNAM=pylint
-VERSION=${VERSION:-3.0.2}
+VERSION=${VERSION:-3.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -84,11 +84,6 @@ find -L . \
python3 -m flit_core.wheel
python3 -m installer -d "$PKG" dist/*.whl
-# Rename executables to avoid conflicts with Python 2 version of pylint.
-for executable in pylint-config pylint pyreverse symilar; do
- mv $PKG/usr/bin/${executable}{,3}
-done
-
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
diff --git a/python/python3-pylint/python3-pylint.info b/python/python3-pylint/python3-pylint.info
index 3e5e117826..104e9b1b74 100644
--- a/python/python3-pylint/python3-pylint.info
+++ b/python/python3-pylint/python3-pylint.info
@@ -1,8 +1,8 @@
PRGNAM="python3-pylint"
-VERSION="3.0.2"
+VERSION="3.1.0"
HOMEPAGE="https://www.pylint.org"
-DOWNLOAD="https://files.pythonhosted.org/packages/10/ab/f0ad2a4fb3265d71685627db452398f769b48d64d81c7d66ca8c4f4c198b/pylint-3.0.2.tar.gz"
-MD5SUM="73baaa9253c5e16850dd9c89128fb3d2"
+DOWNLOAD="https://files.pythonhosted.org/packages/35/1c/4a8135f77a4ec8c0a6dc1d4543dd6fee55b36bb8bf629e2bcce8a94763a9/pylint-3.1.0.tar.gz"
+MD5SUM="b73081ea9c0e33139b75d0d379dd78e0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-astroid python3-isort python3-mccabe python3-dill python3-tomlkit python3-platformdirs"
diff --git a/python/python3-pypdf/README b/python/python3-pypdf/README
new file mode 100644
index 0000000000..f6c203ff4b
--- /dev/null
+++ b/python/python3-pypdf/README
@@ -0,0 +1,7 @@
+pypdf is a free and open-source pure-python PDF library capable of
+splitting, merging, cropping, and transforming the pages of PDF files.
+It can also add custom data, viewing options, and passwords to PDF
+files. pypdf can retrieve text and metadata from PDFs as well.
+
+pypdf is a descendant of PyPDF2, which was a fork from the original
+pyPdf. (Both pyPdf and PyPDF2 are available on SBo.)
diff --git a/python/pyPdf/pyPdf.SlackBuild b/python/python3-pypdf/python3-pypdf.SlackBuild
index c8e815cc5c..17027e184b 100644
--- a/python/pyPdf/pyPdf.SlackBuild
+++ b/python/python3-pypdf/python3-pypdf.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/bash
-# Slackware build script for pyPdf
+# Slackware build script for python3-pypdf
-# Copyright (c) 2017 Alan Alberghini <414N@slacky.it>
+# Copyright 2024, Alexander Verbovetsky, Moscow, Russia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,26 +21,15 @@
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -----------------------------------------------------------------------------
-#
-# Build history:
-#
-# 1 - Initial release.
cd $(dirname $0) ; CWD=$(pwd)
-PRGNAM=pyPdf
-VERSION=${VERSION:-1.13}
+PRGNAM=python3-pypdf
+VERSION=${VERSION:-4.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-DOCS="README CHANGELOG"
-
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -54,6 +43,10 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
@@ -63,6 +56,9 @@ elif [ "$ARCH" = "i686" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
@@ -73,9 +69,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf pypdf-$VERSION
+tar xvf $CWD/pypdf-$VERSION.tar.gz
+cd pypdf-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -83,13 +79,14 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-python setup.py install --root=$PKG
+python3 -m build --wheel --no-isolation
+python3 -m installer --destdir "$PKG" dist/*.whl
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG* README* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/python/python3-pypdf/python3-pypdf.info b/python/python3-pypdf/python3-pypdf.info
new file mode 100644
index 0000000000..9f7ff1642e
--- /dev/null
+++ b/python/python3-pypdf/python3-pypdf.info
@@ -0,0 +1,10 @@
+PRGNAM="python3-pypdf"
+VERSION="4.2.0"
+HOMEPAGE="https://github.com/py-pdf/pypdf"
+DOWNLOAD="https://github.com/py-pdf/pypdf/archive/4.2.0/pypdf-4.2.0.tar.gz"
+MD5SUM="26feb8968a26c42a974fac391bfe4a22"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="python3-wheel cryptography"
+MAINTAINER="Alexander Verbovetsky"
+EMAIL="alik@ejik.org"
diff --git a/python/python3-pypdf/slack-desc b/python/python3-pypdf/slack-desc
new file mode 100644
index 0000000000..49af322ab1
--- /dev/null
+++ b/python/python3-pypdf/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+python3-pypdf: python3-pypdf (Python PDF library)
+python3-pypdf:
+python3-pypdf: pypdf is a free and open-source pure-python PDF library capable of
+python3-pypdf: splitting, merging, cropping, and transforming the pages of PDF
+python3-pypdf: files. It can also add custom data, viewing options, and passwords
+python3-pypdf: to PDFfiles. pypdf can retrieve text and metadata from PDFs as well.
+python3-pypdf:
+python3-pypdf:
+python3-pypdf: Homepage: https://github.com/py-pdf/pypdf
+python3-pypdf:
+python3-pypdf:
diff --git a/python/python3-pytest/python3-pytest.SlackBuild b/python/python3-pytest/python3-pytest.SlackBuild
index 0391443576..79836cd610 100644
--- a/python/python3-pytest/python3-pytest.SlackBuild
+++ b/python/python3-pytest/python3-pytest.SlackBuild
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-pytest
SRCNAM=pytest
-VERSION=${VERSION:-8.1.1}
+VERSION=${VERSION:-8.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-pytest/python3-pytest.info b/python/python3-pytest/python3-pytest.info
index 0bc46e97b8..671dc3a0eb 100644
--- a/python/python3-pytest/python3-pytest.info
+++ b/python/python3-pytest/python3-pytest.info
@@ -1,8 +1,8 @@
PRGNAM="python3-pytest"
-VERSION="8.1.1"
+VERSION="8.2.0"
HOMEPAGE="http://pytest.org"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pytest/pytest-8.1.1.tar.gz"
-MD5SUM="6a85eccffeb0fa15c104f408d82ce7fa"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/p/pytest/pytest-8.2.0.tar.gz"
+MD5SUM="89fe0664e310ee8ee6a8bc1639f44775"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-iniconfig python3-exceptiongroup python3-setuptools-opt"
diff --git a/python/python3-regex/python3-regex.SlackBuild b/python/python3-regex/python3-regex.SlackBuild
index 9df6529e68..5b8cc21f34 100644
--- a/python/python3-regex/python3-regex.SlackBuild
+++ b/python/python3-regex/python3-regex.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-regex
-VERSION=${VERSION:-2024.4.16}
+VERSION=${VERSION:-2024.4.28}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-regex/python3-regex.info b/python/python3-regex/python3-regex.info
index 29f51b0f1f..01f41b36c0 100644
--- a/python/python3-regex/python3-regex.info
+++ b/python/python3-regex/python3-regex.info
@@ -1,8 +1,8 @@
PRGNAM="python3-regex"
-VERSION="2024.4.16"
+VERSION="2024.4.28"
HOMEPAGE="https://bitbucket.org/mrabarnett/mrab-regex"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/r/regex/regex-2024.4.16.tar.gz"
-MD5SUM="1887cc71be6feacb692246944be9f59b"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/r/regex/regex-2024.4.28.tar.gz"
+MD5SUM="543f5cb066ee5f4a3c02573b265ef32d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-reportlab/python3-reportlab.SlackBuild b/python/python3-reportlab/python3-reportlab.SlackBuild
index af46618154..4216cfb977 100644
--- a/python/python3-reportlab/python3-reportlab.SlackBuild
+++ b/python/python3-reportlab/python3-reportlab.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-reportlab
-VERSION=${VERSION:-4.1.0}
+VERSION=${VERSION:-4.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-reportlab/python3-reportlab.info b/python/python3-reportlab/python3-reportlab.info
index 260688445d..79c9f7cb0f 100644
--- a/python/python3-reportlab/python3-reportlab.info
+++ b/python/python3-reportlab/python3-reportlab.info
@@ -1,8 +1,8 @@
PRGNAM="python3-reportlab"
-VERSION="4.1.0"
+VERSION="4.2.0"
HOMEPAGE="https://reportlab.com"
-DOWNLOAD="https://pypi.org/packages/source/r/reportlab/reportlab-4.1.0.tar.gz"
-MD5SUM="54c5960ee77e4b52c3c4cb096046b861"
+DOWNLOAD="https://pypi.org/packages/source/r/reportlab/reportlab-4.2.0.tar.gz"
+MD5SUM="83aa69a14f3450cd8e84e376d8713436"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-textdistance/python3-textdistance.SlackBuild b/python/python3-textdistance/python3-textdistance.SlackBuild
index 0900069898..73bd4a37d2 100644
--- a/python/python3-textdistance/python3-textdistance.SlackBuild
+++ b/python/python3-textdistance/python3-textdistance.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-textdistance
-VERSION=${VERSION:-4.6.1}
+VERSION=${VERSION:-4.6.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -49,20 +49,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/python/python3-textdistance/python3-textdistance.info b/python/python3-textdistance/python3-textdistance.info
index 099ec2083e..6c3440fc08 100644
--- a/python/python3-textdistance/python3-textdistance.info
+++ b/python/python3-textdistance/python3-textdistance.info
@@ -1,8 +1,8 @@
PRGNAM="python3-textdistance"
-VERSION="4.6.1"
+VERSION="4.6.2"
HOMEPAGE="https://github.com/life4/textdistance"
-DOWNLOAD="https://github.com/life4/textdistance/archive/4.6.1/textdistance-4.6.1.tar.gz"
-MD5SUM="1e642eaf827b7a6c611e1ac7319a12b0"
+DOWNLOAD="https://github.com/life4/textdistance/archive/4.6.2/textdistance-4.6.2.tar.gz"
+MD5SUM="ce45430e7d68ed7ca8d3bf2cdd0148d7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/python3-threadpoolctl/python3-threadpoolctl.SlackBuild b/python/python3-threadpoolctl/python3-threadpoolctl.SlackBuild
index 93ab6d58c5..d1d64ee6ec 100644
--- a/python/python3-threadpoolctl/python3-threadpoolctl.SlackBuild
+++ b/python/python3-threadpoolctl/python3-threadpoolctl.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-threadpoolctl
SRCNAM=threadpoolctl
-VERSION=${VERSION:-3.4.0}
+VERSION=${VERSION:-3.5.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-threadpoolctl/python3-threadpoolctl.info b/python/python3-threadpoolctl/python3-threadpoolctl.info
index 8af0b0205f..b08c062aeb 100644
--- a/python/python3-threadpoolctl/python3-threadpoolctl.info
+++ b/python/python3-threadpoolctl/python3-threadpoolctl.info
@@ -1,8 +1,8 @@
PRGNAM="python3-threadpoolctl"
-VERSION="3.4.0"
+VERSION="3.5.0"
HOMEPAGE="https://github.com/joblib/threadpoolctl/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/t/threadpoolctl/threadpoolctl-3.4.0.tar.gz"
-MD5SUM="99b941e8022c91317c1e9bf6decc808b"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/t/threadpoolctl/threadpoolctl-3.5.0.tar.gz"
+MD5SUM="3ae140ae3bb08f43fdc19db73bcdf478"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-build"
diff --git a/python/python3-tox/python3-tox.SlackBuild b/python/python3-tox/python3-tox.SlackBuild
index ca2466b884..bdc47bcacf 100644
--- a/python/python3-tox/python3-tox.SlackBuild
+++ b/python/python3-tox/python3-tox.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-tox
-VERSION=${VERSION:-4.14.2}
+VERSION=${VERSION:-4.15.0}
SRCNAM=${SRCNAM:-tox}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/python3-tox/python3-tox.info b/python/python3-tox/python3-tox.info
index caf897a8e5..c016ff83ba 100644
--- a/python/python3-tox/python3-tox.info
+++ b/python/python3-tox/python3-tox.info
@@ -1,8 +1,8 @@
PRGNAM="python3-tox"
-VERSION="4.14.2"
+VERSION="4.15.0"
HOMEPAGE="https://tox.wiki/"
-DOWNLOAD="https://github.com/tox-dev/tox/archive/refs/tags/4.14.2/tox-4.14.2.tar.gz"
-MD5SUM="656a8032cfa8cd5b16046a64ca218d7d"
+DOWNLOAD="https://github.com/tox-dev/tox/archive/refs/tags/4.15.0/tox-4.15.0.tar.gz"
+MD5SUM="913ef63e6b6fde79cf84d9126c2ee023"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-cachetools colorama python3-pyproject-api python3-virtualenv"
diff --git a/python/python3-unearth/python3-unearth.SlackBuild b/python/python3-unearth/python3-unearth.SlackBuild
index 6d1d97d55f..8274402fc5 100644
--- a/python/python3-unearth/python3-unearth.SlackBuild
+++ b/python/python3-unearth/python3-unearth.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-unearth
-VERSION=${VERSION:-0.15.1}
+VERSION=${VERSION:-0.15.2}
SRCNAM=${SRCNAM:-unearth}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/python/python3-unearth/python3-unearth.info b/python/python3-unearth/python3-unearth.info
index dccf7a394c..c5ab22fc2b 100644
--- a/python/python3-unearth/python3-unearth.info
+++ b/python/python3-unearth/python3-unearth.info
@@ -1,8 +1,8 @@
PRGNAM="python3-unearth"
-VERSION="0.15.1"
+VERSION="0.15.2"
HOMEPAGE="https://github.com/frostming/unearth"
-DOWNLOAD="https://github.com/frostming/unearth/archive/refs/tags/0.15.1/unearth-0.15.1.tar.gz"
-MD5SUM="443e252fdc6d243b070f475a2ebd21f4"
+DOWNLOAD="https://github.com/frostming/unearth/archive/refs/tags/0.15.2/unearth-0.15.2.tar.gz"
+MD5SUM="ef81959caa19f0c79f9aed65d818ed5a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-pdm-backend python3-httpx"
diff --git a/python/python3-virtualenv/python3-virtualenv.SlackBuild b/python/python3-virtualenv/python3-virtualenv.SlackBuild
index 281c4bb62d..81d989dde0 100644
--- a/python/python3-virtualenv/python3-virtualenv.SlackBuild
+++ b/python/python3-virtualenv/python3-virtualenv.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-virtualenv
SRCNAM=virtualenv
-VERSION=${VERSION:-20.25.3}
+VERSION=${VERSION:-20.26.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/python/python3-virtualenv/python3-virtualenv.info b/python/python3-virtualenv/python3-virtualenv.info
index 85b3e59c0d..b96d36ed13 100644
--- a/python/python3-virtualenv/python3-virtualenv.info
+++ b/python/python3-virtualenv/python3-virtualenv.info
@@ -1,8 +1,8 @@
PRGNAM="python3-virtualenv"
-VERSION="20.25.3"
+VERSION="20.26.1"
HOMEPAGE="https://virtualenv.pypa.io/"
-DOWNLOAD="https://github.com/pypa/virtualenv/archive/20.25.3/virtualenv-20.25.3.tar.gz"
-MD5SUM="da8e76f886f9d6e93048071c16e96b55"
+DOWNLOAD="https://github.com/pypa/virtualenv/archive/20.26.1/virtualenv-20.26.1.tar.gz"
+MD5SUM="f7d19fa64089623329de3a4f6cd485f0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-setuptools-scm-opt python3-distlib python3-filelock python3-platformdirs"
diff --git a/python/python3-wurlitzer/python3-wurlitzer.SlackBuild b/python/python3-wurlitzer/python3-wurlitzer.SlackBuild
index 4ff237441c..8a47c64993 100644
--- a/python/python3-wurlitzer/python3-wurlitzer.SlackBuild
+++ b/python/python3-wurlitzer/python3-wurlitzer.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for python3-wurlitzer
-# Copyright 2023 Isaac Yu <isaacyu@protonmail.com>
+# Copyright 2023-2024 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-wurlitzer
-VERSION=${VERSION:-3.0.3}
+VERSION=${VERSION:-3.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -49,20 +49,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/python/python3-wurlitzer/python3-wurlitzer.info b/python/python3-wurlitzer/python3-wurlitzer.info
index d6d4b9e72d..b89ea03fc2 100644
--- a/python/python3-wurlitzer/python3-wurlitzer.info
+++ b/python/python3-wurlitzer/python3-wurlitzer.info
@@ -1,8 +1,8 @@
PRGNAM="python3-wurlitzer"
-VERSION="3.0.3"
+VERSION="3.1.0"
HOMEPAGE="https://github.com/minrk/wurlitzer"
-DOWNLOAD="https://github.com/minrk/wurlitzer/archive/3.0.3/wurlitzer-3.0.3.tar.gz"
-MD5SUM="b9808275a4cda9485db8d8ebe4132066"
+DOWNLOAD="https://github.com/minrk/wurlitzer/archive/3.1.0/wurlitzer-3.1.0.tar.gz"
+MD5SUM="ce760bfc29daedca7cab4e7847d934ec"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/python/terminado/terminado.SlackBuild b/python/terminado/terminado.SlackBuild
index 9f5c3b1580..5992c8be24 100644
--- a/python/terminado/terminado.SlackBuild
+++ b/python/terminado/terminado.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=terminado
-VERSION=${VERSION:-0.18.0}
+VERSION=${VERSION:-0.18.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -48,20 +48,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
diff --git a/python/terminado/terminado.info b/python/terminado/terminado.info
index 181d11162d..7e61fcaa57 100644
--- a/python/terminado/terminado.info
+++ b/python/terminado/terminado.info
@@ -1,8 +1,8 @@
PRGNAM="terminado"
-VERSION="0.18.0"
+VERSION="0.18.1"
HOMEPAGE="https://github.com/jupyter/terminado"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/t/terminado/terminado-0.18.0.tar.gz"
-MD5SUM="30c6e8e61041582724be06f387130071"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/t/terminado/terminado-0.18.1.tar.gz"
+MD5SUM="9b411cdada4fe129e60c75f95d17ffa9"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3-ptyprocess python3-tornado python3-hatchling"
diff --git a/python/tox/tox.info b/python/tox/tox.info
index afafe63cbd..3eb612271c 100644
--- a/python/tox/tox.info
+++ b/python/tox/tox.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://files.pythonhosted.org/packages/fc/aa/31296c7cf387d8e1fe57c982
MD5SUM="5cd03e4edc4eeb808cd1cf3eced9debc"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="python2-py virtualenv pluggy"
+REQUIRES="python2-py virtualenv python2-pluggy"
MAINTAINER="Dimitris Zlatanidis"
EMAIL="d.zlatanidis@gmail.com"
diff --git a/ruby/ruby-build/ruby-build.SlackBuild b/ruby/ruby-build/ruby-build.SlackBuild
index c54ef40835..58891d4b7f 100644
--- a/ruby/ruby-build/ruby-build.SlackBuild
+++ b/ruby/ruby-build/ruby-build.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ruby-build
-VERSION=${VERSION:-20240416}
+VERSION=${VERSION:-20240501}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/ruby/ruby-build/ruby-build.info b/ruby/ruby-build/ruby-build.info
index c34d1d5262..dd6541ed28 100644
--- a/ruby/ruby-build/ruby-build.info
+++ b/ruby/ruby-build/ruby-build.info
@@ -1,8 +1,8 @@
PRGNAM="ruby-build"
-VERSION="20240416"
+VERSION="20240501"
HOMEPAGE="https://github.com/rbenv/ruby-build"
-DOWNLOAD="https://github.com/rbenv/ruby-build/archive/v20240416/ruby-build-20240416.tar.gz"
-MD5SUM="b4da2b0ae4ee9765943c620b3f72e925"
+DOWNLOAD="https://github.com/rbenv/ruby-build/archive/v20240501/ruby-build-20240501.tar.gz"
+MD5SUM="4106dda97bfb33c5302b30d2fef19428"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/B-em/B-em.SlackBuild b/system/B-em/B-em.SlackBuild
index 1d64e6b1d4..6facdf20bd 100644
--- a/system/B-em/B-em.SlackBuild
+++ b/system/B-em/B-em.SlackBuild
@@ -25,11 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=B-em
-VERSION=${VERSION:-388e1d8}
+VERSION=${VERSION:-20240306_5557a36}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-COMMIT=${COMMIT:-388e1d8db63c4f6b0e68d6e4235b9bd16984a65b}
+COMMIT=${COMMIT:-5557a369a0740bbb8cc11f345a05f9e7641c87e2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/system/B-em/B-em.info b/system/B-em/B-em.info
index eaf047a9c5..0d08dc8e64 100644
--- a/system/B-em/B-em.info
+++ b/system/B-em/B-em.info
@@ -1,8 +1,8 @@
PRGNAM="B-em"
-VERSION="388e1d8"
+VERSION="20240306_5557a36"
HOMEPAGE="https://github.com/stardot/b-em"
-DOWNLOAD="https://github.com/stardot/b-em/archive/388e1d8db63c4f6b0e68d6e4235b9bd16984a65b/b-em-388e1d8db63c4f6b0e68d6e4235b9bd16984a65b.tar.gz"
-MD5SUM="ea2234e2e97437c4c60377963f346fba"
+DOWNLOAD="https://github.com/stardot/b-em/archive/5557a369a0740bbb8cc11f345a05f9e7641c87e2/b-em-5557a369a0740bbb8cc11f345a05f9e7641c87e2.tar.gz"
+MD5SUM="66a080b2b34d89c8b66454e535a17227"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="allegro"
diff --git a/system/B-em/slack-desc b/system/B-em/slack-desc
index 1db2863009..121e3d2dad 100644
--- a/system/B-em/slack-desc
+++ b/system/B-em/slack-desc
@@ -14,6 +14,6 @@ B-em: 2nd processors.
B-em:
B-em: B-em is licensed under the GPL, see COPYING for more details.
B-em:
-B-em:
+B-em: Homepage at https://github.com/stardot/b-em
B-em:
B-em:
diff --git a/system/CPU-X/CPU-X.SlackBuild b/system/CPU-X/CPU-X.SlackBuild
index ea1763bcb1..46d70fa9c8 100644
--- a/system/CPU-X/CPU-X.SlackBuild
+++ b/system/CPU-X/CPU-X.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=CPU-X
-VERSION=${VERSION:-5.0.3}
+VERSION=${VERSION:-5.0.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/CPU-X/CPU-X.info b/system/CPU-X/CPU-X.info
index d2731bc84f..a9a19819c3 100644
--- a/system/CPU-X/CPU-X.info
+++ b/system/CPU-X/CPU-X.info
@@ -1,8 +1,8 @@
PRGNAM="CPU-X"
-VERSION="5.0.3"
+VERSION="5.0.4"
HOMEPAGE="https://github.com/x0rg/CPU-X/"
-DOWNLOAD="https://github.com/x0rg/CPU-X/archive/v5.0.3/CPU-X-5.0.3.tar.gz"
-MD5SUM="548d7a6a7b27a58221a3898c47041b64"
+DOWNLOAD="https://github.com/x0rg/CPU-X/archive/v5.0.4/CPU-X-5.0.4.tar.gz"
+MD5SUM="6a8b6ba8c985c47ae29b30e2c8e84d3f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="glfw3 libcpuid libstatgrab"
diff --git a/system/FreeFileSync/FreeFileSync.info b/system/FreeFileSync/FreeFileSync.info
index 43d0759b25..2bb1bbac44 100644
--- a/system/FreeFileSync/FreeFileSync.info
+++ b/system/FreeFileSync/FreeFileSync.info
@@ -1,7 +1,7 @@
PRGNAM="FreeFileSync"
VERSION="13.5"
HOMEPAGE="https://freefilesync.org/"
-DOWNLOAD="https://freefilesync.org/download/FreeFileSync_13.5_Linux.tar.gz"
+DOWNLOAD="https://raw.githubusercontent.com/antonioleal/myslackbuilds/main/system/FreeFileSync/FreeFileSync_13.5_Linux.tar.gz"
MD5SUM="54c1cd44eebf7d4834b519e1193e8c2b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/system/FreeFileSync/README b/system/FreeFileSync/README
index 746cb58861..69222922d9 100644
--- a/system/FreeFileSync/README
+++ b/system/FreeFileSync/README
@@ -5,4 +5,11 @@ differences between a source and a target folder and transfers only
the minimum amount of data needed. FreeFileSync is Open Source
software,available for Windows, Linux and macOS.
-This package installs to /opt/FreeFileSync
+Notes:
+I) This package installs to /opt/FreeFileSync
+
+
+II) The original binaries are hosted on the package maintainer
+ github due to the the fact that the FreeFileSync web server is
+ causing problems with SlackBuilds CI/CD environment.
+ If in doubt please compare the md5sums.
diff --git a/system/Iosevka-aile/Iosevka-aile.SlackBuild b/system/Iosevka-aile/Iosevka-aile.SlackBuild
index 4beb1d38a2..77d85301c4 100644
--- a/system/Iosevka-aile/Iosevka-aile.SlackBuild
+++ b/system/Iosevka-aile/Iosevka-aile.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Iosevka-aile
SRCNAM=PkgTTC-IosevkaAile
-VERSION=${VERSION:-29.0.5}
+VERSION=${VERSION:-29.2.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/Iosevka-aile/Iosevka-aile.info b/system/Iosevka-aile/Iosevka-aile.info
index 013ce6fd00..27faf908c0 100644
--- a/system/Iosevka-aile/Iosevka-aile.info
+++ b/system/Iosevka-aile/Iosevka-aile.info
@@ -1,8 +1,8 @@
PRGNAM="Iosevka-aile"
-VERSION="29.0.5"
+VERSION="29.2.1"
HOMEPAGE="https://typeof.net/Iosevka"
-DOWNLOAD="https://github.com/be5invis/Iosevka/releases/download/v29.0.5/PkgTTC-IosevkaAile-29.0.5.zip"
-MD5SUM="6de3ab94f40d3bb521971225f1bab31d"
+DOWNLOAD="https://github.com/be5invis/Iosevka/releases/download/v29.2.1/PkgTTC-IosevkaAile-29.2.1.zip"
+MD5SUM="61d664b813cea7ccd50c6bb19a2fc586"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/Iosevka-etoile/Iosevka-etoile.SlackBuild b/system/Iosevka-etoile/Iosevka-etoile.SlackBuild
index 3aacbe1445..6893756f6e 100644
--- a/system/Iosevka-etoile/Iosevka-etoile.SlackBuild
+++ b/system/Iosevka-etoile/Iosevka-etoile.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Iosevka-etoile
SRCNAM=PkgTTC-IosevkaEtoile
-VERSION=${VERSION:-29.0.5}
+VERSION=${VERSION:-29.2.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/Iosevka-etoile/Iosevka-etoile.info b/system/Iosevka-etoile/Iosevka-etoile.info
index 1fa9e6384c..32c9126eab 100644
--- a/system/Iosevka-etoile/Iosevka-etoile.info
+++ b/system/Iosevka-etoile/Iosevka-etoile.info
@@ -1,8 +1,8 @@
PRGNAM="Iosevka-etoile"
-VERSION="29.0.5"
+VERSION="29.2.1"
HOMEPAGE="https://typeof.net/Iosevka"
-DOWNLOAD="https://github.com/be5invis/Iosevka/releases/download/v29.0.5/PkgTTC-IosevkaEtoile-29.0.5.zip"
-MD5SUM="f9dc0b7217481b3a61f5ae859a827bc6"
+DOWNLOAD="https://github.com/be5invis/Iosevka/releases/download/v29.2.1/PkgTTC-IosevkaEtoile-29.2.1.zip"
+MD5SUM="39fa2371a9c23c358a64c01e98c451e9"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/Solaar/Solaar.SlackBuild b/system/Solaar/Solaar.SlackBuild
index e7d077043f..b739b40052 100644
--- a/system/Solaar/Solaar.SlackBuild
+++ b/system/Solaar/Solaar.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=Solaar
VERSION=${VERSION:-1.1.11}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -68,7 +68,11 @@ find -L . \
python3 setup.py install --root=$PKG
-mv $PKG/usr/lib $PKG/
+# 20240429 46and2: make sure to only move the udev dir to $PKG/lib/
+# and remove $PKG/usr/lib if empty.
+mkdir $PKG/lib
+mv $PKG/usr/lib/udev $PKG/lib/
+rmdir --ignore-fail-on-non-empty $PKG/usr/lib
sed -i 's/#MODE="0660", GROUP="plugdev"/MODE="0660", GROUP="plugdev"/g' $PKG/lib/udev/rules.d/42-logitech-unify-permissions.rules
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/system/alacritty/alacritty.SlackBuild b/system/alacritty/alacritty.SlackBuild
index 48199eabc5..03dc2e15f0 100644
--- a/system/alacritty/alacritty.SlackBuild
+++ b/system/alacritty/alacritty.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=alacritty
-VERSION=${VERSION:-0.13.1}
+VERSION=${VERSION:-0.13.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -62,7 +62,11 @@ elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
CARGOTARGET="--target $ARCH-unknown-linux-gnu"
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ]; then
+elif [ "$ARCH" = "x86_64" ] ; then
+ SLKCFLAGS="-O2 -fPIC"
+ CARGOTARGET="--target $ARCH-unknown-linux-gnu"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
SLKCFLAGS="-O2 -fPIC"
CARGOTARGET="--target $ARCH-unknown-linux-gnu"
LIBDIRSUFFIX="64"
diff --git a/system/alacritty/alacritty.info b/system/alacritty/alacritty.info
index 59214b27d8..d585afe9d2 100644
--- a/system/alacritty/alacritty.info
+++ b/system/alacritty/alacritty.info
@@ -1,34 +1,34 @@
PRGNAM="alacritty"
-VERSION="0.13.1"
+VERSION="0.13.2"
HOMEPAGE="https://github.com/alacritty/alacritty"
-DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.1.tar.gz \
+DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.2/alacritty-0.13.2.tar.gz \
https://static.crates.io/crates/adler/adler-1.0.2.crate \
- https://static.crates.io/crates/ahash/ahash-0.8.6.crate \
+ https://static.crates.io/crates/ahash/ahash-0.8.11.crate \
https://static.crates.io/crates/aho-corasick/aho-corasick-1.1.2.crate \
- https://static.crates.io/crates/android-activity/android-activity-0.5.1.crate \
+ https://static.crates.io/crates/android-activity/android-activity-0.5.2.crate \
https://static.crates.io/crates/android-properties/android-properties-0.2.2.crate \
- https://static.crates.io/crates/anstream/anstream-0.6.5.crate \
+ https://static.crates.io/crates/anstream/anstream-0.6.13.crate \
https://static.crates.io/crates/anstyle-parse/anstyle-parse-0.2.3.crate \
https://static.crates.io/crates/anstyle-query/anstyle-query-1.0.0.crate \
https://static.crates.io/crates/anstyle-wincon/anstyle-wincon-3.0.1.crate \
- https://static.crates.io/crates/anstyle/anstyle-1.0.4.crate \
+ https://static.crates.io/crates/anstyle/anstyle-1.0.6.crate \
https://static.crates.io/crates/arrayref/arrayref-0.3.7.crate \
https://static.crates.io/crates/arrayvec/arrayvec-0.7.4.crate \
https://static.crates.io/crates/as-raw-xcb-connection/as-raw-xcb-connection-1.0.1.crate \
https://static.crates.io/crates/atomic-waker/atomic-waker-1.1.2.crate \
https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate \
- https://static.crates.io/crates/base64/base64-0.21.5.crate \
+ https://static.crates.io/crates/base64/base64-0.22.0.crate \
https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
- https://static.crates.io/crates/bitflags/bitflags-2.4.1.crate \
- https://static.crates.io/crates/block-sys/block-sys-0.2.0.crate \
+ https://static.crates.io/crates/bitflags/bitflags-2.4.2.crate \
+ https://static.crates.io/crates/block-sys/block-sys-0.2.1.crate \
https://static.crates.io/crates/block2/block2-0.3.0.crate \
https://static.crates.io/crates/block/block-0.1.6.crate \
- https://static.crates.io/crates/bumpalo/bumpalo-3.14.0.crate \
- https://static.crates.io/crates/bytemuck/bytemuck-1.14.0.crate \
+ https://static.crates.io/crates/bumpalo/bumpalo-3.15.4.crate \
+ https://static.crates.io/crates/bytemuck/bytemuck-1.15.0.crate \
https://static.crates.io/crates/bytes/bytes-1.5.0.crate \
https://static.crates.io/crates/calloop-wayland-source/calloop-wayland-source-0.2.0.crate \
- https://static.crates.io/crates/calloop/calloop-0.12.3.crate \
- https://static.crates.io/crates/cc/cc-1.0.83.crate \
+ https://static.crates.io/crates/calloop/calloop-0.12.4.crate \
+ https://static.crates.io/crates/cc/cc-1.0.90.crate \
https://static.crates.io/crates/cesu8/cesu8-1.1.0.crate \
https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate \
https://static.crates.io/crates/cfg_aliases/cfg_aliases-0.1.1.crate \
@@ -45,15 +45,15 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/colorchoice/colorchoice-1.0.0.crate \
https://static.crates.io/crates/combine/combine-4.6.6.crate \
https://static.crates.io/crates/concurrent-queue/concurrent-queue-2.4.0.crate \
- https://static.crates.io/crates/copypasta/copypasta-0.10.0.crate \
+ https://static.crates.io/crates/copypasta/copypasta-0.10.1.crate \
https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.6.crate \
https://static.crates.io/crates/core-foundation/core-foundation-0.9.4.crate \
https://static.crates.io/crates/core-graphics-types/core-graphics-types-0.1.3.crate \
https://static.crates.io/crates/core-graphics/core-graphics-0.23.1.crate \
https://static.crates.io/crates/core-text/core-text-20.1.0.crate \
- https://static.crates.io/crates/crc32fast/crc32fast-1.3.2.crate \
- https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.10.crate \
- https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.18.crate \
+ https://static.crates.io/crates/crc32fast/crc32fast-1.4.0.crate \
+ https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.12.crate \
+ https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.19.crate \
https://static.crates.io/crates/crossfont/crossfont-0.7.0.crate \
https://static.crates.io/crates/cursor-icon/cursor-icon-1.1.0.crate \
https://static.crates.io/crates/dirs-sys/dirs-sys-0.4.1.crate \
@@ -62,12 +62,12 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/dlib/dlib-0.5.2.crate \
https://static.crates.io/crates/downcast-rs/downcast-rs-1.2.0.crate \
https://static.crates.io/crates/dwrote/dwrote-0.11.0.crate \
- https://static.crates.io/crates/embed-resource/embed-resource-2.4.0.crate \
+ https://static.crates.io/crates/embed-resource/embed-resource-2.4.2.crate \
https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate \
https://static.crates.io/crates/errno/errno-0.3.7.crate \
https://static.crates.io/crates/expat-sys/expat-sys-2.1.6.crate \
https://static.crates.io/crates/fastrand/fastrand-2.0.1.crate \
- https://static.crates.io/crates/fdeflate/fdeflate-0.3.3.crate \
+ https://static.crates.io/crates/fdeflate/fdeflate-0.3.4.crate \
https://static.crates.io/crates/filetime/filetime-0.2.22.crate \
https://static.crates.io/crates/flate2/flate2-1.0.28.crate \
https://static.crates.io/crates/foreign-types-macros/foreign-types-macros-0.2.3.crate \
@@ -77,11 +77,10 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/freetype-sys/freetype-sys-0.13.1.crate \
https://static.crates.io/crates/fsevent-sys/fsevent-sys-4.1.0.crate \
https://static.crates.io/crates/futures-io/futures-io-0.3.30.crate \
- https://static.crates.io/crates/gethostname/gethostname-0.3.0.crate \
https://static.crates.io/crates/gethostname/gethostname-0.4.3.crate \
- https://static.crates.io/crates/getrandom/getrandom-0.2.11.crate \
+ https://static.crates.io/crates/getrandom/getrandom-0.2.12.crate \
https://static.crates.io/crates/gl_generator/gl_generator-0.14.0.crate \
- https://static.crates.io/crates/glutin/glutin-0.31.2.crate \
+ https://static.crates.io/crates/glutin/glutin-0.31.3.crate \
https://static.crates.io/crates/glutin_egl_sys/glutin_egl_sys-0.6.0.crate \
https://static.crates.io/crates/glutin_glx_sys/glutin_glx_sys-0.5.0.crate \
https://static.crates.io/crates/glutin_wgl_sys/glutin_wgl_sys-0.5.0.crate \
@@ -89,40 +88,38 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/heck/heck-0.4.1.crate \
https://static.crates.io/crates/home/home-0.5.5.crate \
https://static.crates.io/crates/icrate/icrate-0.0.4.crate \
- https://static.crates.io/crates/indexmap/indexmap-2.1.0.crate \
+ https://static.crates.io/crates/indexmap/indexmap-2.2.5.crate \
https://static.crates.io/crates/inotify-sys/inotify-sys-0.1.5.crate \
https://static.crates.io/crates/inotify/inotify-0.9.6.crate \
https://static.crates.io/crates/itoa/itoa-1.0.10.crate \
https://static.crates.io/crates/jni-sys/jni-sys-0.3.0.crate \
https://static.crates.io/crates/jni/jni-0.21.1.crate \
- https://static.crates.io/crates/jobserver/jobserver-0.1.27.crate \
- https://static.crates.io/crates/js-sys/js-sys-0.3.66.crate \
+ https://static.crates.io/crates/jobserver/jobserver-0.1.28.crate \
+ https://static.crates.io/crates/js-sys/js-sys-0.3.69.crate \
https://static.crates.io/crates/khronos_api/khronos_api-3.1.0.crate \
https://static.crates.io/crates/kqueue-sys/kqueue-sys-1.0.4.crate \
https://static.crates.io/crates/kqueue/kqueue-1.0.8.crate \
https://static.crates.io/crates/lazy-bytes-cast/lazy-bytes-cast-5.0.1.crate \
https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate \
- https://static.crates.io/crates/libc/libc-0.2.151.crate \
- https://static.crates.io/crates/libloading/libloading-0.8.1.crate \
+ https://static.crates.io/crates/libc/libc-0.2.153.crate \
+ https://static.crates.io/crates/libloading/libloading-0.8.3.crate \
https://static.crates.io/crates/libredox/libredox-0.0.1.crate \
https://static.crates.io/crates/libredox/libredox-0.0.2.crate \
- https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.4.12.crate \
+ https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.4.13.crate \
https://static.crates.io/crates/lock_api/lock_api-0.4.11.crate \
- https://static.crates.io/crates/log/log-0.4.20.crate \
+ https://static.crates.io/crates/log/log-0.4.21.crate \
https://static.crates.io/crates/malloc_buf/malloc_buf-0.0.6.crate \
- https://static.crates.io/crates/memchr/memchr-2.6.4.crate \
- https://static.crates.io/crates/memmap2/memmap2-0.9.3.crate \
- https://static.crates.io/crates/memoffset/memoffset-0.7.1.crate \
- https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.1.crate \
- https://static.crates.io/crates/mio/mio-0.8.10.crate \
+ https://static.crates.io/crates/memchr/memchr-2.7.1.crate \
+ https://static.crates.io/crates/memmap2/memmap2-0.9.4.crate \
+ https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.2.crate \
+ https://static.crates.io/crates/mio/mio-0.8.11.crate \
https://static.crates.io/crates/miow/miow-0.6.0.crate \
https://static.crates.io/crates/ndk-context/ndk-context-0.1.1.crate \
https://static.crates.io/crates/ndk-sys/ndk-sys-0.5.0%2B25.2.9519653.crate \
https://static.crates.io/crates/ndk/ndk-0.8.0.crate \
- https://static.crates.io/crates/nix/nix-0.26.4.crate \
https://static.crates.io/crates/notify/notify-6.1.1.crate \
- https://static.crates.io/crates/num_enum/num_enum-0.7.1.crate \
- https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.7.1.crate \
+ https://static.crates.io/crates/num_enum/num_enum-0.7.2.crate \
+ https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.7.2.crate \
https://static.crates.io/crates/objc-foundation/objc-foundation-0.1.1.crate \
https://static.crates.io/crates/objc-sys/objc-sys-0.3.2.crate \
https://static.crates.io/crates/objc2-encode/objc2-encode-3.0.0.crate \
@@ -137,88 +134,87 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/percent-encoding/percent-encoding-2.3.1.crate \
https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.13.crate \
https://static.crates.io/crates/piper/piper-0.2.1.crate \
- https://static.crates.io/crates/pkg-config/pkg-config-0.3.28.crate \
- https://static.crates.io/crates/png/png-0.17.10.crate \
+ https://static.crates.io/crates/pkg-config/pkg-config-0.3.30.crate \
+ https://static.crates.io/crates/png/png-0.17.13.crate \
https://static.crates.io/crates/polling/polling-3.3.0.crate \
- https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-2.0.0.crate \
- https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.71.crate \
- https://static.crates.io/crates/quick-xml/quick-xml-0.30.0.crate \
- https://static.crates.io/crates/quote/quote-1.0.33.crate \
+ https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.1.0.crate \
+ https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.79.crate \
+ https://static.crates.io/crates/quick-xml/quick-xml-0.31.0.crate \
+ https://static.crates.io/crates/quote/quote-1.0.35.crate \
https://static.crates.io/crates/raw-window-handle/raw-window-handle-0.5.2.crate \
https://static.crates.io/crates/redox_syscall/redox_syscall-0.3.5.crate \
https://static.crates.io/crates/redox_syscall/redox_syscall-0.4.1.crate \
https://static.crates.io/crates/redox_users/redox_users-0.4.4.crate \
- https://static.crates.io/crates/regex-automata/regex-automata-0.4.3.crate \
+ https://static.crates.io/crates/regex-automata/regex-automata-0.4.6.crate \
https://static.crates.io/crates/regex-syntax/regex-syntax-0.8.2.crate \
https://static.crates.io/crates/rustc_version/rustc_version-0.4.0.crate \
https://static.crates.io/crates/rustix-openpty/rustix-openpty-0.1.1.crate \
https://static.crates.io/crates/rustix/rustix-0.38.25.crate \
- https://static.crates.io/crates/ryu/ryu-1.0.16.crate \
+ https://static.crates.io/crates/ryu/ryu-1.0.17.crate \
https://static.crates.io/crates/same-file/same-file-1.0.6.crate \
https://static.crates.io/crates/scoped-tls/scoped-tls-1.0.1.crate \
https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate \
https://static.crates.io/crates/sctk-adwaita/sctk-adwaita-0.8.1.crate \
- https://static.crates.io/crates/semver/semver-1.0.20.crate \
- https://static.crates.io/crates/serde/serde-1.0.193.crate \
- https://static.crates.io/crates/serde_derive/serde_derive-1.0.193.crate \
- https://static.crates.io/crates/serde_json/serde_json-1.0.108.crate \
+ https://static.crates.io/crates/semver/semver-1.0.22.crate \
+ https://static.crates.io/crates/serde/serde-1.0.197.crate \
+ https://static.crates.io/crates/serde_derive/serde_derive-1.0.197.crate \
+ https://static.crates.io/crates/serde_json/serde_json-1.0.114.crate \
https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.5.crate \
- https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.29.crate \
+ https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.33.crate \
https://static.crates.io/crates/servo-fontconfig-sys/servo-fontconfig-sys-5.1.0.crate \
https://static.crates.io/crates/servo-fontconfig/servo-fontconfig-0.5.1.crate \
https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate \
https://static.crates.io/crates/signal-hook/signal-hook-0.3.17.crate \
https://static.crates.io/crates/simd-adler32/simd-adler32-0.3.7.crate \
https://static.crates.io/crates/slab/slab-0.4.9.crate \
- https://static.crates.io/crates/smallvec/smallvec-1.11.2.crate \
- https://static.crates.io/crates/smithay-client-toolkit/smithay-client-toolkit-0.18.0.crate \
- https://static.crates.io/crates/smithay-clipboard/smithay-clipboard-0.7.0.crate \
- https://static.crates.io/crates/smol_str/smol_str-0.2.0.crate \
+ https://static.crates.io/crates/smallvec/smallvec-1.13.1.crate \
+ https://static.crates.io/crates/smithay-client-toolkit/smithay-client-toolkit-0.18.1.crate \
+ https://static.crates.io/crates/smithay-clipboard/smithay-clipboard-0.7.1.crate \
+ https://static.crates.io/crates/smol_str/smol_str-0.2.1.crate \
https://static.crates.io/crates/strict-num/strict-num-0.1.1.crate \
https://static.crates.io/crates/strsim/strsim-0.10.0.crate \
- https://static.crates.io/crates/syn/syn-2.0.43.crate \
- https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.52.crate \
- https://static.crates.io/crates/thiserror/thiserror-1.0.52.crate \
- https://static.crates.io/crates/tiny-skia-path/tiny-skia-path-0.11.3.crate \
- https://static.crates.io/crates/tiny-skia/tiny-skia-0.11.3.crate \
- https://static.crates.io/crates/toml/toml-0.8.8.crate \
+ https://static.crates.io/crates/syn/syn-2.0.53.crate \
+ https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.58.crate \
+ https://static.crates.io/crates/thiserror/thiserror-1.0.58.crate \
+ https://static.crates.io/crates/tiny-skia-path/tiny-skia-path-0.11.4.crate \
+ https://static.crates.io/crates/tiny-skia/tiny-skia-0.11.4.crate \
+ https://static.crates.io/crates/toml/toml-0.8.11.crate \
https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.5.crate \
- https://static.crates.io/crates/toml_edit/toml_edit-0.20.7.crate \
- https://static.crates.io/crates/toml_edit/toml_edit-0.21.0.crate \
+ https://static.crates.io/crates/toml_edit/toml_edit-0.21.1.crate \
+ https://static.crates.io/crates/toml_edit/toml_edit-0.22.7.crate \
https://static.crates.io/crates/tracing-core/tracing-core-0.1.32.crate \
https://static.crates.io/crates/tracing/tracing-0.1.40.crate \
https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate \
- https://static.crates.io/crates/unicode-segmentation/unicode-segmentation-1.10.1.crate \
+ https://static.crates.io/crates/unicode-segmentation/unicode-segmentation-1.11.0.crate \
https://static.crates.io/crates/unicode-width/unicode-width-0.1.11.crate \
- https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.10.crate \
+ https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.11.crate \
https://static.crates.io/crates/utf8parse/utf8parse-0.2.1.crate \
https://static.crates.io/crates/version_check/version_check-0.9.4.crate \
https://static.crates.io/crates/vswhom-sys/vswhom-sys-0.1.2.crate \
https://static.crates.io/crates/vswhom/vswhom-0.1.0.crate \
https://static.crates.io/crates/vte/vte-0.13.0.crate \
https://static.crates.io/crates/vte_generate_state_changes/vte_generate_state_changes-0.1.1.crate \
- https://static.crates.io/crates/walkdir/walkdir-2.4.0.crate \
+ https://static.crates.io/crates/walkdir/walkdir-2.5.0.crate \
https://static.crates.io/crates/wasi/wasi-0.11.0%2Bwasi-snapshot-preview1.crate \
- https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.89.crate \
- https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.39.crate \
- https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.89.crate \
- https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.89.crate \
- https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.89.crate \
- https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.89.crate \
- https://static.crates.io/crates/wayland-backend/wayland-backend-0.3.2.crate \
- https://static.crates.io/crates/wayland-client/wayland-client-0.31.1.crate \
+ https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.92.crate \
+ https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.42.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.92.crate \
+ https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.92.crate \
+ https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.92.crate \
+ https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.92.crate \
+ https://static.crates.io/crates/wayland-backend/wayland-backend-0.3.3.crate \
+ https://static.crates.io/crates/wayland-client/wayland-client-0.31.2.crate \
https://static.crates.io/crates/wayland-csd-frame/wayland-csd-frame-0.3.0.crate \
- https://static.crates.io/crates/wayland-cursor/wayland-cursor-0.31.0.crate \
+ https://static.crates.io/crates/wayland-cursor/wayland-cursor-0.31.1.crate \
https://static.crates.io/crates/wayland-protocols-plasma/wayland-protocols-plasma-0.2.0.crate \
https://static.crates.io/crates/wayland-protocols-wlr/wayland-protocols-wlr-0.2.0.crate \
- https://static.crates.io/crates/wayland-protocols/wayland-protocols-0.31.0.crate \
- https://static.crates.io/crates/wayland-scanner/wayland-scanner-0.31.0.crate \
+ https://static.crates.io/crates/wayland-protocols/wayland-protocols-0.31.2.crate \
+ https://static.crates.io/crates/wayland-scanner/wayland-scanner-0.31.1.crate \
https://static.crates.io/crates/wayland-sys/wayland-sys-0.31.1.crate \
- https://static.crates.io/crates/web-sys/web-sys-0.3.66.crate \
+ https://static.crates.io/crates/web-sys/web-sys-0.3.69.crate \
https://static.crates.io/crates/web-time/web-time-0.2.4.crate \
https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi-util/winapi-util-0.1.6.crate \
- https://static.crates.io/crates/winapi-wsapoll/winapi-wsapoll-0.1.1.crate \
https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
https://static.crates.io/crates/windows-sys/windows-sys-0.45.0.crate \
@@ -239,51 +235,50 @@ DOWNLOAD="https://github.com/alacritty/alacritty/archive/v0.13.1/alacritty-0.13.
https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate \
https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.2.crate \
https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate \
- https://static.crates.io/crates/winit/winit-0.29.9.crate \
- https://static.crates.io/crates/winnow/winnow-0.5.30.crate \
- https://static.crates.io/crates/winreg/winreg-0.51.0.crate \
+ https://static.crates.io/crates/winit/winit-0.29.15.crate \
+ https://static.crates.io/crates/winnow/winnow-0.5.40.crate \
+ https://static.crates.io/crates/winnow/winnow-0.6.5.crate \
+ https://static.crates.io/crates/winreg/winreg-0.52.0.crate \
https://static.crates.io/crates/wio/wio-0.2.2.crate \
- https://static.crates.io/crates/x11-clipboard/x11-clipboard-0.8.1.crate \
+ https://static.crates.io/crates/x11-clipboard/x11-clipboard-0.9.2.crate \
https://static.crates.io/crates/x11-dl/x11-dl-2.21.0.crate \
- https://static.crates.io/crates/x11rb-protocol/x11rb-protocol-0.12.0.crate \
https://static.crates.io/crates/x11rb-protocol/x11rb-protocol-0.13.0.crate \
- https://static.crates.io/crates/x11rb/x11rb-0.12.0.crate \
https://static.crates.io/crates/x11rb/x11rb-0.13.0.crate \
https://static.crates.io/crates/xcursor/xcursor-0.3.5.crate \
https://static.crates.io/crates/xdg/xdg-2.5.2.crate \
- https://static.crates.io/crates/xkbcommon-dl/xkbcommon-dl-0.4.1.crate \
+ https://static.crates.io/crates/xkbcommon-dl/xkbcommon-dl-0.4.2.crate \
https://static.crates.io/crates/xkeysym/xkeysym-0.2.0.crate \
https://static.crates.io/crates/xml-rs/xml-rs-0.8.19.crate \
https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.7.32.crate \
https://static.crates.io/crates/zerocopy/zerocopy-0.7.32.crate"
-MD5SUM="9199be2f1d48125de06db0d79553ee2e \
+MD5SUM="175ba04b69b5d60747c4fb227f0a3871 \
669215548c64019c08c92b2c1afd3deb \
- 62063b829dc1fb0dcb50f845ef981263 \
+ adbb51e40b28255c49b2ad1d956eff19 \
95e5f8d0b7ab37171b8d3118542ba06a \
- 848f406142dbae274a821c9e93da9fbb \
+ 4bfc28df67ed345b63f28a426f70dd3d \
33d654107e29a1ec9c8df5947d1888f2 \
- 2764314f4afc9f9751d60ebad48f6ea6 \
+ d1dbe19a84ecc8388654099d69c77b09 \
e188f6de00a35235da008cd39e1a003d \
d2453c99c7af98286c2dc9017a8dba6d \
b57fd47f132f32001e0d4bfc4621f1bf \
- b4f71ffecd3694a82ffb62c357d997a8 \
+ dff7c2613686577772e6eaeaf76d6f5c \
ff41a5b5c2364747a7ff11f6bdeee406 \
504b5d258d68bdb980c997b93f0c6e6e \
7646c7582d8b97443a94c12d30e60d99 \
6a44afda654777d2930b93366bdfc7f3 \
05d77ef52e90ad161fdd41b252420467 \
- 577bba6ae4d7493e169ca895141dd106 \
+ 2b85559c818ca984fc61f5e7ef3ccf24 \
a295edb6953237ebbdfa8e731229f9a3 \
- ebcf604c44976809506192718f439dc1 \
- fbcf6847d661bc3fdd8745c06a721b04 \
+ fcc84166b0f45067743bd0820f1d92e5 \
+ d4a93fc92a1cdf6ccd1c26cd207622c9 \
1751ef7d3080787345baeb93455f69df \
ea2d23ceb9f98853a7dffc6c02884464 \
- d8cacbb844fca8c0ca102c7576946131 \
- 9dd8e437188fced85429d9d0d9db145f \
+ 04420ad0e34cf71c5dd4e473934f8e54 \
+ 74970f806fd0f2ab972f077ee2b7e5d7 \
51ed49380bb7d086c005208e805983b2 \
b760bf4a1a3fc54c76e9d042131a7acc \
- 458113901c4f5ab270e125b867f7dea4 \
- 9241fa90ea8b17c00010be46c9aa1ac5 \
+ b8ebda586cee9a5a79403eb33396c182 \
+ 3688fd97ff4600fa12dcba8623da73a3 \
267fc4a374516caa7ab495f0c607c1b4 \
74634128440dbc3766bda76fdf0aaa05 \
126712a51ed2962e587048a634186390 \
@@ -300,15 +295,15 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
010f6d0e98cc2a2b99907a23c6cd6bbc \
8b15d333a98fc02a34909961900246a4 \
59e2ac3afb27356dae5b252b6792e73c \
- 277c0eef3e10f7ec1b4db034ff40f1a8 \
+ e11e1dd3d9c75ee9bd19a8bb02e824db \
d7624e4ff046ae83eda8e82d90887bdb \
4d7e3bc6c42f8a875a87246ed14d9948 \
58ee9a40577f5086ec1f22dc238b9c60 \
1f2aefb269a8a9d8a86160c67a10c0b0 \
407b8e24ec9b7a2921414e8e22267d45 \
- a9d6492a1bd21d93dbc27c32eabd0c70 \
- 11452e33fe5f4dfe6f36f2d266a5d343 \
- 4e040f3b7359531ac7134679ea9afcdc \
+ 2cdf6f26459b770f7cf497cfba8eb5d4 \
+ 86c345cb693c291362662b0eb437af89 \
+ 398f4cce1d3067cc7a56662e52a33384 \
b98796f70d39efaf11e6489c1c266d56 \
716a56ef901b38924bf55e20f602bd34 \
6681f2b2a1b8854ec13b1d35edc6fdc3 \
@@ -317,12 +312,12 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
7c8ef8b5fc652fa97d3629d1ec8b18e8 \
09b520d03e86d50e3ac39d856d5aec32 \
a1544bff9ea95274369bf38508f8266a \
- 34ec0de0ebc730437e6788aa1264f86c \
+ 6a4e43c95a4c419cb00fe91d226a9095 \
bdf329a72ecd0605c296f25e53136706 \
24f6202003a936e73e51f47584ea8bea \
d318084a7a361875006cd156c19db3dc \
80e1c1b89d858c93fc5946b4a8266504 \
- 597b5678e74f368f512931d828e8ff97 \
+ b1e2ff2b24e7c0840bb0cb1174beedfd \
412f39c3faf2efd34b5fe184e36ccc2f \
110e56f20886997bc288b6fea8617ce1 \
38f845b095b4ca30f93e034c7bd5ab14 \
@@ -332,11 +327,10 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
c2682997e48a129ea7cc8afd6e850366 \
724696d583d5c24321c62a5e443d241f \
bb90dd58c7107a6f586b04588404b0ff \
- 8212aac8fcaeb41265840f72b31c9135 \
cbb52c723c94c83804912cde945b4510 \
- 3b00daaa372df161c5c8eeaf16a741d1 \
+ ba5684833f6b40a3aa32ae4989c40f79 \
cd6875725af793cd82db47d68b00ee93 \
- 86c67a9c1f6c51726cf94a84eecb18c0 \
+ c50f036618e5f44b0310769cc214d4e9 \
e1054d42008eb59cea63bc22136ed22f \
fb01542b6f62fe5d68d1dd9835d4e80b \
8f6832ae66ce3c13c0f5da9f585f60e8 \
@@ -344,40 +338,38 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
b92fa50f56a1e06a7f1bf665442d4a73 \
11681ec4554f1f934b25eeba3f558ea7 \
e1543fd467c420225dabc4d75ff3fe79 \
- f429c89da1e2d0ba564a0cb5e2ed928c \
+ 39ee9c142fcb9be5b41be73e42260979 \
639af0cca65c012e6a028acfb657e417 \
1c69490f9cefc24e2119217039c61dda \
0403f58e42c94609207c40a310cfe78a \
73272fe4aadb91d550dca8fc7ead8bf7 \
be01525e51d79736e7af74fe93d19f93 \
- 9aaf13d622cd02548feaaca35687da9c \
- 6b33b0539f6c25c66268868b6b61e240 \
+ 62156c0c6bde4f8190c611a461eb482a \
+ c6be9100355c6e77cf37c76ade56baa4 \
8bc92e2d422193be1d498146e34a0b85 \
8234d20b9a5ea5e7087bb5ddb414011c \
e646c59e9a7da5308afd8e43149bcfef \
e53d38f6285cdc1bb509983b218d10d3 \
fba3b040a55c01be7376d3dd5c4d4920 \
- 181cb83a57d327b26ebc21db41b28480 \
- feb5919f3a98172d047e10b0bc1ea5ae \
+ 49d77531898b3d7846b149c0fb4788c4 \
+ 99d57b23f1a7878ef7220513f49db015 \
4d3764b253ae871241c2f327e519f382 \
9ea1bc3f82c4c646878376eacbf366ce \
- 1d1b2033b4272a22654e55447ae7f404 \
+ f2d8f01a4e5c5236ab55240d09c6e82f \
cc1b0e90e372869ad03ef40bd53fa30f \
- 8ee79b4fe4c43d9ab09f16344612a656 \
+ 5a376ab3f01ed9e90e8d71e1d5fa6ae7 \
7c81e7a61ec172a229d6fdbc553e883d \
- ab9a5f02cef3b8794d810332ebf26a03 \
- 8c7d4897baee5e346d2184d46422ec49 \
- 48e7cc866f45af55ea3f627e29a2cd98 \
- eb7e04508518ed8f29935ec874e1740a \
- 47628a42562928b85cd28cb50e08d8bb \
+ f8cc1978aae22df3e656d12810cdf994 \
+ 5cf346df4658ff1ab6c0b3b3dba48f75 \
+ 86aa81f2561682f16c0be376294bf9d3 \
+ 13f47025d308bc16d26a9bc3334f3bbe \
c14d50ef3ce9b2640d2a9d68c53834b9 \
7e395ce2e673b7d9665751cbbe3cbcdc \
e8ba17285a3c3413579cf23c009a5f52 \
d4aa9768b074d64e8271942682ff0159 \
- 44ab2701d152b855941648698cd7a99e \
1be22bdbd81580965933512a89c00e25 \
- 99913f0b1e33a0760543c0ca3b5e4dfe \
- 0c7dc4f3d2bd9fa81623fb1f3abef015 \
+ 52af5d02a6e146eaf0fc591a5a6ccdaf \
+ 110e4691ab282e351abcb4c88687271f \
aecd889de42c8168e1bc97a6f2720d8f \
f3b8c17ba1076acbcd2074e4278f44f9 \
1986c3b1b3a4968592e1577e8676ac12 \
@@ -392,88 +384,87 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
0ba30a94d7b8865c23e86d4d64e5b91e \
ffc7c4e1b2639ba6c8579a1c47c5f97c \
564286699e80741f7c24b16c9a1a5f58 \
- 76c281577ef136b9484166302e37c9bd \
- 7b5035f3ae2acd6abe959249308bb5a1 \
+ 524ffd7a9b5b25c4d388686a5dde5cac \
+ 263a4e4ee967b56a460b6b717fa53279 \
4fc82daae9a3fe793c8876370d26bd6a \
- 0df16f0fae76d411cebf1e67c55070d9 \
- e83703ecba7917d4e12c8e639692e169 \
- fc70d4884e65f1c29086807a9aaad534 \
- 0ddb8bccd3198892d0dd0ec7151f7cd3 \
+ c755ef59e7394470f9e06673f7e02e2a \
+ e0c30e3bc29a1b33c71f2823cd5b5365 \
+ 5d249ea25d57d9e5b051a504a2f62a62 \
+ 0358b31bf59c7915bb03f9e66f2d1ea3 \
6150a7bb6ddc7aaa6aba6130de9fd2b8 \
782ea88d8e5b517b1c9e7d870e20e9e3 \
ff1d093069cfc9eb161907e17a51208b \
bca57d7079177ca0aa651d452c7099fe \
- 4f496143a21775fa7bd22bf329c37f37 \
+ 520b920d0c711ec1a17fb19a6060446a \
91b60a71d44302a8b05bd398eca56c37 \
fdf3aa5e1f6c33e4f68b0f7b08e1e94e \
e60c2f75a7c60276ba15dba4c1766286 \
9bdda698a3c8ba141f4daba1a7630143 \
- ca664d757b2c95424cf3465e412cce90 \
+ feefd8369d6dd6a0f269bbed1b921349 \
2d8d8b377d144f5e32b4f65a69eb0b24 \
b898bcf321bba46ecd15c9279cdbb290 \
f1358be8c98b98837cbd2cf51e75f8b3 \
92577365ba12f6bc2c5fd3b639135b62 \
- bf2aac00571a32be8a2fb842e194a728 \
- d6c1f2447aa984e398cdfdeb4cd75d44 \
- d43f1621c76532ffdc7990d23593c61b \
- 3ed0ebc631b1840f3be21e1ba07fa4ed \
+ 7b1ab65edc77a1bd7cfd8f03cd889831 \
+ 956ace3f4e2b8a6ac55aa74549cc38de \
+ e8b93865e80b67f03df2faa417960b88 \
+ 1d870838320d2810817ade2a17fcc4f8 \
fa0d5d4e1e3bd20a9ca9aef473fc3665 \
- 6bcc09c6316e342b6076da0828cad63d \
+ 0d41acddc353ee66a675dbdf61c9aee4 \
89b435ff50362dda1abe34a8862cf4ab \
b4a3e97f65acc9e03df7e95defe9b27c \
22e95901b912671da26457ac33e36a23 \
f60ab8537f924a65fbc0961e958d375b \
d0116882bd495f2b993495a8cf01f6fe \
5d8c25fc51ffebca67935516c2325860 \
- a88ce3625ee63d53088ad83d8581b368 \
- 3e595c35e2081351d8ba2da3e13353f3 \
- b70a651e684a72d00f732c90856a6a19 \
- c9fc0a9962fd7434e6d76ae22400e72a \
+ f50e12db5ae8860e3f067d5dcb4471a6 \
+ 1c636a4973414fa9b34d51157583717f \
+ 82524d56df67f220fd1232ae2878b84c \
+ dcdefdf32b08b2e1b686e30d4ffef310 \
eb8ac974a85ac3219c8c66b17bf5d0f5 \
82d98dc87dc8503400aa095f5aa70f13 \
- 5b8200043b8a729b7ed1b74825c68073 \
- 93097f1e5375355e5561e947b1b77180 \
- 0d731b0c0babb1f744fce3ef70eec11d \
- 11ccfbb001a8e067c18843864e21e033 \
- 4726ea3b77caf0028375236c677e9a82 \
- b7a1b93f85587ed99e0a46d141f26528 \
+ 285d82afae7d638437fd71f94cd1923e \
+ f443b2cca547d22f994c2dd99a6e5581 \
+ 361668f9f11e4f0eba45f70c24fa8614 \
+ b3c2227ede0550f603a0b4be15a7e96e \
+ 5e3168bac027527c809f8dfec53dcf2f \
+ cd0adf433f780963328c0540237a056f \
9aecd5ff283534a21d7cd51266abfe89 \
- dff68dc5b0704b8123a947f52e31dc8d \
- 8184f2020a3a5c78844485260ec49a36 \
+ 0cb504a1438dd87648b18def4b0e6e10 \
+ f86411859a1ef260c568e4b89546785c \
a6655e5e9845cb569991e87b5b38a1fc \
0a906c03436ec2dcc4c311c21fee0da2 \
ca65153603a1a7240bbd9d2ce19f2d67 \
- b145fb66e71c48f5f7b5b7ad98de963b \
+ 43bd6ad524e583eaa8c071dbb01f11ae \
908ec8a89821b72f3a35726bab24461f \
- 428fc5d72716c000ce20267887878be2 \
+ a8c6d404eec9e0efc975e65312b76228 \
ceee1159c41351d05f4cf705490867b3 \
d18d362345c4fe512ef67b738b239fb8 \
1ad539bb397aab6bb7c261d5b421a1a6 \
32222c3df2805eabcfe92432db2aee8f \
c67eae79cbc709d1c2c7535f3d7b6281 \
a29fec77b1e07caf7b682b881b676c06 \
- 96481ed810273371ed8b87f062a0dcda \
+ f38b27b8c9625110a51293658f1cc014 \
e972ea58ec203bfa6c79c1207852298b \
- 27e1a4ac927346509cf010b024c79e87 \
- 91606eb5d0ce66d748b5fc678b33a0ea \
- 90f2e8c0ca989290eff37cd9b3ec2a87 \
- 9202e1b9c6367013631774f38fdff707 \
- f00d62969f597349b1d460c96b57136c \
- 7f115ec6580072e95e26ab41f3fabb84 \
- e5ab780a9b5951ae6ddd1e0b26a8c6c8 \
- 1a1ac386996554c8f86261509e942f7c \
+ 1aa786b0f998b9d0440c2a03b133e991 \
+ 65689b5bdeb96ecd47930b430520f676 \
+ 651897c3311b074247a1b351bf85b4ff \
+ 8b3da5691ef460f035d90f16d3a0bebd \
+ 4abb118b896b90518fc32602088933be \
+ dca59f56e652d010c754d42df104cd22 \
+ 8ab996cc7533caa3a5675e045759e4e2 \
+ b40d4c73e3b5fd6670c4e1e253cfd689 \
2149df0c65b9963e19b4e7ca4050ad96 \
- 4a67d22614c644fef07efb496a053865 \
+ a7e739dff4b99e82ce07d8d21adc1533 \
56608eb750f70d0c9a6643a351cc5ea5 \
028a529550344ea14623168220fa1901 \
- c0188e94dfca68e01c6bf0450d4f035e \
- 5d8e90b65d01001eef0e5c2a77fed433 \
+ 4c9b7fd62dd6099a9a0e583bbdfea1cf \
+ d9cf61d9a5387dcbb3bf017aebaf2bf7 \
7da33160ff24759809edd61619a4a69f \
- e97f7d5779474c95cf1a1769013db24e \
+ 50fd776efcd20b40eb7ec5bec9c2d1cf \
b06e8c6d713b11560dd758109343209c \
db96b50050277bf05a3c68534bbb9586 \
306c0281447d1876e8220007b7a7e053 \
- e2860eb635198a35bdd26d200febc044 \
09de9d01e7331ff3da11f58be8bef0df \
0498c4a11448bfc35dc7bb2caa64c753 \
b58284cb8ce52b8de07e09f4f8fb9653 \
@@ -494,19 +485,18 @@ MD5SUM="9199be2f1d48125de06db0d79553ee2e \
45b469ad607b912256b7c80141fa2d17 \
8cec8a187df7a7b971009a7693f60140 \
7799baff9a5664205d9110a2624e8989 \
- 13b0d6da1e9b98af1619505a766656da \
- 0d4bd262b0a39e35e1e00dc97a67b827 \
- d85c237fd9f6e522379b9a41c5f34b16 \
+ bede58e46f614f2e9cb24cbb5b6706f9 \
+ cb7c86af4d8a969d849c6fce363af240 \
+ 89f70cb8305108cc51ccde5569760d5b \
+ 3aa6fd0d30e89ae0fef20f01efe44f9d \
4396bc1704f7337718352f0e6ec2d391 \
- da2424fe9f0c33ec7d8deda1f263abd0 \
+ 6debd70bca3c320090eab4677b0b2bb4 \
1d09c0d1f19fc18bb1c400100df17c0c \
- 260cb5824639b426f46f9fec71ac7ef0 \
ee9610aac4f0c37e3a31f6cea6fb8ff9 \
- 77250c45b58d52e13e3c7d2a67919d1a \
ff16c9daa9afa7ba1d5334699700b042 \
5a19e54d2580e4c0d72c281df8f54ae6 \
1613d0f9e24d4b05e81748ea1f355f6c \
- efd9146058a0c646f64bbf9282168f97 \
+ d18fcf0fa73d7bd81b2e63e0b8098869 \
423da0bc6c03a22a8c3181feec42c09b \
f7e1624bbb0598683388e7820bbae8c4 \
936257597fbe2fd02d954a5db53c687a \
diff --git a/system/apple-fonts-NY/apple-fonts-NY.info b/system/apple-fonts-NY/apple-fonts-NY.info
index 3429b3597c..4918a9deaa 100644
--- a/system/apple-fonts-NY/apple-fonts-NY.info
+++ b/system/apple-fonts-NY/apple-fonts-NY.info
@@ -2,7 +2,7 @@ PRGNAM="apple-fonts-NY"
VERSION="2023"
HOMEPAGE="https://developer.apple.com/fonts/"
DOWNLOAD="https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
-MD5SUM="cf4240d1870274142788f898b73e0b04"
+MD5SUM="66be3f1753c9d266892db9001abfde7c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="p7zip"
diff --git a/system/apple-fonts-SF/apple-fonts-SF.info b/system/apple-fonts-SF/apple-fonts-SF.info
index 8a0edd4995..5b802c60b2 100644
--- a/system/apple-fonts-SF/apple-fonts-SF.info
+++ b/system/apple-fonts-SF/apple-fonts-SF.info
@@ -4,9 +4,9 @@ HOMEPAGE="https://developer.apple.com/fonts/"
DOWNLOAD="https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg \
https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg \
https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
-MD5SUM="dbca7b5819e44b3c35d927048896078f \
-5ff6d068b349ac684b44264d00935f29 \
-b7ae94096a43b3ec93e851e4e588b9ed"
+MD5SUM="5d018413a9143d281bea4c7d8d6a9742 \
+02585cd22130ace172c0a1dcfbe1d466 \
+83dce1b94964815267e1ba1c9280e977"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="p7zip"
diff --git a/system/apptainer/README b/system/apptainer/README
index 28182dbd80..178c15c706 100644
--- a/system/apptainer/README
+++ b/system/apptainer/README
@@ -26,3 +26,10 @@ migration documentation and user compatibility documentation.
Usage example:
apptainer build slackware.sif \
/usr/share/apptainer/examples/slackware/slackware.def
+
+Various features can be enabled/disabled by passing variables to the
+script (VAR=yes/no ./apptainer.SlackBuild):
+
+WITH_SUID=auto|yes|no (default: auto)
+ create a setuid-installation (auto uses upstream's default which
+ is currently no)
diff --git a/system/apptainer/apptainer.SlackBuild b/system/apptainer/apptainer.SlackBuild
index 7f60d6af73..be7130c529 100644
--- a/system/apptainer/apptainer.SlackBuild
+++ b/system/apptainer/apptainer.SlackBuild
@@ -76,6 +76,15 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+WITH_SUID=${WITH_SUID:-auto}
+
+if [ "$WITH_SUID" = "no" ] ; then
+ suid_option="--without-suid"
+elif [ "$WITH_SUID" = "yes" ] ; then
+ suid_option="--with-suid"
+else
+ suid_option=""
+fi
# this sets the go path without the needs of logout
SBOGO=$(find /usr/lib${LIBDIRSUFFIX} -type f -name "go")
@@ -88,6 +97,7 @@ PATH=$GOROOT/bin:$PATH \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
+ $suid_option \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION
diff --git a/system/btop/btop.SlackBuild b/system/btop/btop.SlackBuild
index 56ee840492..1550e7d93c 100644
--- a/system/btop/btop.SlackBuild
+++ b/system/btop/btop.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for btop
-# Copyright 2022-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2022-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=btop
-VERSION=${VERSION:-1.2.13}
+VERSION=${VERSION:-1.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -75,7 +75,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
sed -i "s|-O2|$SLKCFLAGS|" Makefile || exit 1
-make PREFIX=/usr all
+LDFLAGS=-ldl make PREFIX=/usr all
make PREFIX=/usr install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
diff --git a/system/btop/btop.info b/system/btop/btop.info
index 5fbd5b55aa..faa44836df 100644
--- a/system/btop/btop.info
+++ b/system/btop/btop.info
@@ -1,8 +1,8 @@
PRGNAM="btop"
-VERSION="1.2.13"
+VERSION="1.3.2"
HOMEPAGE="https://github.com/aristocratos/btop/"
-DOWNLOAD="https://github.com/aristocratos/btop/archive/v1.2.13/btop-1.2.13.tar.gz"
-MD5SUM="be23bfd87f885c0f606f467ccfebc5e3"
+DOWNLOAD="https://github.com/aristocratos/btop/archive/v1.3.2/btop-1.3.2.tar.gz"
+MD5SUM="04ff8d32e7bf748705fe34dfea50c628"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/conky/conky.SlackBuild b/system/conky/conky.SlackBuild
index 828e7e1e3a..9aed1b322e 100644
--- a/system/conky/conky.SlackBuild
+++ b/system/conky/conky.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=conky
-VERSION=${VERSION:-1.20.1}
+VERSION=${VERSION:-1.20.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/conky/conky.info b/system/conky/conky.info
index 30fd153122..34225d0c8d 100644
--- a/system/conky/conky.info
+++ b/system/conky/conky.info
@@ -1,8 +1,8 @@
PRGNAM="conky"
-VERSION="1.20.1"
+VERSION="1.20.2"
HOMEPAGE="https://github.com/brndnmtthws/conky"
-DOWNLOAD="https://github.com/brndnmtthws/conky/archive/v1.20.1/conky-1.20.1.tar.gz"
-MD5SUM="6abe61ff017c872487f6b7a184ad68c9"
+DOWNLOAD="https://github.com/brndnmtthws/conky/archive/v1.20.2/conky-1.20.2.tar.gz"
+MD5SUM="45a6f5da697b5fb55e3ef8c401c8ef03"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="lua53 imlib2"
diff --git a/system/courier-screenplay/courier-screenplay.info b/system/courier-screenplay/courier-screenplay.info
index 37095d573a..046740d506 100644
--- a/system/courier-screenplay/courier-screenplay.info
+++ b/system/courier-screenplay/courier-screenplay.info
@@ -2,7 +2,7 @@ PRGNAM="courier-screenplay"
VERSION="1.0"
HOMEPAGE="https://www.fadeinpro.com/page.pl?content=download#fonts"
DOWNLOAD="https://www.fadeinpro.com/download/fonts/CourierScreenplay.zip"
-MD5SUM="0cc0252c07c2273d0e41f529b02acdd2"
+MD5SUM="68ba6c864b6c7b7c03d3252cb230318f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/cpmtools/cpmtools.info b/system/cpmtools/cpmtools.info
index 16ff90ec17..abd9fd33f1 100644
--- a/system/cpmtools/cpmtools.info
+++ b/system/cpmtools/cpmtools.info
@@ -2,7 +2,7 @@ PRGNAM="cpmtools"
VERSION="2.24"
HOMEPAGE="http://www.moria.de/~michael/cpmtools/"
DOWNLOAD="http://distcache.freebsd.org/ports-distfiles/cpmtools-2.24.tar.gz"
-MD5SUM="98dfb2f3e3246c6ddba63674b1e1af83"
+MD5SUM="0cb3a4c2fa7b2b05d9096d06b4b126b7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/distrobox/distrobox.SlackBuild b/system/distrobox/distrobox.SlackBuild
index 693318d378..6db4ed1634 100644
--- a/system/distrobox/distrobox.SlackBuild
+++ b/system/distrobox/distrobox.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=distrobox
-VERSION=${VERSION:-1.7.1}
+VERSION=${VERSION:-1.7.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/distrobox/distrobox.info b/system/distrobox/distrobox.info
index 3a44b50f50..138c82b14f 100644
--- a/system/distrobox/distrobox.info
+++ b/system/distrobox/distrobox.info
@@ -1,8 +1,8 @@
PRGNAM="distrobox"
-VERSION="1.7.1"
+VERSION="1.7.2.0"
HOMEPAGE="https://github.com/89luca89/distrobox"
-DOWNLOAD="https://github.com/89luca89/distrobox/archive/1.7.1/distrobox-1.7.1.tar.gz"
-MD5SUM="25e413dbc60fbea908542c392e2affda"
+DOWNLOAD="https://github.com/89luca89/distrobox/archive/1.7.2.0/distrobox-1.7.2.0.tar.gz"
+MD5SUM="14d5352203adef489e399d5c396c9716"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="podman"
diff --git a/system/docker-buildx/docker-buildx.SlackBuild b/system/docker-buildx/docker-buildx.SlackBuild
index 6dab03e6f3..37a65556b7 100644
--- a/system/docker-buildx/docker-buildx.SlackBuild
+++ b/system/docker-buildx/docker-buildx.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=docker-buildx
-VERSION=${VERSION:-0.13.1}
-GITHASH=${GITHASH:-788433953af10f2a698f5c07611dddce2e08c7a0}
+VERSION=${VERSION:-0.14.0}
+GITHASH=${GITHASH:-171fcbeb69d67c90ba7f44f41a9e418f6a6ec1da}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/docker-buildx/docker-buildx.info b/system/docker-buildx/docker-buildx.info
index 625dad5d7c..4fea8e5bc4 100644
--- a/system/docker-buildx/docker-buildx.info
+++ b/system/docker-buildx/docker-buildx.info
@@ -1,10 +1,10 @@
PRGNAM="docker-buildx"
-VERSION="0.13.1"
+VERSION="0.14.0"
HOMEPAGE="https://github.com/docker/buildx"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/docker/buildx/archive/v0.13.1/buildx-0.13.1.tar.gz"
-MD5SUM_x86_64="42a6b7cc084755ff69b7109fb728f29d"
+DOWNLOAD_x86_64="https://github.com/docker/buildx/archive/v0.14.0/buildx-0.14.0.tar.gz"
+MD5SUM_x86_64="44115354337df52c9c609c9d41411c3b"
REQUIRES="google-go-lang"
MAINTAINER="Andrew Clemons"
EMAIL="andrew.clemons@gmail.com"
diff --git a/system/docker-compose/docker-compose.SlackBuild b/system/docker-compose/docker-compose.SlackBuild
index 463bd6d7ef..b34eeb8d87 100644
--- a/system/docker-compose/docker-compose.SlackBuild
+++ b/system/docker-compose/docker-compose.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=docker-compose
-VERSION=${VERSION:-2.26.1}
+VERSION=${VERSION:-2.27.0}
GITHASH=${GITHASH:-b929810}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/system/docker-compose/docker-compose.info b/system/docker-compose/docker-compose.info
index d7bf6ea891..1f77fc084d 100644
--- a/system/docker-compose/docker-compose.info
+++ b/system/docker-compose/docker-compose.info
@@ -1,10 +1,10 @@
PRGNAM="docker-compose"
-VERSION="2.26.1"
+VERSION="2.27.0"
HOMEPAGE="https://docs.docker.com/compose/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/docker/compose/archive/v2.26.1/compose-2.26.1.tar.gz"
-MD5SUM_x86_64="64ac36e75914803274d074d107cf3e17"
+DOWNLOAD_x86_64="https://github.com/docker/compose/archive/v2.27.0/compose-2.27.0.tar.gz"
+MD5SUM_x86_64="19c94f1323a155d19afbfeda1cdecbcc"
REQUIRES="docker-cli"
MAINTAINER="Ebben Aries"
EMAIL="slackbuilds@dscp.org"
diff --git a/system/efi-sync/README b/system/efi-sync/README
new file mode 100644
index 0000000000..71a5cef40a
--- /dev/null
+++ b/system/efi-sync/README
@@ -0,0 +1,19 @@
+efi-sync is a program which will update your efi when your kernel or its
+related files are updated.
+
+To have efi-sync to start and stop with your host, add to the beginning of
+/etc/rc.d/rc.local:
+
+ if [ -x /etc/rc.d/rc.efi-sync ]; then
+ /etc/rc.d/rc.efi-sync start
+ fi
+
+and to /etc/rc.d/rc.local_shutdown (creating it if needed):
+
+ if [ -x /etc/rc.d/rc.efi-sync ]; then
+ /etc/rc.d/rc.efi-sync stop
+ fi
+
+Also ensure your EFI is mounted on boot by having its entry configured in
+/etc/fstab. For more instructions, refer to the project's README in this
+packages documentation under /usr/doc.
diff --git a/system/efi-sync/doinst.sh b/system/efi-sync/doinst.sh
new file mode 100644
index 0000000000..519c0d5c0d
--- /dev/null
+++ b/system/efi-sync/doinst.sh
@@ -0,0 +1,25 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ if [ -e $OLD ]; then
+ cp -a $OLD ${NEW}.incoming
+ cat $NEW > ${NEW}.incoming
+ mv ${NEW}.incoming $NEW
+ fi
+ config $NEW
+}
+
+preserve_perms etc/rc.d/rc.efi-sync.new
diff --git a/system/efi-sync/efi-sync.SlackBuild b/system/efi-sync/efi-sync.SlackBuild
new file mode 100644
index 0000000000..e9a06ee65a
--- /dev/null
+++ b/system/efi-sync/efi-sync.SlackBuild
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=efi-sync
+VERSION=${VERSION:-0.2.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p $PKG/usr/sbin
+cp efi-sync $PKG/usr/sbin/
+chmod +x $PKG/usr/sbin/efi-sync
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+cp -a \
+ README.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cp "$CWD/README" "$PKG/usr/doc/$PRGNAM-$VERSION/README_slackware.md"
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+mkdir -p "$PKG/etc/rc.d"
+cp -R "$CWD/files/rc.efi-sync.new" "$PKG/etc/rc.d/"
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-0.2.0-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/system/efi-sync/efi-sync.info b/system/efi-sync/efi-sync.info
new file mode 100644
index 0000000000..166c307260
--- /dev/null
+++ b/system/efi-sync/efi-sync.info
@@ -0,0 +1,10 @@
+PRGNAM="efi-sync"
+VERSION="0.2.0"
+HOMEPAGE="https://git.server.ky/slackcoder/efi-sync"
+DOWNLOAD="https://git.server.ky/slackcoder/efi-sync/snapshot/efi-sync-0.2.0.tar.xz"
+MD5SUM="9da8ebe6f6bcf30e0b8304c641c72396"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Slack Coder"
+EMAIL="slackcoder@server.ky"
diff --git a/system/efi-sync/files/rc.efi-sync.new b/system/efi-sync/files/rc.efi-sync.new
new file mode 100644
index 0000000000..727c93b84a
--- /dev/null
+++ b/system/efi-sync/files/rc.efi-sync.new
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# Startup/shutdown script for GNU Taler's exchange.
+#
+
+# Seconds to wait for daemon to shutdown.
+SHUTDOWN_WAIT=60
+
+mkdir -p /run/efi-sync
+
+start() {
+ echo "Starting EFI Sync"
+
+ daemon \
+ --name=efi-sync \
+ --pidfiles=/run/efi-sync \
+ --output=/var/log/efi-sync.log \
+ -- efi-sync watch
+}
+
+stop() {
+ echo "Stopping EFI Sync"
+
+ if /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --running ; then
+ /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --stop
+ fi
+
+ # Wait for daemon to politely shutdown.
+ sleep 1
+ if /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --running; then
+ echo "Waiting up to ${SHUTDOWN_WAIT} to stop..."
+
+ let "count = 0"
+ while /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --running && [[ $count -lt 60 ]]; do
+ sleep 1
+ let "count = $count + 1"
+ done
+ fi
+}
+
+status() {
+ if /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --running ; then
+ /usr/bin/daemon --pidfiles=/run/efi-sync --name=efi-sync --running --verbose
+ fi
+}
+
+case "$1" in
+start)
+ start
+ ;;
+stop)
+ stop
+ ;;
+status)
+ status
+ ;;
+*)
+ echo $"Usage: $0 {start|stop|status}"
+ exit 1
+esac
diff --git a/system/efi-sync/slack-desc b/system/efi-sync/slack-desc
new file mode 100644
index 0000000000..1c4590c6f1
--- /dev/null
+++ b/system/efi-sync/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+efi-sync: efi-sync (Kernel EFI installer)
+efi-sync:
+efi-sync: Automatically install your kernel into the EFI on updates.
+efi-sync:
+efi-sync:
+efi-sync:
+efi-sync:
+efi-sync:
+efi-sync:
+efi-sync:
+efi-sync:
diff --git a/system/efitools/efitools.SlackBuild b/system/efitools/efitools.SlackBuild
index 6670f971bd..c00927de6c 100644
--- a/system/efitools/efitools.SlackBuild
+++ b/system/efitools/efitools.SlackBuild
@@ -43,9 +43,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -129,7 +126,8 @@ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; r
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cd $PKG/usr/share/efitools
-mv README README_Secure_Boot COPYING $PKG/usr/doc/$PRGNAM-$VERSION
+mv README COPYING $PKG/usr/doc/$PRGNAM-$VERSION
+cp $CWD/README.Secure_Boot $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/system/fastfetch/fastfetch.SlackBuild b/system/fastfetch/fastfetch.SlackBuild
index 57f29bec06..0b0814deb8 100644
--- a/system/fastfetch/fastfetch.SlackBuild
+++ b/system/fastfetch/fastfetch.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=fastfetch
-VERSION=${VERSION:-2.9.0}
+VERSION=${VERSION:-2.10.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/fastfetch/fastfetch.info b/system/fastfetch/fastfetch.info
index 98a2f06064..67524f7327 100644
--- a/system/fastfetch/fastfetch.info
+++ b/system/fastfetch/fastfetch.info
@@ -1,8 +1,8 @@
PRGNAM="fastfetch"
-VERSION="2.9.0"
+VERSION="2.10.2"
HOMEPAGE="https://github.com/fastfetch-cli/fastfetch"
-DOWNLOAD="https://github.com/fastfetch-cli/fastfetch/archive/2.9.0/fastfetch-2.9.0.tar.gz"
-MD5SUM="b5e476cbd7fd82bcbc510ff1940ea502"
+DOWNLOAD="https://github.com/fastfetch-cli/fastfetch/archive/2.10.2/fastfetch-2.10.2.tar.gz"
+MD5SUM="21bf6a715d2a2cd075b75030756c1cee"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/fnt/fnt.SlackBuild b/system/fnt/fnt.SlackBuild
index 8e7f07ae68..501874d719 100644
--- a/system/fnt/fnt.SlackBuild
+++ b/system/fnt/fnt.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=fnt
-VERSION=${VERSION:-1.5}
+VERSION=${VERSION:-1.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/fnt/fnt.info b/system/fnt/fnt.info
index 95b799b80c..12b201d68d 100644
--- a/system/fnt/fnt.info
+++ b/system/fnt/fnt.info
@@ -1,8 +1,8 @@
PRGNAM="fnt"
-VERSION="1.5"
+VERSION="1.6"
HOMEPAGE="https://github.com/alexmyczko/fnt"
-DOWNLOAD="https://github.com/alexmyczko/fnt/archive/1.5/fnt-1.5.tar.gz"
-MD5SUM="e2d25c7845bc2617f618a0701f7ceabe"
+DOWNLOAD="https://github.com/alexmyczko/fnt/archive/1.6/fnt-1.6.tar.gz"
+MD5SUM="f52306f5968e8930afd99a4542196170"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="chafa lcdf-typetools"
diff --git a/system/fnt/makefile.patch b/system/fnt/makefile.patch
index cbfac98aeb..abdbb87e1b 100644
--- a/system/fnt/makefile.patch
+++ b/system/fnt/makefile.patch
@@ -1,11 +1,11 @@
---- makefile 2023-08-22 18:06:03.000000000 +0530
-+++ makefile1 2024-02-05 18:00:30.130997385 +0530
+--- makefile 2024-03-27 01:02:16.000000000 +0530
++++ makefile1 2024-04-22 18:24:26.887740205 +0530
@@ -1,6 +1,6 @@
BINDIR=/usr/bin
-MANDIR=/usr/share/man
-ZCOMPDIR=/usr/local/share/zsh/site-functions
+MANDIR=/usr/man
+ZCOMPDIR=/usr/share/zsh/site-functions
- VERSION=1.3
+ VERSION=1.5
all:
diff --git a/system/fzf/fzf.SlackBuild b/system/fzf/fzf.SlackBuild
index 82af663b0f..78a31b4701 100644
--- a/system/fzf/fzf.SlackBuild
+++ b/system/fzf/fzf.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=fzf
-VERSION=${VERSION:-0.49.0}
+VERSION=${VERSION:-0.51.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -82,8 +82,8 @@ done
mkdir -p vendor/golang.org/x
for DEPENDENCY in sync/0.5.0 \
- sys/0.18.0 \
- term/0.18.0 \
+ sys/0.19.0 \
+ term/0.19.0 \
text/0.14.0 ; do
DEPENDENCY_NAME="$(echo "$DEPENDENCY" | cut -d/ -f1)"
DEPENDENCY_REV="$(echo "$DEPENDENCY" | cut -d/ -f2)"
@@ -155,12 +155,12 @@ github.com/mattn/go-shellwords
# github.com/rivo/uniseg v0.4.7
## explicit; go 1.18
github.com/rivo/uniseg
-# golang.org/x/sys v0.18.0
+# golang.org/x/sys v0.19.0
## explicit; go 1.18
golang.org/x/sys/plan9
golang.org/x/sys/unix
golang.org/x/sys/windows
-# golang.org/x/term v0.18.0
+# golang.org/x/term v0.19.0
## explicit; go 1.18
golang.org/x/term
# golang.org/x/text v0.14.0
diff --git a/system/fzf/fzf.info b/system/fzf/fzf.info
index 0ab652eb52..7578e1b62e 100644
--- a/system/fzf/fzf.info
+++ b/system/fzf/fzf.info
@@ -1,7 +1,7 @@
PRGNAM="fzf"
-VERSION="0.49.0"
+VERSION="0.51.0"
HOMEPAGE="https://github.com/junegunn/fzf"
-DOWNLOAD="https://github.com/junegunn/fzf/archive/0.49.0/fzf-0.49.0.tar.gz \
+DOWNLOAD="https://github.com/junegunn/fzf/archive/0.51.0/fzf-0.51.0.tar.gz \
https://github.com/charlievieth/fastwalk/archive/v1.0.3/fastwalk-1.0.3.tar.gz \
https://github.com/gdamore/encoding/archive/v1.0.0/encoding-1.0.0.tar.gz \
https://github.com/gdamore/tcell/archive/v2.7.4/tcell-2.7.4.tar.gz \
@@ -11,10 +11,10 @@ DOWNLOAD="https://github.com/junegunn/fzf/archive/0.49.0/fzf-0.49.0.tar.gz \
https://github.com/mattn/go-shellwords/archive/v1.0.12/go-shellwords-1.0.12.tar.gz \
https://github.com/rivo/uniseg/archive/v0.4.7/uniseg-0.4.7.tar.gz \
https://github.com/golang/sync/archive/v0.5.0/sync-0.5.0.tar.gz \
- https://github.com/golang/sys/archive/v0.18.0/sys-0.18.0.tar.gz \
- https://github.com/golang/term/archive/v0.18.0/term-0.18.0.tar.gz \
+ https://github.com/golang/sys/archive/v0.19.0/sys-0.19.0.tar.gz \
+ https://github.com/golang/term/archive/v0.19.0/term-0.19.0.tar.gz \
https://github.com/golang/text/archive/v0.14.0/text-0.14.0.tar.gz"
-MD5SUM="ae80282d8f779c58782b89eb06599306 \
+MD5SUM="a8625f0178788dfa9c98d24842eef3eb \
ab5a2274c5ccac2d968e768ac2415209 \
fbadc383bc1ace79fa769fe2de36b87b \
a03c6d4612a12e949e05ea7d67624142 \
@@ -24,8 +24,8 @@ MD5SUM="ae80282d8f779c58782b89eb06599306 \
71a4ecaadfb90ffccb392799a2f00743 \
3751c82dd342cd5823703910b9da173d \
a8371f5f0569f41210ca8a3f30e445c6 \
- e00453d8847cde61907bcbee219c44bb \
- 8f5afb0df38c6eb06f51f483e30eddba \
+ 884f364735b00bb72fcea01a6de28c46 \
+ aa8f5889c36f2124c7f3a274a66a8382 \
9f64144d4b1647ce4597abf657028a8d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/system/greetd/greetd.SlackBuild b/system/greetd/greetd.SlackBuild
index 6930e89311..611b57090d 100644
--- a/system/greetd/greetd.SlackBuild
+++ b/system/greetd/greetd.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=greetd
PRGUID=greeter
PRGGID=greeter
-VERSION=${VERSION:-0.9.0}
+VERSION=${VERSION:-0.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/greetd/greetd.info b/system/greetd/greetd.info
index d666978424..07cbb542b6 100644
--- a/system/greetd/greetd.info
+++ b/system/greetd/greetd.info
@@ -1,102 +1,128 @@
PRGNAM="greetd"
-VERSION="0.9.0"
+VERSION="0.10.0"
HOMEPAGE="https://git.sr.ht/~kennylevinsen/greetd"
-DOWNLOAD="https://static.crates.io/crates/async-trait/async-trait-0.1.60.crate \
- https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate \
- https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
- https://static.crates.io/crates/bytes/bytes-1.3.0.crate \
+DOWNLOAD="https://github.com/kennylevinsen/greetd/archive/0.10.0/greetd-0.10.0.tar.gz \
+ https://static.crates.io/crates/addr2line/addr2line-0.21.0.crate \
+ https://static.crates.io/crates/adler/adler-1.0.2.crate \
+ https://static.crates.io/crates/async-trait/async-trait-0.1.80.crate \
+ https://static.crates.io/crates/backtrace/backtrace-0.3.71.crate \
+ https://static.crates.io/crates/bitflags/bitflags-2.5.0.crate \
+ https://static.crates.io/crates/bytes/bytes-1.6.0.crate \
+ https://static.crates.io/crates/cc/cc-1.0.95.crate \
https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate \
https://static.crates.io/crates/enquote/enquote-1.1.0.crate \
https://static.crates.io/crates/getopts/getopts-0.2.21.crate \
- https://static.crates.io/crates/itoa/itoa-1.0.5.crate \
- https://static.crates.io/crates/libc/libc-0.2.139.crate \
- https://static.crates.io/crates/log/log-0.4.17.crate \
- https://static.crates.io/crates/memchr/memchr-2.5.0.crate \
- https://static.crates.io/crates/memoffset/memoffset-0.7.1.crate \
- https://static.crates.io/crates/mio/mio-0.8.5.crate \
- https://static.crates.io/crates/nix/nix-0.26.1.crate \
+ https://static.crates.io/crates/gimli/gimli-0.28.1.crate \
+ https://static.crates.io/crates/itoa/itoa-1.0.11.crate \
+ https://static.crates.io/crates/libc/libc-0.2.153.crate \
+ https://static.crates.io/crates/memchr/memchr-2.7.2.crate \
+ https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.2.crate \
+ https://static.crates.io/crates/mio/mio-0.8.11.crate \
+ https://static.crates.io/crates/nix/nix-0.27.1.crate \
+ https://static.crates.io/crates/object/object-0.32.2.crate \
https://static.crates.io/crates/pam-sys/pam-sys-0.5.6.crate \
- https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.9.crate \
- https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate \
- https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.49.crate \
- https://static.crates.io/crates/quote/quote-1.0.23.crate \
+ https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.14.crate \
+ https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.81.crate \
+ https://static.crates.io/crates/quote/quote-1.0.36.crate \
https://static.crates.io/crates/rpassword/rpassword-5.0.1.crate \
- https://static.crates.io/crates/ryu/ryu-1.0.12.crate \
- https://static.crates.io/crates/serde/serde-1.0.152.crate \
- https://static.crates.io/crates/serde_derive/serde_derive-1.0.152.crate \
- https://static.crates.io/crates/serde_json/serde_json-1.0.91.crate \
- https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.0.crate \
- https://static.crates.io/crates/socket2/socket2-0.4.7.crate \
- https://static.crates.io/crates/static_assertions/static_assertions-1.1.0.crate \
- https://static.crates.io/crates/syn/syn-1.0.107.crate \
- https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.38.crate \
- https://static.crates.io/crates/thiserror/thiserror-1.0.38.crate \
- https://static.crates.io/crates/tokio-macros/tokio-macros-1.8.2.crate \
- https://static.crates.io/crates/tokio/tokio-1.24.0.crate \
- https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.6.crate \
- https://static.crates.io/crates/unicode-width/unicode-width-0.1.10.crate \
- https://static.crates.io/crates/users/users-0.11.0.crate \
+ https://static.crates.io/crates/rustc-demangle/rustc-demangle-0.1.23.crate \
+ https://static.crates.io/crates/ryu/ryu-1.0.17.crate \
+ https://static.crates.io/crates/serde/serde-1.0.198.crate \
+ https://static.crates.io/crates/serde_derive/serde_derive-1.0.198.crate \
+ https://static.crates.io/crates/serde_json/serde_json-1.0.116.crate \
+ https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate \
+ https://static.crates.io/crates/socket2/socket2-0.5.6.crate \
+ https://static.crates.io/crates/syn/syn-2.0.60.crate \
+ https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.58.crate \
+ https://static.crates.io/crates/thiserror/thiserror-1.0.58.crate \
+ https://static.crates.io/crates/tokio-macros/tokio-macros-2.2.0.crate \
+ https://static.crates.io/crates/tokio/tokio-1.37.0.crate \
+ https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate \
+ https://static.crates.io/crates/unicode-width/unicode-width-0.1.11.crate \
https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate \
https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
- https://static.crates.io/crates/windows-sys/windows-sys-0.42.0.crate \
- https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.0.crate \
- https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.0.crate \
- https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.42.0.crate \
- https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.0.crate \
- https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.42.0.crate \
- https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.0.crate \
- https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.0.crate \
- https://github.com/kennylevinsen/greetd/archive/0.9.0/greetd-0.9.0.tar.gz"
-MD5SUM="fdfbe819b079678795b1ee1e1c61b9cb \
- 05d77ef52e90ad161fdd41b252420467 \
- a295edb6953237ebbdfa8e731229f9a3 \
- 4dfac92ee6bdeb44117342cb203dd36c \
+ https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate \
+ https://static.crates.io/crates/windows-sys/windows-sys-0.52.0.crate \
+ https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate \
+ https://static.crates.io/crates/windows-targets/windows-targets-0.52.5.crate \
+ https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate \
+ https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.52.5.crate \
+ https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate \
+ https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.52.5.crate \
+ https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate \
+ https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.52.5.crate \
+ https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.5.crate \
+ https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate \
+ https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.52.5.crate \
+ https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate \
+ https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.52.5.crate \
+ https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate \
+ https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.52.5.crate \
+ https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate \
+ https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.52.5.crate"
+MD5SUM="c7caa14a01035f4d80444e8ce4359ee2 \
+ 55e15000c4c210f0bb2aca6f38fbe424 \
+ 669215548c64019c08c92b2c1afd3deb \
+ 1b41868d6e1277abee3b6c84a7b7ff83 \
+ cacc6bd5d3b1a38d103a212e0dbaebcc \
+ f3406374808b01be3a263666aa9aa2f5 \
+ 722cab9ebe9eb019d5c3b400325de876 \
+ 63fe036b9d15f66507b3d9a374b65916 \
74634128440dbc3766bda76fdf0aaa05 \
14be1ab75b7fa1711d7c81313f15ea4d \
c3ec5977ecc0f6244ef3be87f5325e72 \
- f2ffcbe94a83f2437ffe47d7dbf4ad04 \
- 2f4991ee29e75b732dbfbbe637506066 \
- b31bf94ffe7e0f2ada93afae1076eaeb \
- 94b8bf179385ff071bdc33b58bf047c0 \
- 48e7cc866f45af55ea3f627e29a2cd98 \
- a8a1c536701e539cdce215fd7f55de9f \
- 5574bd0280c1d59555909f6b598ced79 \
+ fbc6f6d82084b19c006198508b1ac489 \
+ 5d87e8530342ef2a980b1c96dafd27f0 \
+ 49d77531898b3d7846b149c0fb4788c4 \
+ e90235c862e9e1fabe9f569bcfbd9692 \
+ 86aa81f2561682f16c0be376294bf9d3 \
+ 13f47025d308bc16d26a9bc3334f3bbe \
+ 81fab2fb761d130825cdba5fed59b10b \
+ 0d98aaf27d3cace75f9959c04b910891 \
1a61e05436ba382ed378ec9cf100fea2 \
- ce6dde2ea2691fdd97632fb8c9b3e042 \
- 07c75fec267864bcbb800ca7709ceae2 \
- e6bfe297f458a83f516e46e9b0ba07b4 \
- 41defdffa40e7cbcc7e17a933c5660ab \
+ a9a6ce6cd4b12f9c4f6840df87d5da0d \
+ 11d049cc954c7a9744b9fa85d9596b0c \
+ 7267e731f46f52edb7b5304b60982cf4 \
1e585d25db7b5bb009b060befc74e9fe \
- 4ca29f2ce41fb9f282c527c1d8ae5cc4 \
- 2d82330c9f218f42ccc9e44c2d18ff8f \
- 3338953ce1388e5ff5fef5aac76ab1f5 \
- 4da6e91a5a30bc8163694b0809798d0e \
- 21b43d5721b3a9c16059acb691f4314d \
- 362eebacce3b2c9204fdef6d1c04d757 \
- c9defe80406280bcfce4ecf31c0200b3 \
- 8efa8e23cddda0540efe4ba8ff60840b \
- 44e45d4d9b0904fd06d6f46107eda592 \
- 3d2277774414ad0f59584e7021b9be06 \
- d6f24a12196b2e717d4fd869f3410e7f \
- 6cdee292cf5bfd88a1608ebe48e3cab7 \
- e522898b2cb1fd23af2695324b3a5c78 \
- 7d6d4fc9fad200d6e295f6930e97e022 \
- d4c929fc9daf131daef04ee7eaa91fd4 \
+ 24fcbc2986fad09b25c9a4f9aef0a9e4 \
+ feefd8369d6dd6a0f269bbed1b921349 \
+ c87a7eb9d5acaa5a380ec5cdc0b3ec7e \
+ 6bfc46c5bc79cd99e55253ae77195967 \
+ ecf1e501541e064d3e96172bd0f3c709 \
+ 22e95901b912671da26457ac33e36a23 \
+ e0a2eb3573e89a1462cb180fd0a326cd \
+ 5f38b77f4cd61a26d90079aaf5ad2257 \
+ 361668f9f11e4f0eba45f70c24fa8614 \
+ f443b2cca547d22f994c2dd99a6e5581 \
+ 7d6059d699479e0b6a99ce0281522217 \
+ bf33e2d27126b29c8a9b1239c688a424 \
+ ca65153603a1a7240bbd9d2ce19f2d67 \
+ 908ec8a89821b72f3a35726bab24461f \
e972ea58ec203bfa6c79c1207852298b \
+ 0498c4a11448bfc35dc7bb2caa64c753 \
db96b50050277bf05a3c68534bbb9586 \
09de9d01e7331ff3da11f58be8bef0df \
- 0498c4a11448bfc35dc7bb2caa64c753 \
- 110789f2dd21a2ea820ebed976b4b1c2 \
- 86854324255f07e8f64cc11ef8be3b3c \
- 510f0324dbaea90d9d3ca2eea5e71a04 \
- 38cf2b9fa16048f19e0d3b2d73479e50 \
- c373eadcbc79dfc0b580d12851add17d \
- f41cbc66ecf1f5006d0f0a7df2726c73 \
- b04135c0705b10e9866585e1d75e68a3 \
- 404688aa3e82019927df8a16c7d258d1 \
- af714594386b3e648f20d6d923d2357d"
+ f2797ade0e36f1e5d6be9d11b5076582 \
+ 2376de634160158ece40c4bc2ab3eb41 \
+ 24c64817e85ef77765ed0f26c31c9b4c \
+ 940f8708332e8e3720266a7bce4d761d \
+ dae6d89034a6988042fd8be4cf5e037d \
+ 967cf93762a3bc25e18d0b8b7e811b84 \
+ de2839e16d9d7a9fd1c397da62f62b4a \
+ 0bc2062598ed9d8ed536e27fddd81ce7 \
+ e0c35ffb8cfdb74a39bf799811f79304 \
+ a35e6187f2f41e601cf885c279ebb43e \
+ 183b6a856fadbc8f21a6c53ca81155c9 \
+ d990172b607020701f9e84ca8e1c043c \
+ cc1f120172ea435e8ac1e813435bc630 \
+ 0a68848588e847ceccf504891584d00b \
+ 1dbfec917710e57b574e92effa934924 \
+ 45b469ad607b912256b7c80141fa2d17 \
+ 3817cf594b24311c4ea944398a58a48d \
+ 7799baff9a5664205d9110a2624e8989 \
+ 7cc8e977768423992930663aadcc43dd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gtk-layer-shell rust16 scdoc"
diff --git a/system/inotify-info/inotify-info.SlackBuild b/system/inotify-info/inotify-info.SlackBuild
index 35417bf478..5de56ed254 100644
--- a/system/inotify-info/inotify-info.SlackBuild
+++ b/system/inotify-info/inotify-info.SlackBuild
@@ -25,8 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=inotify-info
-VERSION=${VERSION:-20230226_8add69e}
-COMMIT=${COMMIT:-8add69efcfc702322819321387bae9043d7d4b59}
+VERSION=${VERSION:-0.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -53,16 +52,12 @@ OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
fi
set -e
@@ -70,9 +65,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$COMMIT
-tar xvf $CWD/$PRGNAM-$COMMIT.tar.gz
-cd $PRGNAM-$COMMIT
+rm -rf $PRGNAM-v$VERSION
+tar xvf $CWD/$PRGNAM-v$VERSION.tar.gz
+cd $PRGNAM-v$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
diff --git a/system/inotify-info/inotify-info.info b/system/inotify-info/inotify-info.info
index 4f5ac61bf0..3107d693ed 100644
--- a/system/inotify-info/inotify-info.info
+++ b/system/inotify-info/inotify-info.info
@@ -1,8 +1,8 @@
PRGNAM="inotify-info"
-VERSION="20230226_8add69e"
+VERSION="0.0.1"
HOMEPAGE="https://github.com/mikesart/inotify-info"
-DOWNLOAD="https://github.com/mikesart/inotify-info/archive/8add69e/inotify-info-8add69efcfc702322819321387bae9043d7d4b59.tar.gz"
-MD5SUM="a800f3eaaec2ef5812a3c20ccee3244c"
+DOWNLOAD="https://github.com/mikesart/inotify-info/releases/download/v0.0.1/inotify-info-v0.0.1.tar.gz"
+MD5SUM="e63e740fc3fcf91c03bbcbc5045937b3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/kitty/kitty.SlackBuild b/system/kitty/kitty.SlackBuild
index 50211bc0f2..81d907d472 100644
--- a/system/kitty/kitty.SlackBuild
+++ b/system/kitty/kitty.SlackBuild
@@ -12,7 +12,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=kitty
-VERSION=${VERSION:-0.34.0}
+VERSION=${VERSION:-0.34.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/kitty/kitty.info b/system/kitty/kitty.info
index bc48b71549..aadc6f8ac2 100644
--- a/system/kitty/kitty.info
+++ b/system/kitty/kitty.info
@@ -1,8 +1,8 @@
PRGNAM="kitty"
-VERSION="0.34.0"
+VERSION="0.34.1"
HOMEPAGE="https://sw.kovidgoyal.net/kitty/"
-DOWNLOAD="https://download.dlackware.com/hosted-sources/kitty/kitty-0.34.0.tar.xz"
-MD5SUM="57e592cf4634d2b903885ed50e5ad5ff"
+DOWNLOAD="https://download.dlackware.com/hosted-sources/kitty/kitty-0.34.1.tar.xz"
+MD5SUM="992c3ed6c2209a4aa8446afda0c8ee72"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="librsync google-go-lang simde"
diff --git a/system/limine/limine-sample.cfg b/system/limine/limine-sample.cfg
index 34aeb2411d..237c2047a2 100644
--- a/system/limine/limine-sample.cfg
+++ b/system/limine/limine-sample.cfg
@@ -1,9 +1,8 @@
-TIMEOUT=5 # Boot prompt timeout in seconds.
-TERM_FONT_SCALE=2x2 # Scale font both vertically and horizontally.
+# Boot prompt timeout in seconds.
+TIMEOUT=5
+# Scale font both vertically and horizontally.
+TERM_FONT_SCALE=2x2
-# Example Slackware boot entry.
-# Limine can boot Linux natively.
-#
# boot:// refers to the partition limine config is located at.
:Slackware
PROTOCOL=linux
@@ -11,12 +10,4 @@ TERM_FONT_SCALE=2x2 # Scale font both vertically and horizontally.
MODULE_PATH=boot:///EFI/Slackware/initrd.gz # Adjust ramdisk path.
CMDLINE=root=/dev/sda3 vga=normal ro # Adjust root filesystem path.
-# Example MS Windows entry using UEFI bootloader chainloading.
-# Limine cannot boot MS Windows natively, so it will instead launch the UEFI
-# bootloader provided by MS Windows and let it do the job.
-#
-# This entry refers to the partition by its UUID, invoke `sudo blkid` to list
-# out partition UUIDs.
-:Windows
- PROTOCOL=chainload
- IMAGE_PATH=uuid://6c1ac528-cc9a-804d-b28a-82b7ae8ec9d7/EFI/Microsoft/Boot/bootmgfw.efi
+# For more examples, see https://wiki.archlinux.org/title/Limine
diff --git a/system/limine/limine.SlackBuild b/system/limine/limine.SlackBuild
index 309d917533..a0c89610d1 100644
--- a/system/limine/limine.SlackBuild
+++ b/system/limine/limine.SlackBuild
@@ -25,7 +25,7 @@
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=limine
-VERSION=${VERSION:-7.3.1}
+VERSION=${VERSION:-7.4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -97,6 +97,7 @@ cat "$SRC/CONFIG.md" > "$PKG/usr/doc/$NAMVER/CONFIG.md"
cat "$SRC/COPYING" > "$PKG/usr/share/$NAMVER/LICENSE"
cat "$SRC/PHILOSOPHY.md" > "$PKG/usr/share/$NAMVER/PHILOSOPHY.md"
cat "$SRC/PROTOCOL.md" > "$PKG/usr/share/$NAMVER/PROTOCOL.md"
+cat "$SRC/ChangeLog" > "$PKG/usr/share/$NAMVER/ChangeLog"
cat "$SRC/README.md" > "$PKG/usr/doc/$NAMVER/repository-README.md"
cd "$PKG"
diff --git a/system/limine/limine.info b/system/limine/limine.info
index 05f9a52420..51c11a7990 100644
--- a/system/limine/limine.info
+++ b/system/limine/limine.info
@@ -1,8 +1,8 @@
PRGNAM="limine"
-VERSION="7.3.1"
+VERSION="7.4.1"
HOMEPAGE="https://limine-bootloader.org/"
-DOWNLOAD="https://github.com/limine-bootloader/limine/releases/download/v7.3.1/limine-7.3.1.tar.gz"
-MD5SUM="51a80cfdccb2e883ed70bc3057aa4ac9"
+DOWNLOAD="https://github.com/limine-bootloader/limine/releases/download/v7.4.1/limine-7.4.1.tar.gz"
+MD5SUM="9ef991b2c130b5156cbf180b2543c331"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/lxdm/README b/system/lxdm/README
index eff7c7fd0a..0de31dd925 100644
--- a/system/lxdm/README
+++ b/system/lxdm/README
@@ -2,8 +2,8 @@ LXDM - GUI login manager for LXDE
LXDM is a lightweight drop-in replacement for GDM or KDM.
-By default the gtk+3 version of the greeter is built: to
-build the gtk+2 one instead, the script can be run as
+By default the gtk+3 version of the greeter is built: to build
+the gtk+2 one instead (unsupported), the script can be run as
GTK3=no ./lxdm.SlackBuild
diff --git a/system/lxdm/lxdm.SlackBuild b/system/lxdm/lxdm.SlackBuild
index 0547691012..de77b8312a 100644
--- a/system/lxdm/lxdm.SlackBuild
+++ b/system/lxdm/lxdm.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for lxdm
# Copyright 2010,2011 Robby Workman, Northport, Alabama, USA
-# Copyright 2012-2017 Matteo Bernardini, Pisa, Italy
+# Copyright 2012-2024 Matteo Bernardini, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxdm
VERSION=${VERSION:-20170805_e3e7517}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -73,7 +73,7 @@ INDUSLACK_VER=${INDUSLACK_VER:-20170818}
#
WITH_INDUSLACK=${WITH_INDUSLACK:-yes}
-with_gtk3="" ; [ "${GTK3:-yes}" = "yes" ] && with_gtk3="--enable-gtk3"
+with_gtk3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && with_gtk3=""
set -e
@@ -128,7 +128,7 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
- --without-pam \
+ --with-pam \
$with_gtk3 \
--build=$ARCH-slackware-linux
@@ -171,9 +171,7 @@ if [ "${WITH_INDUSLACK}" = "yes" ] ; then
fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- AUTHORS COPYING INSTALL README TODO \
- $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS COPYING INSTALL README TODO $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
diff --git a/system/lxinput/README b/system/lxinput/README
index 8e3ca14e80..513ca55203 100644
--- a/system/lxinput/README
+++ b/system/lxinput/README
@@ -1,4 +1,6 @@
-lxinput (input settings for LXDE)
-
-lxnput is part of the LXDE project.
+lxinput is part of the LXDE project.
It implements selectable input settings for LXDE.
+
+If you want to build this for gtk+2, pass to the script the switch
+
+ GTK3=no
diff --git a/system/lxinput/lxinput.SlackBuild b/system/lxinput/lxinput.SlackBuild
index 3d33a83d7a..5e4a062e2f 100644
--- a/system/lxinput/lxinput.SlackBuild
+++ b/system/lxinput/lxinput.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# Slackware build script for lxinput
-# Copyright 2010-2016 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2010-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxinput
VERSION=${VERSION:-0.3.5}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -40,9 +40,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -66,6 +63,10 @@ else
LIBDIRSUFFIX=""
fi
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3="--enable-gtk"
+
+DOCS="AUTHOR COPYING ChangeLog NEWS README TODO"
+
set -e
rm -rf $PKG
@@ -93,6 +94,7 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-man \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
+ $WITHGTK3 \
--build=$ARCH-slackware-linux
make
@@ -102,9 +104,7 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- AUTHOR COPYING ChangeLog NEWS README TODO \
- $PKG/usr/doc/$PRGNAM-$VERSION || true
+cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/system/lxrandr/README b/system/lxrandr/README
index 51a088f664..b770221d91 100644
--- a/system/lxrandr/README
+++ b/system/lxrandr/README
@@ -2,3 +2,7 @@ lxrandr (LXDE monitor config tool)
LXRandR is a monitor configuration tool using X.Org's XRandR extension
(if the graphics driver supports it).
+
+If you want to build this for gtk+2, pass to the script the switch
+
+ GTK3=no
diff --git a/system/lxrandr/lxrandr.SlackBuild b/system/lxrandr/lxrandr.SlackBuild
index bab357a4ae..d97837c321 100644
--- a/system/lxrandr/lxrandr.SlackBuild
+++ b/system/lxrandr/lxrandr.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# $Id: lxrandr.SlackBuild,v 1.2 2009/09/11 10:27:05 root Exp root $
# Copyright (c) 2008-2009 Eric Hameleers, Eindhoven, NL
-# Copyright 2010-2019 Matteo Bernardini <ponce@slackbuilds.org, Pisa, Italy
+# Copyright 2010-2024 Matteo Bernardini <ponce@slackbuilds.org, Pisa, Italy
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -47,6 +47,8 @@
# * update.
# 0.3.2-1 11/mar/2019 by Matteo Bernardini <ponce@slackbuilds.org>
# * update.
+# 0.3.2-2 24/apr/2024 by Matteo Bernardini <ponce@slackbuilds.org>
+# * Switch to gtk+3.
#
# Run 'sh lxrandr.SlackBuild' to build a Slackware package.
# The package is created in /tmp .
@@ -58,7 +60,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxrandr
VERSION=${VERSION:-0.3.2}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -70,9 +72,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -96,6 +95,8 @@ else
LIBDIRSUFFIX=""
fi
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3=""
+
DOCS="AUTHORS COPYING README"
set -e
@@ -126,14 +127,16 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--program-prefix= \
--program-suffix= \
+ $WITHGTK3 \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
+echo 'X-AppStream-Ignore=true' >> $PKG/usr/share/applications/$PRGNAM.desktop
+
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/system/lxsession/README b/system/lxsession/README
index 1f715bf79f..a5d2e2888f 100644
--- a/system/lxsession/README
+++ b/system/lxsession/README
@@ -4,5 +4,8 @@ LXSession is the standard session manager used by LXDE (Lightweight X11
Desktop Environment). A session manager is used to automatically start
a set of applications and set up a working desktop environment.
-if you want to build this for gtk+3 pass to the script the switch
- GTK3=yes
+if you want to build this for gtk+2 pass to the script the switch
+
+ GTK3=no
+
+you will need libunique as a dependency, in this case
diff --git a/system/lxsession/lxsession.SlackBuild b/system/lxsession/lxsession.SlackBuild
index 183c52298a..f900a0f37c 100644
--- a/system/lxsession/lxsession.SlackBuild
+++ b/system/lxsession/lxsession.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# $Id: lxsession.SlackBuild,v 1.1 2009/09/11 10:33:13 root Exp root $
# Copyright (c) 2008-2009 Eric Hameleers, Eindhoven, NL
-# Copyright (c) 2010-2019 Matteo Bernardini, Pisa, IT
+# Copyright (c) 2010-2024 Matteo Bernardini, Pisa, IT
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -61,6 +61,8 @@
# * update.
# 0.5.5-2: 13/apr/2022 by B. Watson <urchlay@slackware.uk>
# * remove empty file from doc dir.
+# 0.5.5-3: 24/apr/2024 by Matteo Bernardini <ponce@slackbuilds.org>
+# * Switch to gtk+3.
#
# Run 'sh lxsession.SlackBuild' to build a Slackware package.
# The package (.tgz) plus descriptive .txt file are created in /tmp .
@@ -72,7 +74,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxsession
VERSION=${VERSION:-0.5.5}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -84,9 +86,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# 20220413 bkw: don't include NEWS, it's a 0-byte placeholder.
-DOCS="AUTHORS COPYING ChangeLog README"
-
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -110,8 +109,10 @@ else
LIBDIRSUFFIX=""
fi
-WITHGTK3=""
-[ "${GTK3:-no}" = "yes" ] && WITHGTK3="--enable-gtk3"
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3="--enable-gtk"
+
+# 20220413 bkw: don't include NEWS, it's a 0-byte placeholder.
+DOCS="AUTHORS COPYING ChangeLog README"
set -e
@@ -123,10 +124,13 @@ tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \+ -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \+
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+rm *.stamp
+autoreconf -fi
CXXFLAGS="$SLKCFLAGS" \
CFLAGS="$SLKCFLAGS" \
@@ -139,7 +143,6 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--program-prefix= \
--program-suffix= \
- --enable-gtk \
$WITHGTK3 \
--enable-buildin-clipboard \
--enable-buildin-polkit \
@@ -147,9 +150,12 @@ CFLAGS="$SLKCFLAGS" \
make
make install-strip DESTDIR=$PKG
+
+echo 'X-AppStream-Ignore=true' >> $PKG/usr/share/applications/lxsession-default-apps.desktop
+echo 'X-AppStream-Ignore=true' >> $PKG/usr/share/applications/lxsession-edit.desktop
+
gzip -9 $PKG/usr/man/man*/*
-# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/system/lxsession/lxsession.info b/system/lxsession/lxsession.info
index d652daab67..116fd62cde 100644
--- a/system/lxsession/lxsession.info
+++ b/system/lxsession/lxsession.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://downloads.sf.net/lxde/lxsession-0.5.5.tar.xz"
MD5SUM="e8380acef215ee7c99c067a2241c2c7b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libunique"
+REQUIRES="libunique3"
MAINTAINER="Matteo Bernardini"
EMAIL="ponce@slackbuilds.org"
diff --git a/system/lxtask/README b/system/lxtask/README
index 6bf97e6b7c..f7e24888d4 100644
--- a/system/lxtask/README
+++ b/system/lxtask/README
@@ -3,3 +3,7 @@ lxtask (simple task manager for LXDE)
LXTask is lightweight and desktop-independent task manager derived from
xfce4-taskmanager with all dependencies on xfce removed, new features,
and some improvement of the user interface.
+
+If you want to build this for gtk+2, pass to the script the switch
+
+ GTK3=no
diff --git a/system/lxtask/lxtask.SlackBuild b/system/lxtask/lxtask.SlackBuild
index 8137d5fa01..d5fc6b4349 100644
--- a/system/lxtask/lxtask.SlackBuild
+++ b/system/lxtask/lxtask.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# $Id: lxtask.SlackBuild,v 1.2 2009/09/11 10:39:38 root Exp root $
# Copyright (c) 2008-2009 Eric Hameleers, Eindhoven, NL
-# Copyright 2010-2019 Matteo Bernardini <ponce@slackbuilds.org, Pisa, Italy
+# Copyright 2010-2024 Matteo Bernardini <ponce@slackbuilds.org, Pisa, Italy
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -53,6 +53,8 @@
# * updated.
# 0.1.10-1: 10/apr/2021 by Matteo Bernardini <ponce@slackbuilds.org>
# * updated.
+# 0.1.10-2: 24/apr/2024 by Matteo Bernardini <ponce@slackbuilds.org>
+# * Switch to gtk+3.
#
# Run 'sh lxtask.SlackBuild' to build a Slackware package.
# The package is created in /tmp .
@@ -64,7 +66,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxtask
VERSION=${VERSION:-0.1.10}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -76,11 +78,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-DOCS="AUTHORS COPYING ChangeLog INSTALL NEWS README TODO"
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -104,6 +101,10 @@ else
LIBDIRSUFFIX=""
fi
+WITHGTK3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && WITHGTK3=""
+
+DOCS="AUTHORS COPYING ChangeLog INSTALL README TODO"
+
set -e
rm -rf $PKG
@@ -131,13 +132,15 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--program-prefix= \
--program-suffix= \
+ $WITHGTK3 \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
+echo 'X-AppStream-Ignore=true' >> "$PKG/usr/share/applications/$PRGNAM.desktop"
+
find $PKG/usr/man -type f -exec gzip -9 {} \;
-# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/system/lxterminal/README b/system/lxterminal/README
index bf0c77122c..e6780940da 100644
--- a/system/lxterminal/README
+++ b/system/lxterminal/README
@@ -2,5 +2,8 @@ LXTerminal is a quick configurable terminal emulator, based on vte libs.
It uses a single process for each window/tab so it's very light on
resources.
-Pass the script the variable GTK3=yes if you want to link this against
-gtk+3 instead of the default gtk+2.
+If you want to build this for gtk+2, pass to the script the switch
+
+ GTK3=no
+
+you will need the additional dependency vte2 in this case
diff --git a/system/lxterminal/lxterminal.SlackBuild b/system/lxterminal/lxterminal.SlackBuild
index 8fc4a29be0..6f4515229e 100644
--- a/system/lxterminal/lxterminal.SlackBuild
+++ b/system/lxterminal/lxterminal.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/bash
# $Id: lxterminal.SlackBuild,v 1.6 2009/09/11 10:43:05 root Exp root $
# Copyright (c) 2008-2009 Eric Hameleers, Eindhoven, NL
-# Copyright (c) 2010-2021 Matteo Bernardini, Pisa, IT
+# Copyright (c) 2010-2024 Matteo Bernardini, Pisa, IT
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -69,6 +69,8 @@
# * Update.
# 0.4.0: 10/apr/2021 by Matteo Bernardini <ponce@slackbuilds.org>
# * Update.
+# 0.4.0-2: 24/apr/2024 by Matteo Bernardini <ponce@slackbuilds.org>
+# * Switch to gtk+3.
#
# Run 'sh lxterminal.SlackBuild' to build a Slackware package.
# The package is created in /tmp .
@@ -80,7 +82,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxterminal
VERSION=${VERSION:-0.4.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -92,9 +94,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -118,7 +117,7 @@ else
LIBDIRSUFFIX=""
fi
-gtk3="" ; [ "${GTK3:-no}" = "yes" ] && gtk3="--enable-gtk3"
+gtk3="--enable-gtk3" ; [ "${GTK3:-yes}" = "no" ] && gtk3=""
DOCS="AUTHORS COPYING ChangeLog NEWS"
@@ -158,7 +157,6 @@ make install-strip DESTDIR=$PKG
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/system/lxterminal/lxterminal.info b/system/lxterminal/lxterminal.info
index 574b0e866d..d8fecdbf39 100644
--- a/system/lxterminal/lxterminal.info
+++ b/system/lxterminal/lxterminal.info
@@ -5,6 +5,6 @@ DOWNLOAD="http://downloads.sf.net/lxde/lxterminal-0.4.0.tar.xz"
MD5SUM="7938dbd50e3826c11f4735a742b278d3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="vte2"
+REQUIRES=""
MAINTAINER="Matteo Bernardini"
EMAIL="ponce@slackbuilds.org"
diff --git a/system/numactl/numactl.SlackBuild b/system/numactl/numactl.SlackBuild
index ccff6ffa79..a363427c28 100644
--- a/system/numactl/numactl.SlackBuild
+++ b/system/numactl/numactl.SlackBuild
@@ -7,7 +7,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=numactl
-VERSION=${VERSION:-2.0.13}
+VERSION=${VERSION:-2.0.17}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -83,7 +83,7 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -ar INSTALL.md README.md test $PKG/usr/doc/$PRGNAM-$VERSION
+cp -ar INSTALL.md README.md LICENSE.GPL2 LICENSE.LGPL2.1 test $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
rm -f $PKG/usr/lib*/*.la
diff --git a/system/numactl/numactl.info b/system/numactl/numactl.info
index 1cda19b3ff..c60ee5d757 100644
--- a/system/numactl/numactl.info
+++ b/system/numactl/numactl.info
@@ -1,8 +1,8 @@
PRGNAM="numactl"
-VERSION="2.0.13"
+VERSION="2.0.17"
HOMEPAGE="https://github.com/numactl/numactl"
-DOWNLOAD="https://github.com/numactl/numactl/releases/download/v2.0.13/numactl-2.0.13.tar.gz"
-MD5SUM="9a9a94bfebf6c9c67defeedc9795e568"
+DOWNLOAD="https://github.com/numactl/numactl/releases/download/v2.0.17/numactl-2.0.17.tar.gz"
+MD5SUM="13b5cc5c54e73bdd9387234cd7bc76ff"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/nvidia-driver/nvidia-driver.SlackBuild b/system/nvidia-driver/nvidia-driver.SlackBuild
index d2d4ba4ff6..62f2d75100 100644
--- a/system/nvidia-driver/nvidia-driver.SlackBuild
+++ b/system/nvidia-driver/nvidia-driver.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nvidia-driver
-VERSION=${VERSION:-550.67}
+VERSION=${VERSION:-550.76}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/nvidia-driver/nvidia-driver.info b/system/nvidia-driver/nvidia-driver.info
index 09404eb52f..1c4648cef1 100644
--- a/system/nvidia-driver/nvidia-driver.info
+++ b/system/nvidia-driver/nvidia-driver.info
@@ -1,20 +1,20 @@
PRGNAM="nvidia-driver"
-VERSION="550.67"
+VERSION="550.76"
HOMEPAGE="https://www.nvidia.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/550.67/NVIDIA-Linux-x86_64-550.67.run \
- https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-550.67.tar.bz2 \
- https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-550.67.tar.bz2 \
- https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-550.67.tar.bz2 \
- https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-550.67.tar.bz2 \
- https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-550.67.tar.bz2"
-MD5SUM_x86_64="4190c0255fa40acdae1fe00b607ae4f3 \
- c5cb3f5063b56fbb31e2442cd8c812ed \
- 36e33e89995eb937fddaf96762c30b97 \
- 3da30e7e56b8533a87f7e2f1ed1c94d4 \
- c424b165a61afe2391aa09d4c4c94d9c \
- eed570ccfceef899e6f4f58b63e25d5b"
+DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/550.76/NVIDIA-Linux-x86_64-550.76.run \
+ https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-550.76.tar.bz2 \
+ https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-550.76.tar.bz2 \
+ https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-550.76.tar.bz2 \
+ https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-550.76.tar.bz2 \
+ https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-550.76.tar.bz2"
+MD5SUM_x86_64="5f8b7b1f439e5ded0a092bcb22e856a6 \
+ e180babbc004a7c3619a0dc902904234 \
+ 93ed775d26a16bab7be611a8877081b5 \
+ f4c4c7209fc7f5cc2587f677a9115ac5 \
+ d13fc7da6aab55f1ac8445c9c6fe73e3 \
+ 8d058fe472b3fca86c3a77830b33e575"
REQUIRES="nvidia-kernel"
MAINTAINER="Lenard Spencer"
EMAIL="lenardrspencer@gmail.com"
diff --git a/system/nvidia-fabricmanager/README b/system/nvidia-fabricmanager/README
new file mode 100644
index 0000000000..99e1f1aceb
--- /dev/null
+++ b/system/nvidia-fabricmanager/README
@@ -0,0 +1,6 @@
+The nvidia-fabricmanager manages NVLink, which is the data transfer
+fabric that interconnects NVIDIA data-center GPUs.
+
+The driver (package nvidia-kernel on SBo) requires the
+nv-fabricmanager daemon from the "exact same version" of this package
+to initialize GPUs connected by NVLink.
diff --git a/system/nvidia-fabricmanager/README.SBo b/system/nvidia-fabricmanager/README.SBo
new file mode 100644
index 0000000000..9bace49bc7
--- /dev/null
+++ b/system/nvidia-fabricmanager/README.SBo
@@ -0,0 +1,7 @@
+The nvidia-kernel and nvidia-driver packages on SlackBuilds.org
+default to the version number and download links for consumer GPUs.
+
+Drivers for data-center GPUs are distributed by NVIDIA in
+separate packages from that for their consumer GPUs,
+usually compatible with these two packages despite bearing different
+version numbers.
diff --git a/system/nvidia-fabricmanager/doinst.sh.gz b/system/nvidia-fabricmanager/doinst.sh.gz
new file mode 100644
index 0000000000..d84c6bc589
--- /dev/null
+++ b/system/nvidia-fabricmanager/doinst.sh.gz
Binary files differ
diff --git a/system/nvidia-fabricmanager/nvidia-fabricmanager.SlackBuild b/system/nvidia-fabricmanager/nvidia-fabricmanager.SlackBuild
new file mode 100644
index 0000000000..6da635118e
--- /dev/null
+++ b/system/nvidia-fabricmanager/nvidia-fabricmanager.SlackBuild
@@ -0,0 +1,87 @@
+#!/bin/bash
+
+# Slackware build script for nvidia-fabricmanager
+
+# Copyright 2024 GUAN Xin <guanx.bac@gmail.com> from Beijing
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=nvidia-fabricmanager
+VERSION=${VERSION:-550.54.14}
+SRCVER=${SRCVER:-$(printf "%s_%s-1" `echo $VERSION | cut -d. -f1,1` $VERSION)}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$PKGVER-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "x86_64" ]; then
+ SRCARCH=amd64
+else
+ echo "$ARCH is not supported"
+ exit 1
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+
+cd $PKG
+ar p $CWD/$PRGNAM-${SRCVER}_$SRCARCH.deb data.tar.xz | tar -Jxv
+
+# This file should really be under /etc but let's keep it as is for the
+# least surpise of users migrated from other distributions to Slackware:
+mv $PKG/usr/share/nvidia/nvswitch/fabricmanager.cfg $PKG/usr/share/nvidia/nvswitch/fabricmanager.cfg.new
+
+# Replace systemd files with sysvinit script
+rm -fr $PKG/lib
+mkdir -p $PKG/etc/rc.d
+cat $CWD/rc.nvidia-fabricmanager > $PKG/etc/rc.d/rc.nvidia-fabricmanager
+chmod 755 $PKG/etc/rc.d/rc.nvidia-fabricmanager
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mv -t $PKG/usr/doc/$PRGNAM-$VERSION $PKG/usr/share/doc/$PRGNAM/*
+rm -fr $PKG/usr/share/doc
+cp -t $PKG/usr/doc/$PRGNAM-$VERSION $CWD/README*
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/system/nvidia-fabricmanager/nvidia-fabricmanager.info b/system/nvidia-fabricmanager/nvidia-fabricmanager.info
new file mode 100644
index 0000000000..d03783d698
--- /dev/null
+++ b/system/nvidia-fabricmanager/nvidia-fabricmanager.info
@@ -0,0 +1,10 @@
+PRGNAM="nvidia-fabricmanager"
+VERSION="550.54.14"
+HOMEPAGE="https://www.nvidia.com"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/nvidia-fabricmanager-550_550.54.14-1_amd64.deb"
+MD5SUM_x86_64="3516bc2432678f9335d8c7670d684f84"
+REQUIRES=""
+MAINTAINER="GUAN Xin"
+EMAIL="guanx.bac@gmail.com"
diff --git a/system/nvidia-fabricmanager/rc.nvidia-fabricmanager b/system/nvidia-fabricmanager/rc.nvidia-fabricmanager
new file mode 100644
index 0000000000..2f90f16725
--- /dev/null
+++ b/system/nvidia-fabricmanager/rc.nvidia-fabricmanager
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Slackware init script to start/stop/restart nvidia-fabricmanager.
+
+# Copyright 2024 GUAN Xin <guanx.bac@gmail.com> from Beijing
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+EXE="/usr/bin/nv-fabricmanager"
+CFG="/usr/share/nvidia/nvswitch/fabricmanager.cfg"
+CMD="$EXE -c $CFG"
+
+# Start nvidia-fabricmanager:
+fabricmanager_start() {
+ PID=`pgrep -f "$CMD"`
+ if [ $PID -gt 0 ] 2>/dev/null; then
+ echo "nvidia-fabricmanager is already running as PID $PID" >&2
+ exit 3
+ elif [ -x $EXE ]; then
+ echo "Starting nvidia-fabricmanager: $CMD"
+ $CMD
+ fi
+}
+
+# Stop nvidia-fabricmanager:
+fabricmanager_stop() {
+ PID=`pgrep -f "$CMD"`
+ if [ $PID -gt 0 ] 2>/dev/null; then
+ printf 'Stopping nvidia-fabricmanager (PID %d).' $PID
+ kill $PID
+ timeout 10 tail --pid=$PID -f /dev/null
+ if [ $? -eq 124 ]; then
+ echo " Timeout."
+ exit 124
+ fi
+ echo
+ fi
+}
+
+# Restart nvidia-fabricmanager:
+fabricmanager_restart() {
+ fabricmanager_stop
+ fabricmanager_start
+}
+
+case "$1" in
+'start')
+ fabricmanager_start
+ ;;
+'stop')
+ fabricmanager_stop
+ ;;
+'restart')
+ fabricmanager_restart
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+ exit 2
+esac
diff --git a/system/nvidia-fabricmanager/slack-desc b/system/nvidia-fabricmanager/slack-desc
new file mode 100644
index 0000000000..b642a49e61
--- /dev/null
+++ b/system/nvidia-fabricmanager/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+nvidia-fabricmanager: nvidia-fabricmanager (required to initialized NVLink connected GPUs)
+nvidia-fabricmanager:
+nvidia-fabricmanager: The nvidia-fabricmanager manages NVLink, which is the data transfer
+nvidia-fabricmanager: fabric that interconnects NVIDIA data-center GPUs.
+nvidia-fabricmanager:
+nvidia-fabricmanager: The driver (nvidia-kernel) requires the nvidia-fabricmanager daemon
+nvidia-fabricmanager: of the exact same version to initialize GPUs connected by NVLink.
+nvidia-fabricmanager:
+nvidia-fabricmanager: NVIDIA home page: https://www.nvidia.com/
+nvidia-fabricmanager: NVLink home page: https://www.nvidia.com/en-us/data-center/nvlink/
+nvidia-fabricmanager:
diff --git a/system/nvidia-kernel/nvidia-kernel.SlackBuild b/system/nvidia-kernel/nvidia-kernel.SlackBuild
index 815aa79dd1..056961d308 100644
--- a/system/nvidia-kernel/nvidia-kernel.SlackBuild
+++ b/system/nvidia-kernel/nvidia-kernel.SlackBuild
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nvidia-kernel
-VERSION=${VERSION:-550.67}
+VERSION=${VERSION:-550.76}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/nvidia-kernel/nvidia-kernel.info b/system/nvidia-kernel/nvidia-kernel.info
index 26efa390c4..dddbed4cb7 100644
--- a/system/nvidia-kernel/nvidia-kernel.info
+++ b/system/nvidia-kernel/nvidia-kernel.info
@@ -1,10 +1,10 @@
PRGNAM="nvidia-kernel"
-VERSION="550.67"
+VERSION="550.76"
HOMEPAGE="https://www.nvidia.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/550.67/NVIDIA-Linux-x86_64-550.67.run"
-MD5SUM_x86_64="4190c0255fa40acdae1fe00b607ae4f3"
+DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/550.76/NVIDIA-Linux-x86_64-550.76.run"
+MD5SUM_x86_64="5f8b7b1f439e5ded0a092bcb22e856a6"
REQUIRES=""
MAINTAINER="Lenard Spencer"
EMAIL="lenardrspencer@gmail.com"
diff --git a/system/nvidia-open-kernel/README b/system/nvidia-open-kernel/README
index 8812b2ea51..280c3d66f9 100644
--- a/system/nvidia-open-kernel/README
+++ b/system/nvidia-open-kernel/README
@@ -20,31 +20,47 @@ The xf86-video-nouveau-blacklist package from /extra is required.
NOTES (quoted from the Nvidia driver README)
-"The open flavor of kernel modules supports Turing, Ampere, and
-forward. The open kernel modules cannot support GPUs before Turing,
-because the open kernel modules depend on the GPU System Processor
-(GSP) first introduced in Turing.
+"The open flavor of kernel modules supports Turing and later GPUs. The
+open kernel modules cannot support GPUs before Turing, because the open
+kernel modules depend on the GPU System Processor (GSP) first
+introduced in Turing.
"Most features of the Linux GPU driver are supported with the open
flavor of kernel modules, including CUDA, Vulkan, OpenGL, OptiX, and
-X11. G-Sync with desktop GPUs is supported. Suspend, Hibernate,
-and Resume power management is supported, as is Run Time D3 (RTD3) on
-Ampere and later GPUs. However, in the current release, some display
-and graphics features (notably: SLI, G-Sync on notebooks, preserving
-video memory across power management events with
-NVreg_PreserveVideoMemoryAllocations set) and NVIDIA virtual GPU
-(vGPU), are not yet supported. These features will be added in
-upcoming driver releases.
+X11. We eventually intend for the open kernel modules to replace the
+proprietary kernel modules.
-"Use of the open kernel modules on GeForce and Workstation GPUs should
-be considered alpha-quality in this release due to the missing features
-listed above."
+"The following features will only work with the open kernel modules
+flavor of the driver:
-To use this module on these GPUs, pass GEFORCE=yes to the script.
+ o NVIDIA Confidential Computing
-PLEASE NOTE that ffmpeg hardware video encoding will NOT work with this
-module. If you need this functionality, you MUST use the nvidia-kernel
-script which builds from the proprietary release package.
+ o Magnum IO GPUDirect Storage (GDS)
+
+ o Heterogeneous Memory Management (HMM)
+
+ o CPU affinity for GPU fault handlers
+
+ o DMABUF support for CUDA allocations
+
+
+"The following features are not yet supported by the open kernel
+modules:
+
+ o G-Sync on notebooks
+
+ o Preserving video memory across power management events
+
+
+Use of the open kernel modules on GeForce and Workstation GPUs should
+be considered Beta quality in this release and no longer requires
+setting of the "NVreg_OpenRmEnableUnsupportedGpus" nvidia.ko kernel
+module parameter. The open kernel modules are suitable for broad
+usage, and NVIDIA requests feedback on any issues encountered that are
+specific to them."
After installation, you will need to reboot your computer for the
changes to take effect.
+
+I am happy to report that ffmpeg hardware video encoding via h264_nvenc
+and hevc_nvenc now WORKS with this module.
diff --git a/system/nvidia-open-kernel/geforce.conf b/system/nvidia-open-kernel/geforce.conf
deleted file mode 100644
index 9753fd91b4..0000000000
--- a/system/nvidia-open-kernel/geforce.conf
+++ /dev/null
@@ -1 +0,0 @@
-options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
diff --git a/system/nvidia-open-kernel/nvidia-open-kernel.SlackBuild b/system/nvidia-open-kernel/nvidia-open-kernel.SlackBuild
index 90290c7438..fd6f73d27c 100644
--- a/system/nvidia-open-kernel/nvidia-open-kernel.SlackBuild
+++ b/system/nvidia-open-kernel/nvidia-open-kernel.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nvidia-open-kernel
-VERSION=${VERSION:-550.67}
+VERSION=${VERSION:-550.76}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -101,13 +101,6 @@ mkdir -p $PKG/usr/doc/$PRGNAM-$PKGVER
cp -a README.md CHANGELOG.md SECURITY.md $PKG/usr/doc/$PRGNAM-$PKGVER
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$PKGVER/$PRGNAM.SlackBuild
-# Geforce and workstation GPUs are not yet fully supported,
-# so we need this if you are on those GPUs:
-if [ "${GEFORCE:-no}" = "yes" ]; then
- mkdir -p $PKG/etc/modprobe.d
- cat $CWD/geforce.conf > $PKG/etc/modprobe.d/geforce.conf
-fi
-
mkdir -p $PKG/install
sed "s%@VERSION@%$VERSION%" $CWD/slack-desc > $PKG/install/slack-desc
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh
diff --git a/system/nvidia-open-kernel/nvidia-open-kernel.info b/system/nvidia-open-kernel/nvidia-open-kernel.info
index 17dbf177dd..b8d696e994 100644
--- a/system/nvidia-open-kernel/nvidia-open-kernel.info
+++ b/system/nvidia-open-kernel/nvidia-open-kernel.info
@@ -1,10 +1,10 @@
PRGNAM="nvidia-open-kernel"
-VERSION="550.67"
+VERSION="550.76"
HOMEPAGE="https://github.com/NVIDIA/open-gpu-kernel-modules/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-550.67.tar.xz"
-MD5SUM_x86_64="044025c997205dc165e95084d40aa775"
+DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-550.76.tar.xz"
+MD5SUM_x86_64="e908e40e476d62d7bb85a22862302593"
REQUIRES=""
MAINTAINER="Lenard Spencer"
EMAIL="lenardrspencer@gmail.com"
diff --git a/system/openzfs/openzfs.SlackBuild b/system/openzfs/openzfs.SlackBuild
index 3b56954416..1d5e1206cd 100644
--- a/system/openzfs/openzfs.SlackBuild
+++ b/system/openzfs/openzfs.SlackBuild
@@ -33,7 +33,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=openzfs
SRCNAM=zfs
VERSION=${VERSION:-2.2.3}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -49,9 +49,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$PKGVER-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -110,8 +107,6 @@ CFLAGS="$SLKCFLAGS" \
--includedir=/usr/include \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
- --with-linux="/lib/modules/${KERNEL}/source" \
- --with-linux-obj="/lib/modules/${KERNEL}/source" \
--with-udevdir=/lib/udev \
--enable-static=no \
$DRACUTLIBDIR \
@@ -125,7 +120,7 @@ rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
# clean up leftovers
if [ "$ARCH" = "x86_64" ]; then
rm -fr $PKG/usr/lib
-elif [ -z "${DRACUTLIBDIR}" ]; then
+elif [ -z "${DRACUTLIBDIR}" ]; then
rm -fr $PKG/usr/lib/dracut
fi
rm -fr $PKG/usr/src
diff --git a/system/pacemaker/pacemaker.info b/system/pacemaker/pacemaker.info
index ca4cceefd4..36fa7e9b59 100644
--- a/system/pacemaker/pacemaker.info
+++ b/system/pacemaker/pacemaker.info
@@ -2,7 +2,7 @@ PRGNAM="pacemaker"
VERSION="2.0.5"
HOMEPAGE="https://wiki.clusterlabs.org/wiki/Pacemaker"
DOWNLOAD="https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-2.0.5/pacemaker-Pacemaker-2.0.5.tar.gz"
-MD5SUM="c36c8ed401e39ff3e727ba4bf5fcc2e7"
+MD5SUM="f58503c3939de68cd45b37e87745108a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="corosync"
diff --git a/system/pcmanfm/README b/system/pcmanfm/README
index a8e5b2a028..f7b14ceb9f 100644
--- a/system/pcmanfm/README
+++ b/system/pcmanfm/README
@@ -1,10 +1,10 @@
PCManFM is an extremely fast and lightweight GTK+ based file manager
which features tabbed browsing and a user-friendly interface.
-By default the gtk+2 version is built: if you prefer to build the
-gtk+3 one pass the script the parameter GTK=3, like
+By default the gtk+3 version is built: if you prefer to build the
+gtk+2 one pass the script the parameter GTK3=no, like
- GTK=3 ./pcmanfm.SlackBuild
+ GTK3=no ./pcmanfm.SlackBuild
If you have problems viewing icons on pcmanfm and you're using the
gtk+2 version, include this line to your $HOME/.gtkrc-2.0:
diff --git a/system/pcmanfm/pcmanfm.SlackBuild b/system/pcmanfm/pcmanfm.SlackBuild
index e919aa3934..852d5f2cae 100644
--- a/system/pcmanfm/pcmanfm.SlackBuild
+++ b/system/pcmanfm/pcmanfm.SlackBuild
@@ -4,7 +4,7 @@
# Copyright 2006-2009 Chess Griffin <chess@chessgriffin.com>
# Copyright 2010 Chris Abela <chris.abela@maltats.com>
-# Copyright 2011-2021 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2011-2024 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -32,7 +32,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pcmanfm
VERSION=${VERSION:-1.3.2}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -67,10 +67,7 @@ else
LIBDIRSUFFIX=""
fi
-case "$GTK" in
- 3) gtk="--with-gtk=3" ;;
- *) gtk="--with-gtk=2" ;;
-esac
+gtk="--with-gtk=3" ; [ "${GTK3:-yes}" = "no" ] && gtk="--with-gtk=2"
DOCS="AUTHORS COPYING NEWS README TODO"
diff --git a/system/polychromatic/polychromatic.SlackBuild b/system/polychromatic/polychromatic.SlackBuild
index b342a056f7..78acd11c09 100644
--- a/system/polychromatic/polychromatic.SlackBuild
+++ b/system/polychromatic/polychromatic.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=polychromatic
-VERSION=${VERSION:-0.8.3}
+VERSION=${VERSION:-0.8.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/polychromatic/polychromatic.info b/system/polychromatic/polychromatic.info
index 67cd3906da..5b2c64606a 100644
--- a/system/polychromatic/polychromatic.info
+++ b/system/polychromatic/polychromatic.info
@@ -1,8 +1,8 @@
PRGNAM="polychromatic"
-VERSION="0.8.3"
+VERSION="0.8.4"
HOMEPAGE="https://polychromatic.app/"
-DOWNLOAD="https://github.com/polychromatic/polychromatic/archive/v0.8.3/polychromatic-0.8.3.tar.gz"
-MD5SUM="30a83bb6ac020c3c30d82fd59cfab0c9"
+DOWNLOAD="https://github.com/polychromatic/polychromatic/archive/v0.8.4/polychromatic-0.8.4.tar.gz"
+MD5SUM="800d7bb4845728175d1d2b49b15a614c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="openrazer-daemon colorama python-colour python3-PyQtWebEngine"
diff --git a/system/prometheus/prometheus.SlackBuild b/system/prometheus/prometheus.SlackBuild
index 97cc74954f..0233527a52 100644
--- a/system/prometheus/prometheus.SlackBuild
+++ b/system/prometheus/prometheus.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=prometheus
-VERSION=${VERSION:-2.51.1}
+VERSION=${VERSION:-2.51.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/prometheus/prometheus.info b/system/prometheus/prometheus.info
index 594936a452..d088652ce9 100644
--- a/system/prometheus/prometheus.info
+++ b/system/prometheus/prometheus.info
@@ -1,10 +1,10 @@
PRGNAM="prometheus"
-VERSION="2.51.1"
+VERSION="2.51.2"
HOMEPAGE="https://prometheus.io"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/prometheus/prometheus/releases/download/v2.51.1/prometheus-2.51.1.linux-amd64.tar.gz"
-MD5SUM_x86_64="ba67aa6f4b383c3839bc82d477948828"
+DOWNLOAD_x86_64="https://github.com/prometheus/prometheus/releases/download/v2.51.2/prometheus-2.51.2.linux-amd64.tar.gz"
+MD5SUM_x86_64="552aef14cd5122827f37ae99ce62f906"
REQUIRES=""
MAINTAINER="Ebben Aries"
EMAIL="slackbuilds@dscp.org"
diff --git a/system/pv/pv.SlackBuild b/system/pv/pv.SlackBuild
index c2547522f0..081b174404 100644
--- a/system/pv/pv.SlackBuild
+++ b/system/pv/pv.SlackBuild
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=pv
-VERSION=${VERSION:-1.8.5}
+VERSION=${VERSION:-1.8.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/pv/pv.info b/system/pv/pv.info
index 38715744eb..4339a3de9a 100644
--- a/system/pv/pv.info
+++ b/system/pv/pv.info
@@ -1,8 +1,8 @@
PRGNAM="pv"
-VERSION="1.8.5"
+VERSION="1.8.9"
HOMEPAGE="https://www.ivarch.com/programs/pv.shtml"
-DOWNLOAD="https://codeberg.org/a-j-wood/pv/releases/download/v1.8.5/pv-1.8.5.tar.gz"
-MD5SUM="45136fe0da3bb866d4f1e70e8644a0b0"
+DOWNLOAD="https://codeberg.org/a-j-wood/pv/releases/download/v1.8.9/pv-1.8.9.tar.gz"
+MD5SUM="6a6ebd8ec5585c1753ffff45f5cc55a5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/qemu/README b/system/qemu/README
index 1c9b196e0c..987806c423 100644
--- a/system/qemu/README
+++ b/system/qemu/README
@@ -41,23 +41,16 @@ your processor) prior to launching qemu-system-ARCH with kvm enabled.
For older/unmaintained qemu frontends, this build also creates a symlink
to qemu-system-ARCH at /usr/bin/qemu-kvm.
-libslirp (user mode networking), libcacard, spice, usbredir,
-virglrenderer, libnfs, snappy, device-tree-compiler, glusterfs, and vde2
-are optional dependencies.
+libiscsi (to access iSCSI targets directly), libslirp (user mode
+networking), libcacard, spice, usbredir, virglrenderer, libnfs, snappy,
+glusterfs, and vde2, sphinx-rtd-theme and Sphinx (to build documentation)
+are optional dependencies that will be automatically detected during
+compilation, if present (all avialable on SBo).
-To enable user mode networking, install libslirp (availale on SBO), then
-compile qemu:
+To enable user mode networking, install libslirp, then compile qemu:
SLIRP=yes ./qemu.SlackBuild
-libiscsi (to access iSCSI targets directly) is optional dependency,
-and will be picked up, if present, during the compilation.
-
-sphinx-rtd-theme and Sphinx (both on SBo) are optional but required in
-order for any of the documentation to be built.
-
-If you wish to emulate ARM, you will want device-tree-compiler.
-
NOTES:
This version breaks some backward compatibility with earlier versions.
Consult the official changelogs for details.
diff --git a/system/qemu/qemu.SlackBuild b/system/qemu/qemu.SlackBuild
index 73604dc9e3..1f6ebfffbb 100644
--- a/system/qemu/qemu.SlackBuild
+++ b/system/qemu/qemu.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qemu
VERSION=${VERSION:-8.2.2}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -93,6 +93,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} + || true
+# Use newer meson from python3-meson-opt
+PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')
+export PYTHONPATH=/opt/python$PYVER/site-packages
+
# Remove double CFLAGS
sed -i "s|^\ \ CFLAGS=\"-O2\ | CFLAGS=\"|" configure
@@ -133,7 +137,6 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-virtfs \
--enable-sdl \
--enable-malloc=jemalloc \
- --enable-fdt=auto \
--enable-nettle \
--${uring}able-linux-io-uring \
--audio-drv-list=${AUDIODRIVERS} \
diff --git a/system/qemu/qemu.info b/system/qemu/qemu.info
index 7e9f20f028..48d9efdf8c 100644
--- a/system/qemu/qemu.info
+++ b/system/qemu/qemu.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://download.qemu.org/qemu-8.2.2.tar.xz"
MD5SUM="e43091262671c1728b09522932b75b1d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="device-tree-compiler python3-meson-opt"
MAINTAINER="Edward W. Koenig"
EMAIL="kingbeowulf@linuxgalaxy.org"
diff --git a/system/qtxdg-tools/qtxdg-tools.SlackBuild b/system/qtxdg-tools/qtxdg-tools.SlackBuild
index 65b1cf51bd..a462a73b58 100644
--- a/system/qtxdg-tools/qtxdg-tools.SlackBuild
+++ b/system/qtxdg-tools/qtxdg-tools.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for qtxdg-tools
-# Copyright 2022-2023 Isaac Yu <isaacyu@protonmail.com>
+# Copyright 2022-2024 Isaac Yu <isaacyu@protonmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qtxdg-tools
-VERSION=${VERSION:-3.11.0}
+VERSION=${VERSION:-3.12.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/qtxdg-tools/qtxdg-tools.info b/system/qtxdg-tools/qtxdg-tools.info
index 732d5ea019..f9620f8e0d 100644
--- a/system/qtxdg-tools/qtxdg-tools.info
+++ b/system/qtxdg-tools/qtxdg-tools.info
@@ -1,8 +1,8 @@
PRGNAM="qtxdg-tools"
-VERSION="3.11.0"
+VERSION="3.12.0"
HOMEPAGE="https://github.com/lxqt/qtxdg-tools"
-DOWNLOAD="https://github.com/lxqt/qtxdg-tools/releases/download/3.11.0/qtxdg-tools-3.11.0.tar.xz"
-MD5SUM="4898d657bd4a92f7b738df78866297ac"
+DOWNLOAD="https://github.com/lxqt/qtxdg-tools/releases/download/3.12.0/qtxdg-tools-3.12.0.tar.xz"
+MD5SUM="6fd76563ef496796e9517c65045eb38e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libqtxdg"
diff --git a/system/redis-py/redis-py.SlackBuild b/system/redis-py/redis-py.SlackBuild
index f7c4368973..092f9b088f 100644
--- a/system/redis-py/redis-py.SlackBuild
+++ b/system/redis-py/redis-py.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=redis-py
-VERSION=${VERSION:-5.0.3}
+VERSION=${VERSION:-5.0.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/redis-py/redis-py.info b/system/redis-py/redis-py.info
index eac44c73b8..3869928087 100644
--- a/system/redis-py/redis-py.info
+++ b/system/redis-py/redis-py.info
@@ -1,8 +1,8 @@
PRGNAM="redis-py"
-VERSION="5.0.3"
+VERSION="5.0.4"
HOMEPAGE="https://github.com/andymccurdy/redis-py"
-DOWNLOAD="https://github.com/andymccurdy/redis-py/archive/v5.0.3/redis-py-5.0.3.tar.gz"
-MD5SUM="63e2b3e83cf316b50ea4d1da2061b6f9"
+DOWNLOAD="https://github.com/andymccurdy/redis-py/archive/v5.0.4/redis-py-5.0.4.tar.gz"
+MD5SUM="bb43da83c49bc851f91b686da9a2afef"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="redis"
diff --git a/system/rewise/rewise.SlackBuild b/system/rewise/rewise.SlackBuild
index abf2e02d5d..fb787afde7 100644
--- a/system/rewise/rewise.SlackBuild
+++ b/system/rewise/rewise.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for rewise
-# Copyright 2023 Vijay Marcel
+# Copyright 2023-2024 Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rewise
-VERSION=${VERSION:-0.1.0}
+VERSION=${VERSION:-0.2.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/rewise/rewise.info b/system/rewise/rewise.info
index e67f99bec2..4bfa08438f 100644
--- a/system/rewise/rewise.info
+++ b/system/rewise/rewise.info
@@ -1,8 +1,8 @@
PRGNAM="rewise"
-VERSION="0.1.0"
-HOMEPAGE="https://notabug.org/CYBERDEViL/REWise"
-DOWNLOAD="https://notabug.org/CYBERDEViL/REWise/archive/v0.1.0.tar.gz"
-MD5SUM="4a016459207d1218142b40ac093bffad"
+VERSION="0.2.0"
+HOMEPAGE="https://codeberg.org/CYBERDEV/REWise"
+DOWNLOAD="https://codeberg.org/CYBERDEV/REWise/archive/v0.2.0.tar.gz"
+MD5SUM="e0392be6c8cdba0c76f8bc09ba8b6190"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/rewise/slack-desc b/system/rewise/slack-desc
index ed9a063c8a..46e143ae95 100644
--- a/system/rewise/slack-desc
+++ b/system/rewise/slack-desc
@@ -14,6 +14,6 @@ rewise: [.exe] files, so they can be used with free software implementation
rewise: of the game engine.Rewise tries to focus on old game installers
rewise: [1999-2003] in the form of PE executables.
rewise:
-rewise: Homepage:https://notabug.org/CYBERDEViL/REWise
+rewise: Homepage:https://codeberg.org/CYBERDEV/REWise
rewise:
rewise:
diff --git a/system/sarasa-gothic/sarasa-gothic.SlackBuild b/system/sarasa-gothic/sarasa-gothic.SlackBuild
index f917dd79d9..a7c406c229 100644
--- a/system/sarasa-gothic/sarasa-gothic.SlackBuild
+++ b/system/sarasa-gothic/sarasa-gothic.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sarasa-gothic
SRCNAM=Sarasa-TTC
-VERSION=${VERSION:-1.0.9}
+VERSION=${VERSION:-1.0.10}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/sarasa-gothic/sarasa-gothic.info b/system/sarasa-gothic/sarasa-gothic.info
index c6e7c40e19..10ddafd3ab 100644
--- a/system/sarasa-gothic/sarasa-gothic.info
+++ b/system/sarasa-gothic/sarasa-gothic.info
@@ -1,8 +1,8 @@
PRGNAM="sarasa-gothic"
-VERSION="1.0.9"
+VERSION="1.0.10"
HOMEPAGE="https://github.com/be5invis/Sarasa-Gothic"
-DOWNLOAD="https://github.com/be5invis/Sarasa-Gothic/releases/download/v1.0.9/Sarasa-TTC-1.0.9.zip"
-MD5SUM="e10dd4b30aa48991a60026a226bac85c"
+DOWNLOAD="https://github.com/be5invis/Sarasa-Gothic/releases/download/v1.0.10/Sarasa-TTC-1.0.10.zip"
+MD5SUM="58553ea23f4fbac785b22e5f2c9a8c49"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/slackrepo-hints/slackrepo-hints.SlackBuild b/system/slackrepo-hints/slackrepo-hints.SlackBuild
index 61abc75bfc..6c83a08e51 100644
--- a/system/slackrepo-hints/slackrepo-hints.SlackBuild
+++ b/system/slackrepo-hints/slackrepo-hints.SlackBuild
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=slackrepo-hints
-VERSION=${VERSION:-20240420}
+VERSION=${VERSION:-20240503}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/slackrepo-hints/slackrepo-hints.info b/system/slackrepo-hints/slackrepo-hints.info
index 51b4bee6d2..6dc5175d70 100644
--- a/system/slackrepo-hints/slackrepo-hints.info
+++ b/system/slackrepo-hints/slackrepo-hints.info
@@ -1,8 +1,8 @@
PRGNAM="slackrepo-hints"
-VERSION="20240420"
+VERSION="20240503"
HOMEPAGE="https://github.com/aclemons/slackrepo-hints"
-DOWNLOAD="https://github.com/aclemons/slackrepo-hints/archive/v20240420/slackrepo-hints-20240420.tar.gz"
-MD5SUM="63925bb6151fe3074fb08d99a03a3c47"
+DOWNLOAD="https://github.com/aclemons/slackrepo-hints/archive/v20240503/slackrepo-hints-20240503.tar.gz"
+MD5SUM="24441ebdae1c13bcef96a719e7fe05af"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/sysdig/sysdig.SlackBuild b/system/sysdig/sysdig.SlackBuild
index bb0d7af4b4..f777bb8e6a 100644
--- a/system/sysdig/sysdig.SlackBuild
+++ b/system/sysdig/sysdig.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sysdig
-VERSION=${VERSION:-0.28.0}
+VERSION=${VERSION:-0.36.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -73,7 +73,7 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
-FALCO_HASH=${FALCO_HASH:-2160111cd088aea9ae2235d3385ecb0b1ab6623c}
+FALCO_HASH=${FALCO_HASH:-b3734896de3fa23a78003a0d203d6a3aae896339}
mkdir -p build/falcosecurity-libs-repo/falcosecurity-libs-prefix/src
cp $CWD/libs-$FALCO_HASH.tar.gz \
diff --git a/system/sysdig/sysdig.info b/system/sysdig/sysdig.info
index 9e0f5eebe6..dc2642fd1a 100644
--- a/system/sysdig/sysdig.info
+++ b/system/sysdig/sysdig.info
@@ -1,12 +1,12 @@
PRGNAM="sysdig"
-VERSION="0.28.0"
+VERSION="0.36.1"
HOMEPAGE="https://www.sysdig.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/draios/sysdig/archive/0.28.0/sysdig-0.28.0.tar.gz \
- https://github.com/falcosecurity/libs/archive/2160111/libs-2160111cd088aea9ae2235d3385ecb0b1ab6623c.tar.gz"
-MD5SUM_x86_64="b0a25f902d6d520380f03a1f39177033 \
- 52ff63dc35604d0a37aa780a4472a114"
-REQUIRES="jsoncpp lua libb64 jq tbb grpc gtest"
+DOWNLOAD_x86_64="https://github.com/draios/sysdig/archive/0.36.1/sysdig-0.36.1.tar.gz \
+ https://github.com/falcosecurity/libs/archive/b3734896de3fa23a78003a0d203d6a3aae896339/libs-b3734896de3fa23a78003a0d203d6a3aae896339.tar.gz"
+MD5SUM_x86_64="8bb31353ae213dffcf61ef5342e9ea35 \
+ 42b0d6b7815379f50d52e7817261d6fd"
+REQUIRES="jsoncpp lua52 libb64 jq tbb grpc gtest uthash yaml-cpp nlohmann_json"
MAINTAINER="Larry Hajali"
EMAIL="larryhaja[at]gmail[dot]com"
diff --git a/system/testdisk/README b/system/testdisk/README
index 703732c26a..ac04e7f21d 100644
--- a/system/testdisk/README
+++ b/system/testdisk/README
@@ -6,12 +6,10 @@ accidentally deleting a Partition Table). Partition table recovery
using TestDisk is really easy.
PhotoRec is file data recovery software designed to recover lost files
-including video, documents and archives from Hard Disks and CDRom and
+including video, documents and archives from Hard Disks and CD-ROM and
lost pictures from digital camera memory.
-To enable the use of sudo, run the script with SUDO=true, ie:
+To enable the use of sudo, run the script with SUDO=true, i.e.:
SUDO=true ./testdisk.SlackBuild
libewf is an optional dependency.
-
-Website - https://www.cgsecurity.org/wiki/TestDisk
diff --git a/system/testdisk/slack-desc b/system/testdisk/slack-desc
index c460e28ee4..2311e8f137 100644
--- a/system/testdisk/slack-desc
+++ b/system/testdisk/slack-desc
@@ -15,5 +15,5 @@ testdisk: error (such as accidentally deleting a Partition Table).
testdisk:
testdisk: PhotoRec is file data recovery software designed to recover lost
testdisk: files including video, documents and archives from Hard Disks and
-testdisk: CDRom and lost pictures from digital camera memory.
+testdisk: CD-ROM and lost pictures from digital camera memory.
testdisk:
diff --git a/system/testdisk/testdisk.SlackBuild b/system/testdisk/testdisk.SlackBuild
index 4f84854e0b..b7a3a4f2f6 100644
--- a/system/testdisk/testdisk.SlackBuild
+++ b/system/testdisk/testdisk.SlackBuild
@@ -6,6 +6,8 @@
# Copyright 2011 Grigorios Bouzakis <grbzks@imap.cc>
# Copyright 2014-2024 Aaditya <aaditya_gnulinux@zoho.com>
# All rights reserved.
+# Copyright 2024 Bloyburt
+# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for any purpose
# with or without fee is hereby granted, provided that the above copyright
@@ -26,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=testdisk
VERSION=${VERSION:-7.2}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/testdisk/testdisk.info b/system/testdisk/testdisk.info
index ab762629ec..11de6544a5 100644
--- a/system/testdisk/testdisk.info
+++ b/system/testdisk/testdisk.info
@@ -6,5 +6,5 @@ MD5SUM="c6809b6fd06b5022467c8faa32d49a27"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Aaditya"
-EMAIL="aaditya_gnulinux@zoho.com"
+MAINTAINER="Bloyburt"
+EMAIL="alexpen@startmail.com"
diff --git a/system/ti99sim/ti99sim.SlackBuild b/system/ti99sim/ti99sim.SlackBuild
index a56499dfb3..40a572a5ea 100644
--- a/system/ti99sim/ti99sim.SlackBuild
+++ b/system/ti99sim/ti99sim.SlackBuild
@@ -70,7 +70,7 @@ sed -i "s,-g3 *-O3,$SLKCFLAGS," rules.mak
# Binaries already installed stripped. SYS_BIN must be <DATA_DIR>/bin
# to avoid it creating absolute symlinks (we'll create relative ones, below).
-make install DATA_DIR=$PKG/opt/$PRGNAM SYS_BIN=$PKG/opt/$PRGNAM/bin
+env -u ARCH make install DATA_DIR=$PKG/opt/$PRGNAM SYS_BIN=$PKG/opt/$PRGNAM/bin
# Modified setup script requires arguments (original one didn't).
sh scripts/setup $CWD $PKG/opt/$PRGNAM
diff --git a/system/ttf-babelstone-cjk/APL.txt b/system/ttf-babelstone-cjk/APL.txt
deleted file mode 100644
index c1aba41d3f..0000000000
--- a/system/ttf-babelstone-cjk/APL.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-ARPHIC PUBLIC LICENSE
-
-Copyright (C) 1999 Arphic Technology Co., Ltd.
-11Fl. No.168, Yung Chi Rd., Taipei, 110 Taiwan
-All rights reserved except as specified below.
-
-Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is forbidden.
-
-Preamble
-
- The licenses for most software are designed to take away your freedom to share and change it. By contrast, the ARPHIC PUBLIC LICENSE specifically permits and encourages you to use this software, provided that you give the recipients all the rights that we gave you and make sure they can get the modifications of this software.
-
-Legal Terms
-
-0. Definitions:
- Throughout this License, "Font" means the TrueType fonts "AR PL Mingti2L Big5", "AR PL KaitiM Big5" (BIG-5 character set) and "AR PL SungtiL GB", "AR PL KaitiM GB" (GB character set) which are originally distributed by Arphic, and the derivatives of those fonts created through any modification including modifying glyph, reordering glyph, converting format, changing font name, or adding/deleting some characters in/from glyph table.
-
- "PL" means "Public License".
-
- "Copyright Holder" means whoever is named in the copyright or copyrights for the Font.
-
- "You" means the licensee, or person copying, redistributing or modifying the Font.
-
- "Freely Available" means that you have the freedom to copy or modify the Font as well as redistribute copies of the Font under the same conditions you received, not price. If you wish, you can charge for this service.
-
-1. Copying & Distribution
- You may copy and distribute verbatim copies of this Font in any medium, without restriction, provided that you retain this license file (ARPHICPL.TXT) unaltered in all copies.
-
-2. Modification
- You may otherwise modify your copy of this Font in any way, including modifying glyph, reordering glyph, converting format, changing font name, or adding/deleting some characters in/from glyph table, and copy and distribute such modifications under the terms of Section 1 above, provided that the following conditions are met:
-
- a) You must insert a prominent notice in each modified file stating how and when you changed that file.
-
- b) You must make such modifications Freely Available as a whole to all third parties under the terms of this License, such as by offering access to copy the modifications from a designated place, or distributing the modifications on a medium customarily used for software interchange.
-
- c) If the modified fonts normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the Font under these conditions, and telling the user how to view a copy of this License.
-
- These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Font, and can be reasonably considered independent and separate works in themselves, then this License and its terms, do not apply to those sections when you distribute them as separate works. Therefore, mere aggregation of another work not based on the Font with the Font on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
-
-3. Condition Subsequent
- You may not copy, modify, sublicense, or distribute the Font except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Font will automatically retroactively void your rights under this License. However, parties who have received copies or rights from you under this License will keep their licenses valid so long as such parties remain in full compliance.
-
-4. Acceptance
- You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to copy, modify, sublicense or distribute the Font. These actions are prohibited by law if you do not accept this License. Therefore, by copying, modifying, sublicensing or distributing the Font, you indicate your acceptance of this License and all its terms and conditions.
-
-5. Automatic Receipt
- Each time you redistribute the Font, the recipient automatically receives a license from the original licensor to copy, distribute or modify the Font subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
-
-6. Contradiction
- If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Font at all. For example, if a patent license would not permit royalty-free redistribution of the Font by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Font.
-
- If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
-
-7. NO WARRANTY
- BECAUSE THE FONT IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE FONT, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS OR OTHER PARTIES PROVIDE THE FONT "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE FONT IS WITH YOU. SHOULD THE FONT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-8. DAMAGES WAIVER
- UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, IN NO EVENT WILL ANY COPYRIGHTT HOLDERS, OR OTHER PARTIES WHO MAY COPY, MODIFY OR REDISTRIBUTE THE FONT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR EXEMPLARY DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE FONT (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION), EVEN IF SUCH HOLDERS OR OTHER PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
diff --git a/system/ttf-babelstone-cjk/BabelStoneOFL.txt b/system/ttf-babelstone-cjk/BabelStoneOFL.txt
deleted file mode 100644
index ef758932ab..0000000000
--- a/system/ttf-babelstone-cjk/BabelStoneOFL.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-Copyright (c) 2013, Andrew West (www.babelstone.co.uk),
-with Reserved Font Name BabelStone.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/system/ttf-babelstone-cjk/README b/system/ttf-babelstone-cjk/README
index 849bc0af07..8bab1bdd99 100644
--- a/system/ttf-babelstone-cjk/README
+++ b/system/ttf-babelstone-cjk/README
@@ -3,3 +3,8 @@ contains the chinese fonts along with regional variants.
It covers Han,Jurchen,Khitan,Tangut,Sui,Naxi Dongba and Yi
scripts.It also covers Hanzi,Kanji and Hanja.
+In this release I have moved fonts for scripts that are
+no longer used today apart from academia.
+
+To install archaic fonts run the slackbuild as
+archaic=yes ./ttf-babelstone-cjk.SlackBuild
diff --git a/system/ttf-babelstone-cjk/copyright b/system/ttf-babelstone-cjk/copyright
deleted file mode 100644
index 0a7deeeffd..0000000000
--- a/system/ttf-babelstone-cjk/copyright
+++ /dev/null
@@ -1,13 +0,0 @@
-Tangut Yinchuan v. 15.102 copyright Prof. Jing Yongshi
-
-Tangut yinchuan Font is made available for free download
-and use with the permission of Prof. Jing Yongshi, who
-reserves the copyright to the font. This font may not be
-modified, sold or redistributed for profit without the express
-permission of the copyright holders. If you use this font in
-a publication you are requested to
-acknowledge Prof. Jing Yongshi's copyright of the font.
-
-The font is maintained by Andrew West, and any feature requests
-or bug reports should be directed to Andrew West by email
-Email: babelstone@gmail.com
diff --git a/system/ttf-babelstone-cjk/copyright2 b/system/ttf-babelstone-cjk/copyright2
deleted file mode 100644
index 91eea19f45..0000000000
--- a/system/ttf-babelstone-cjk/copyright2
+++ /dev/null
@@ -1,6 +0,0 @@
-BabelStone Fonts Copyright Andrew West
-
-These fonts are free to use for personal or commercial purposes,
-and you are also free to redistribute them by themself or as part
-of a free or commercial software package, just as long as you
-do not sell the fonts on its own.
diff --git a/system/ttf-babelstone-cjk/readme_fonts b/system/ttf-babelstone-cjk/readme_fonts
deleted file mode 100644
index 473b73a9ea..0000000000
--- a/system/ttf-babelstone-cjk/readme_fonts
+++ /dev/null
@@ -1,147 +0,0 @@
-ttf-babelstone-cjk contains the following fonts:
-
-Babelstonehan:
-
-It is a free Unicode CJK font with over 56,000 Han
-characters (hanzi, kanji, hanja), and 64,973 Unicode
-characters in total. It is a Song/Ming style font.
-with glyphs modelled on the official character forms
-used in the People's Republic of China, and is primarily
-intended for writing Modern Standard Chinese,
-Classical Chinese, and various Sinitic languages and dialects.
-The font also includes many rare or archaic characters that are
-not found in most CJK fonts, as well as many characters used for
-the scholarly transcription of Early Chinese texts written on
-bone, bronze, wood, bamboo, and silk.
-
-Babelstonehan PUA:
-
-it includes 4,444 unencoded CJK ideographs and ideographic
-components in the PUA, in the range U+E080 through U+F8DF.
-
-BabelStone Erijan 1 and 2:
-
-BabelStone Erjian 1 and 2 are two Unicode Han fonts
-using the draft second stage simplified forms of characters.
-Both fonts cover 8,157 high-frequency Hanzi, comprising
-8,105 Level 1, Level 2 and Level 3 characters listed in
-Tōngyòng Guīfàn Hànzì Zìdiǎn.and 52 other characters.
-"BabelStone Erjian 1" uses second stage simplified glyph
-forms for the characters listed in Table 1 only; whereas
-"BabelStone Erjian 2" uses second stage simplified glyph
-forms for the characters listed in Table 1 and Table 2
-(where the glyph for the same character differs between
-Table 1 and Table 2, the form given in Table 2 is used).
-
-Babelstone Jurchen Scan PUA fonts:
-
-urchen Berlin, Jurchen Tianyige, and Jurchen Toyo Bunko
-are three Jurchen fonts with glyphs scanned from the
-Jurchen section of three copies of the Ming dynasty Huáyí Yìyǔ.
- "Sino-Foreign Vocabulary" (i.e. the Sino-Jurchen Vocabulary).
-Jurchen Berlin is derived from the manuscript copy held at the
-Berlin State Library (Staatsbibliothek zu Berlin)
-(pressmark Libri sin. Hirth Ms. 1);
-Jurchen Tianyige is derived from the Ming dynasty
-woodblock printed edition held at the Tiānyīgé
-library in Níngbō (pressmark 善0376);
-Jurchen Toyo Bunko is the manuscript copy held at the
-Tōyō Bunko (東洋文庫) in Tokyo (presssmark XI-5-2).
-There is currently no scan font for the manuscript
-copy held at the National Library of China
-in Běijīng (pressmark 10507). The characters are mapped
-non-contiguously to the PUA at E000..E6FA
-(matching the code points in my private Jurchen font).
-
-Babelstone Khitan Large scropt PUA fonts:
-
-it is an experimental font containing 1,469 Khitan
-Large Script glyphs, mapped to the PUA at E000..E5BC.
-This font is being developed as I slowly go through
-all Khitan Large Script sources, and will continue to grow.
-The glyphs are not ordered in the font,
-but have been added sequentially as I encounter
-each new character form. In addition, very many of the
-glyphs are variant forms of the same character,
-often trivial variants.
-
-Babelstone Khitan small script fonts:
-
-It is a Unicode font supporting the 470 Khitan Small Script
-characters which were encoded in Unicode version 13.0 (March 2020).
-This font does not support cluster composition, but is intended
-for displaying individual glyphs in horizontal linear layout
-as used in Daniel Kane's The Kitan Language and Script (Brill, 2009).
-This font uses a Chinese (Song/Ming) style of glyphs which is
-not attested in surviving examples of Khitan
-small script text (mostly epitaphs engraved on stone tablets).
-
-It also contains font for for the thirty-six seal script style
-Khitan small script characters which are engraved on the covers
-for the eulogies for Emperor Daozong and Empress Xuanyi
-
-BabelStone Naxi Dongba PUA Fonts:
-
-It is a scan font covering 2,162 glyphs for the
-Naxi Dongba (Naxi Tomba) script. The glyphs are
-derived from Lǐ Líncàn's 李霖灿 Nàxīzú
-xiàngxíng biāo yīn wénzì zìdiǎn 纳西族象形标音文字字典
-[Naxi Pictographic Symbols Dictionary]
-(Kunming: Yunnan minzu chubanshe, 2001)
-[ISBN 7-5367-2126-9]. The 2,120 glyphs at E000..E849 are the main
-entries in the dictionary, and the 42 glyphs at
-F000..F029 are variant glyphs for some of the main entries.
-
-Babelstone Sui (Shuishu) PUA Fonts:
-
-These are a set of scan fonts covering Sui
-(Shuishu 水书) characters listed in various
-printed sources, with characters mapped to
-the Unicode Private Use Area (PUA).
-
-Babelstone Tangut Scan Fonts:
-
-These are a set of fonts covering Tangut glyphs from
-various sources, mapped to the PUA. The fonts were created
-from scanned images of the source glyphs, and the quality
-of the resultant font glyphs is generally quite poor. These fonts
-are not intended for use in typesetting Tangut text, but were
-created in order to facilitate mapping of Tangut characters
-between sources.
-
-BabelStone Tangut Wenhai Font:
-
-BabelStone Tangut Wenhai is a Unicode Tangut font covering
-3,061 of the 6,125 Tangut ideographs encoded in Unicode version 9.0
-(released in June 2016). The glyphs are derived from the
-3,064 head characters in the calligraphic facsimile reproduction of the
-Sea of Writing [Wénhǎi 文海] text in
-Wénhǎi Yánjiū 文海研究 [Study of the Sea of Writing] (Beijing, 1983) by
-Shi Bojin 史金波 et al. This font also includes 442 of the 755
-encoded Tangut components, but these are poorer quality compared with
-the Tangut ideographs, and may be replaced with glyphs derived from the
-Tangut ideographs in the future.
-NB This font does not cover many common Tangut characters,
-and so is not suitable for use in typesetting Tangut text in academic works.
-
-Tangut Yinchuan Font:
-
-Tangut Yinchuan v. 15.102 is a font for the Tangut script
-that supports the full set of Tangut characters defined in
-Unicode version 15.0 (Tangut, Tangut Supplement, Tangut Components code charts).
-It is based on a font named XXZT (西夏字体 in Chinese) that was
-designed by Prof. Jǐng Yǒngshí 景永时 of the
-Beifang Ethnic University (北方民族大学) in Yinchuan. The original
-font was used for typesetting the revised 2nd edition of the
-Tangut-Chinese dictionary Xià-Hàn Zìdiǎn 夏漢字典 (Beijing, 2008)
-by Prof. Li Fanwen
-
-BabelStone Sani Yi PUA Font:
-
-BabelStone Sani Yi is a PUA font covering characters in the Sani Yi script.
-The font was created from scanned images of the hand-written characters in
-Yí-Hàn Jiǎnmíng Cídiǎn 彝汉简明词典 [Concise Yi-Chinese Dictionary]
-(Kunming: Yunnan Minzu Chubanshe, 1984). The quality of the resultant font
-glyphs is generally quite poor. This font is not intended for use in typesetting
-Yi text, but was created in order to facilitate work on the encoding of the
-Sani Yi script in Unicode.
diff --git a/system/ttf-babelstone-cjk/ttf-babelstone-cjk.SlackBuild b/system/ttf-babelstone-cjk/ttf-babelstone-cjk.SlackBuild
index fe2458ce8f..27047ef064 100644
--- a/system/ttf-babelstone-cjk/ttf-babelstone-cjk.SlackBuild
+++ b/system/ttf-babelstone-cjk/ttf-babelstone-cjk.SlackBuild
@@ -25,14 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ttf-babelstone-cjk
-VERSION=${VERSION:-1.0}
+VERSION=${VERSION:-1.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
-SRCH=${SRCH:-BabelStoneHan}
-SRCS=${SRCS:-BabelStoneShuishu}
-SRCT=${SRCT:-TangutScanFonts}
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
@@ -50,6 +47,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -57,27 +56,16 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-mkdir -pv $TMP/han
-mkdir -pv $TMP/sui
-mkdir -pv $TMP/tangut
mkdir -pv $PKG/usr/share/fonts/TTF
+find $TMP/$PRGNAM-$VERSION/ttf/ -name '*.ttf' -type f -exec install -D -m0644 -v {} -t $PKG/usr/share/fonts/TTF \;
-unzip -d $TMP/han $CWD/$SRCH.zip
-unzip -d $TMP/sui $CWD/$SRCS.zip
-unzip -d $TMP/tangut $CWD/$SRCT.zip
-
-install -D -m0644 -v $CWD/*.ttf -t $PKG/usr/share/fonts/TTF
-install -D -m0644 -v $TMP/han/*.ttf -t $PKG/usr/share/fonts/TTF
-install -D -m0644 -v $TMP/sui/*.ttf -t $PKG/usr/share/fonts/TTF
-install -D -m0644 -v $TMP/tangut/*.ttf -t $PKG/usr/share/fonts/TTF
+if [ "$archaic" = "yes" ]; then
+ find $TMP/$PRGNAM-$VERSION/archaic/ -name '*.ttf' -type f -exec install -D -m0644 -v {} -t $PKG/usr/share/fonts/TTF \;
+fi
mkdir -pv $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/APL.txt > $PKG/usr/doc/$PRGNAM-$VERSION/APL.txt
-cat $CWD/BabelStoneOFL.txt > $PKG/usr/doc/$PRGNAM-$VERSION/babelstoneOFL.txt
+cp -av APL.txt COPYRIGHT IDS.TXT LICENSE OFL.txt readme_fonts $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cat $CWD/copyright > $PKG/usr/doc/$PRGNAM-$VERSION/copyright
-cat $CWD/copyright2 > $PKG/usr/doc/$PRGNAM-$VERSION/copyright2
-cat $CWD/readme_fonts > $PKG/usr/doc/$PRGNAM-$VERSION/readme_fonts
find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 0644 {} \+
mkdir -p $PKG/install
diff --git a/system/ttf-babelstone-cjk/ttf-babelstone-cjk.info b/system/ttf-babelstone-cjk/ttf-babelstone-cjk.info
index 7b96a36442..59472f863c 100644
--- a/system/ttf-babelstone-cjk/ttf-babelstone-cjk.info
+++ b/system/ttf-babelstone-cjk/ttf-babelstone-cjk.info
@@ -1,54 +1,8 @@
PRGNAM="ttf-babelstone-cjk"
-VERSION="1.0"
-HOMEPAGE="https://www/babelstone.co.uk"
-DOWNLOAD="https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneHanPUA.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneErjian1.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneErjian2.ttf \
- https://www.babelstone.co.uk/Fonts/Download/JurchenBerlin.ttf \
- https://www.babelstone.co.uk/Fonts/Download/JurchenTianyige.ttf \
- https://www.babelstone.co.uk/Fonts/Download/JurchenToyoBunko.ttf \
- https://www.babelstone.co.uk/Fonts/Download/JurchenSmall.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneKhitanLargeGlyphs.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneKhitanSeals.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneKhitanSealGlyphs.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneKhitanSmallLinear.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneKhitanSmallSeal.ttf \
- https://www.babelstone.co.uk/Fonts/Download/KhitanSmallLinear.ttf \
- https://www.babelstone.co.uk/Fonts/Download/KhitanSmallRotated.ttf \
- https://www.babelstone.co.uk/Fonts/Download/KhitanSmallVertical.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneNaxiLLC.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneShuishu.zip \
- https://www.babelstone.co.uk/Fonts/Download/TangutScanFonts.zip \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneTangutWenhai.ttf \
- https://www.babelstone.co.uk/Fonts/Download/TangutYinchuan.ttf \
- https://www.babelstone.co.uk/Fonts/Download/TangutYinchuanInverse.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneTangutRadicals.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneSaniYi.ttf"
-MD5SUM="d7568d28ba67c7a6fc9fc896c4ae9bc2 \
- 6220c97e5da381b53462eef28fa81873 \
- 3dac88173ade093d945ccdae7d1f2fce \
- fa33f8875b032c1d6bb70a203e418dd4 \
- 4baf9e3a67a8ad3c002e348f9d5b6bf7 \
- 6fde3b3dd390c66e79719eba0388a7d4 \
- 1214b2722a2ebf128d8138edc3b0209d \
- a540c2fa397ae2b41191792c6023db80 \
- 5a528a3a699ab870a1ac52ffff5e5978 \
- 0d07928f544c3d873389412d1d04a94b \
- e5764f3d5e0d5540e40190d8ccf4a2cd \
- a1f9cda6991c3b0dc25afe9c98015f63 \
- 7867caf246b3f1f2f1824cd6024a44fa \
- 7ff6a2c4f32ef03343436bf4050feda5 \
- 7a3e2bd8aefdd0bb594f0f0e4b751bb7 \
- 3f80fb811bb14334f5c79f432a065445 \
- b4d2f92f9b7e3ec375b9b2b1260d267c \
- 2e46a52a13f1c37b6d4f0956e8547618 \
- 75dd9971a19f12a1a3f5cef4d0990657 \
- 3d7fb66f97e5fe530504ef8736debb47 \
- e86eae33ab5c7a4cfa3d459cc2ee1b0b \
- 70eaa3c7c9f2cdd31b6ac38b0b514298 \
- b55128a55c2200c995f1cfe60e390867 \
- b3c6baa077e7c3f4b5a75bd55c4ee650"
+VERSION="1.1"
+HOMEPAGE="https://www.babelstone.co.uk"
+DOWNLOAD="https://github.com/lecramyajiv/ttf-babelstone-cjk/archive/1.1/ttf-babelstone-cjk-1.1.tar.gz"
+MD5SUM="866582125ee408025fec30955da86a34"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/ttf-babelstone-tibetan/BabelStoneOFL.txt b/system/ttf-babelstone-tibetan/BabelStoneOFL.txt
deleted file mode 100644
index ef758932ab..0000000000
--- a/system/ttf-babelstone-tibetan/BabelStoneOFL.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-Copyright (c) 2013, Andrew West (www.babelstone.co.uk),
-with Reserved Font Name BabelStone.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/system/ttf-babelstone-tibetan/copyright b/system/ttf-babelstone-tibetan/copyright
deleted file mode 100644
index 91eea19f45..0000000000
--- a/system/ttf-babelstone-tibetan/copyright
+++ /dev/null
@@ -1,6 +0,0 @@
-BabelStone Fonts Copyright Andrew West
-
-These fonts are free to use for personal or commercial purposes,
-and you are also free to redistribute them by themself or as part
-of a free or commercial software package, just as long as you
-do not sell the fonts on its own.
diff --git a/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.SlackBuild b/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.SlackBuild
index 218bdc6018..0e3357368a 100644
--- a/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.SlackBuild
+++ b/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for ttf-babelstone-tibetan
-# Copyright 2023 Vijay Marcel
+# Copyright 2023-2024 Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,12 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ttf-babelstone-tibetan
-VERSION=${VERSION:-1.0}
+VERSION=${VERSION:-10.011}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
-SRCP=${SRCP:-BabelStonePhagspa_v2}
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
@@ -48,6 +47,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -55,17 +56,11 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-mkdir -pv $TMP/phagspa
mkdir -pv $PKG/usr/share/fonts/TTF
-
-unzip -d $TMP/phagspa $CWD/$SRCP.zip
-
-install -D -m0644 -v $CWD/*.ttf -t $PKG/usr/share/fonts/TTF
-install -D -m0644 -v $TMP/phagspa/*.ttf -t $PKG/usr/share/fonts/TTF
+find $TMP/$PRGNAM-$VERSION/ -name '*.ttf' -type f -exec install -D -m0644 -v {} -t $PKG/usr/share/fonts/TTF \;
mkdir -pv $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/BabelStoneOFL.txt > $PKG/usr/doc/$PRGNAM-$VERSION/babelstoneOFL.txt
-cat $CWD/copyright > $PKG/usr/doc/$PRGNAM-$VERSION/copyright
+cp -av BabelStoneOFL.txt copyright $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 0644 {} \+
diff --git a/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.info b/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.info
index b0805bcd74..c6d6f3e96e 100644
--- a/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.info
+++ b/system/ttf-babelstone-tibetan/ttf-babelstone-tibetan.info
@@ -1,18 +1,8 @@
PRGNAM="ttf-babelstone-tibetan"
-VERSION="1.0"
+VERSION="10.011"
HOMEPAGE="https://www.babelstone.co.uk"
-DOWNLOAD="https://www.babelstone.co.uk/Fonts/Download/BabelStoneMarchen.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneZanabazar.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneTibetan.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStoneTibetanSlim.ttf \
- https://www.babelstone.co.uk/Fonts/Download/BabelStonePhagspa_v2.zip \
- https://www.babelstone.co.uk/Fonts/Download/BabelStonePhagspaSeal_v1.ttf"
-MD5SUM="9b31c772f05bb6e9c3ed3b908b7265f5 \
- 79bea5f34d05300fecbc871138998244 \
- a2e1823db85fc0f85c423307ce79b428 \
- 787bfecc53ef373f3aff41a5179da7f8 \
- 5fe660073811281e1c13165fe879edd6 \
- ed5b297d4e793ab60f432ef63b03929d"
+DOWNLOAD="https://github.com/lecramyajiv/ttf-babelstone-tibetan/archive/10.011/ttf-babelstone-tibetan-10.011.tar.gz"
+MD5SUM="05790e208c40a16a097c954f0ebf402e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/ttf-lato/slack-desc b/system/ttf-lato/slack-desc
index baa815e17d..5728df1caf 100644
--- a/system/ttf-lato/slack-desc
+++ b/system/ttf-lato/slack-desc
@@ -12,7 +12,7 @@ ttf-lato: Lato is a sanserif type face family designed in the Summer 2010 by
ttf-lato: Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in
ttf-lato: Polish).
ttf-lato:
-ttf-lato: Home page: http://www.latofonts.com/lato-free-fonts/
+ttf-lato: Home page: https://www.latofonts.com/lato-free-fonts/
ttf-lato:
ttf-lato:
ttf-lato:
diff --git a/system/ttf-lato/ttf-lato.SlackBuild b/system/ttf-lato/ttf-lato.SlackBuild
index ab401eeae9..5df11b0a26 100644
--- a/system/ttf-lato/ttf-lato.SlackBuild
+++ b/system/ttf-lato/ttf-lato.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ttf-lato
-VERSION=${VERSION:-1.0}
+VERSION=${VERSION:-2.015}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -70,6 +70,7 @@ cp -a $SRCNAM/Lato*.ttf $PKG/usr/share/fonts/TTF/
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $SRCNAM/OFL.txt $PKG/usr/doc/$PRGNAM-$VERSION/LICENSE
+chmod 0644 $PKG/usr/doc/$PRGNAM-$VERSION/LICENSE
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/system/ttf-lato/ttf-lato.info b/system/ttf-lato/ttf-lato.info
index fb2b7445f4..9581e7d59c 100644
--- a/system/ttf-lato/ttf-lato.info
+++ b/system/ttf-lato/ttf-lato.info
@@ -1,7 +1,7 @@
PRGNAM="ttf-lato"
-VERSION="1.0"
-HOMEPAGE="http://www.latofonts.com/lato-free-fonts/"
-DOWNLOAD="http://www.latofonts.com/download/Lato2OFL.zip"
+VERSION="2.015"
+HOMEPAGE="https://www.latofonts.com/lato-free-fonts/"
+DOWNLOAD="https://www.latofonts.com/download/Lato2OFL.zip"
MD5SUM="29e379a6ecc1b86c96931fa6ce4b3b0c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/system/ttf-xo-fonts/ttf-xo-fonts.SlackBuild b/system/ttf-xo-fonts/ttf-xo-fonts.SlackBuild
index e0a61bc9fb..2754a22c23 100644
--- a/system/ttf-xo-fonts/ttf-xo-fonts.SlackBuild
+++ b/system/ttf-xo-fonts/ttf-xo-fonts.SlackBuild
@@ -46,7 +46,7 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
mkdir -p $PKG/usr/share/fonts/TTF
-unzip -j $CWD/all_fonts_myoffice.zip *.ttf -x "*__*" -d $PKG/usr/share/fonts/TTF
+unzip -j $CWD/MyOffice_XO_Fonts_1.1.zip *.ttf -x "*__*" -d $PKG/usr/share/fonts/TTF
cd $PKG/usr/share/fonts/TTF
diff --git a/system/ttf-xo-fonts/ttf-xo-fonts.info b/system/ttf-xo-fonts/ttf-xo-fonts.info
index 7182f99ce6..398a60f86d 100644
--- a/system/ttf-xo-fonts/ttf-xo-fonts.info
+++ b/system/ttf-xo-fonts/ttf-xo-fonts.info
@@ -1,7 +1,7 @@
PRGNAM="ttf-xo-fonts"
VERSION="2022"
HOMEPAGE="https://myoffice.ru/products/fonts/"
-DOWNLOAD="https://myoffice.ru/files/fonts/all_fonts_myoffice.zip"
+DOWNLOAD="https://myoffice.ru/files/fonts/MyOffice_XO_Fonts_1.1.zip"
MD5SUM="076c0cd2520074b3397bf4dbb2d02f3a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/system/usermin/usermin.SlackBuild b/system/usermin/usermin.SlackBuild
index 3bd8f88367..77263f8051 100644
--- a/system/usermin/usermin.SlackBuild
+++ b/system/usermin/usermin.SlackBuild
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=usermin
-VERSION=${VERSION:-2.005}
+VERSION=${VERSION:-2.010}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/usermin/usermin.info b/system/usermin/usermin.info
index 3757f0c8b6..1430cd7c8f 100644
--- a/system/usermin/usermin.info
+++ b/system/usermin/usermin.info
@@ -1,8 +1,8 @@
PRGNAM="usermin"
-VERSION="2.005"
+VERSION="2.010"
HOMEPAGE="http://webmin.com/usermin.html"
-DOWNLOAD="http://jaist.dl.sourceforge.net/project/webadmin/usermin/2.005/usermin-2.005.tar.gz"
-MD5SUM="cee4af2a4186dfc1e8b1a2ce7756a9de"
+DOWNLOAD="http://jaist.dl.sourceforge.net/project/webadmin/usermin/2.010/usermin-2.010.tar.gz"
+MD5SUM="912789fe1baa26a86b5447ddae1aa243"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="webmin"
diff --git a/system/virtualbox-addons/virtualbox-addons.SlackBuild b/system/virtualbox-addons/virtualbox-addons.SlackBuild
index 2f24d766d5..298cb1ef80 100644
--- a/system/virtualbox-addons/virtualbox-addons.SlackBuild
+++ b/system/virtualbox-addons/virtualbox-addons.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for virtualbox-addons
-# Copyright 2008-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=virtualbox-addons
SRCNAM=VirtualBox
-VERSION=${VERSION:-6.1.44}
+VERSION=${VERSION:-6.1.50}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/virtualbox-addons/virtualbox-addons.info b/system/virtualbox-addons/virtualbox-addons.info
index 1cfc3d8b53..fd54bba65c 100644
--- a/system/virtualbox-addons/virtualbox-addons.info
+++ b/system/virtualbox-addons/virtualbox-addons.info
@@ -1,8 +1,8 @@
PRGNAM="virtualbox-addons"
-VERSION="6.1.44"
+VERSION="6.1.50"
HOMEPAGE="https://www.virtualbox.org"
-DOWNLOAD="http://download.virtualbox.org/virtualbox/6.1.44/VirtualBox-6.1.44.tar.bz2"
-MD5SUM="309f868297447291db980a1d8fa11ec6"
+DOWNLOAD="http://download.virtualbox.org/virtualbox/6.1.50/VirtualBox-6.1.50.tar.bz2"
+MD5SUM="57073540cb522ded3ad142c7f1fb01ac"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/virtualbox-extension-pack/virtualbox-extension-pack.SlackBuild b/system/virtualbox-extension-pack/virtualbox-extension-pack.SlackBuild
index c4d107b2cf..8d53c6fb86 100644
--- a/system/virtualbox-extension-pack/virtualbox-extension-pack.SlackBuild
+++ b/system/virtualbox-extension-pack/virtualbox-extension-pack.SlackBuild
@@ -4,7 +4,7 @@
# Originally written by Vliegendehuiskat, vliegendehuiskat [at] gmail [dot] com
-# Copyright 2014-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2014-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=virtualbox-extension-pack
-VERSION=${VERSION:-6.1.44}
+VERSION=${VERSION:-6.1.50}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/virtualbox-extension-pack/virtualbox-extension-pack.info b/system/virtualbox-extension-pack/virtualbox-extension-pack.info
index 2f4dc9dda0..2c6f7fe351 100644
--- a/system/virtualbox-extension-pack/virtualbox-extension-pack.info
+++ b/system/virtualbox-extension-pack/virtualbox-extension-pack.info
@@ -1,8 +1,8 @@
PRGNAM="virtualbox-extension-pack"
-VERSION="6.1.44"
+VERSION="6.1.50"
HOMEPAGE="https://www.virtualbox.org"
-DOWNLOAD="http://download.virtualbox.org/virtualbox/6.1.44/Oracle_VM_VirtualBox_Extension_Pack-6.1.44.vbox-extpack"
-MD5SUM="bbd4fb48b1e3494247163fd61de35bc4"
+DOWNLOAD="http://download.virtualbox.org/virtualbox/6.1.50/Oracle_VM_VirtualBox_Extension_Pack-6.1.50.vbox-extpack"
+MD5SUM="3cebe84c4b954f804f5a73b943186a41"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/virtualbox-kernel/virtualbox-kernel.SlackBuild b/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
index 3db6cb3351..bc2d979b04 100644
--- a/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
+++ b/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for virtualbox-kernel
-# Copyright 2008-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=virtualbox-kernel
-VERSION=${VERSION:-6.1.44}
+VERSION=${VERSION:-6.1.50}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/virtualbox-kernel/virtualbox-kernel.info b/system/virtualbox-kernel/virtualbox-kernel.info
index e27edacdce..07890a2108 100644
--- a/system/virtualbox-kernel/virtualbox-kernel.info
+++ b/system/virtualbox-kernel/virtualbox-kernel.info
@@ -1,10 +1,10 @@
PRGNAM="virtualbox-kernel"
-VERSION="6.1.44"
+VERSION="6.1.50"
HOMEPAGE="https://www.virtualbox.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://sources.liwjatan.org/virtualbox-kernel/virtualbox-kernel-6.1.44.tar.xz"
-MD5SUM_x86_64="61f3a59cea124459bd6d760a9ed5ac19"
+DOWNLOAD_x86_64="https://sources.liwjatan.org/virtualbox-kernel/virtualbox-kernel-6.1.50.tar.xz"
+MD5SUM_x86_64="e8c1ea71da0c8f6ae8c83b553a3e37e3"
REQUIRES=""
MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@slackbuilds.org"
diff --git a/system/virtualbox/vboxdrv.sh-setup.diff b/system/virtualbox/vboxdrv.sh-setup.diff
index 97e0d0af23..80a04aa65e 100644
--- a/system/virtualbox/vboxdrv.sh-setup.diff
+++ b/system/virtualbox/vboxdrv.sh-setup.diff
@@ -1,5 +1,5 @@
---- vboxdrv.sh.orig 2023-01-11 18:59:15.000000000 +0100
-+++ vboxdrv.sh 2023-03-11 16:35:46.673798632 +0100
+--- vboxdrv.sh.orig 2024-02-28 15:40:56.680861821 +0100
++++ vboxdrv.sh 2024-02-28 15:47:52.417842405 +0100
@@ -45,39 +45,13 @@
MODPROBE="$MODPROBE --allow-unsupported-modules"
fi
@@ -40,7 +40,7 @@
if test -u "${VIRTUALBOX}"; then
GROUP=root
DEVICE_MODE=0600
-@@ -173,299 +147,12 @@
+@@ -173,333 +147,12 @@
lsmod | grep -q "$1[^_-]"
}
@@ -215,7 +215,7 @@
- --state "$opt_name" 2>/dev/null
- elif test -f /lib/modules/"$KERN_VER"/build/.config; then
- # Extract config option manually.
-- grep "$opt_name" /lib/modules/"$KERN_VER"/build/.config | sed -e "s/^$opt_name=//" -e "s/\"//g"
+- grep "$opt_name=" /lib/modules/"$KERN_VER"/build/.config | sed -e "s/^$opt_name=//" -e "s/\"//g"
- fi
-}
-
@@ -242,6 +242,40 @@
- echo "1"
-}
-
+-# Check if kernel configuration requires modules signature.
+-kernel_requires_module_signature()
+-{
+- vbox_sys_lockdown_path="/sys/kernel/security/lockdown"
+-
+- requires=""
+- # We consider that if kernel is running in the following configurations,
+- # it will require modules to be signed.
+- if [ "$(kernel_get_config_opt "CONFIG_MODULE_SIG")" = "y" ]; then
+-
+- # Modules signature verification is hardcoded in kernel config.
+- [ "$(kernel_get_config_opt "CONFIG_MODULE_SIG_FORCE")" = "y" ] && requires="1"
+-
+- # Unsigned modules loading is restricted by "lockdown" feature in runtime.
+- if [ "$(kernel_get_config_opt "CONFIG_LOCK_DOWN_KERNEL")" = "y" \
+- -o "$(kernel_get_config_opt "CONFIG_SECURITY_LOCKDOWN_LSM")" = "y" \
+- -o "$(kernel_get_config_opt "CONFIG_SECURITY_LOCKDOWN_LSM_EARLY")" = "y" ]; then
+-
+- # Once lockdown level is set to something different than "none" (e.g., "integrity"
+- # or "confidentiality"), kernel will reject unsigned modules loading.
+- if [ -r "$vbox_sys_lockdown_path" ]; then
+- [ -n "$(cat "$vbox_sys_lockdown_path" | grep "\[integrity\]")" ] && requires="1"
+- [ -n "$(cat "$vbox_sys_lockdown_path" | grep "\[confidentiality\]")" ] && requires="1"
+- fi
+-
+- # This configuration is used by a number of modern Linux distributions and restricts
+- # unsigned modules loading when Secure Boot mode is enabled.
+- [ "$(kernel_get_config_opt "CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT")" = "y" -a -n "$HAVE_SEC_BOOT" ] && requires="1"
+- fi
+- fi
+-
+- [ -n "$requires" ] && echo "1"
+-}
+-
-# Returns "1" if module is signed and signature can be verified
-# with public key provided in DEB_PUB_KEY. Or empty string otherwise.
-module_signed()
@@ -318,8 +352,8 @@
- mod_dir="$(dirname "$mod_path" | sed 's;^.*/;;')"
- [ "$mod_dir" = "misc" ] || return
-
-- # In case if system is running in Secure Boot mode, check if module is signed.
-- if test -n "$HAVE_SEC_BOOT"; then
+- # In case if kernel configuration requires module signature, check if module is signed.
+- if test "$(kernel_requires_module_signature)" = "1"; then
- [ "$(module_signed "$mod")" = "1" ] || return
- fi
-
@@ -340,18 +374,17 @@
start()
{
begin_msg "Starting VirtualBox services" console
-@@ -483,10 +170,6 @@
- fi
+@@ -518,9 +171,6 @@
if ! running vboxdrv; then
--
+
- # Check if system already has matching modules installed.
- [ "$(setup_complete)" = "1" ] || setup
-
if ! rm -f $DEVICE; then
failure "Cannot remove $DEVICE"
fi
-@@ -538,8 +221,6 @@
+@@ -572,8 +222,6 @@
mkdir -p -m 0750 /dev/vboxusb 2>/dev/null
chown root:vboxusers /dev/vboxusb 2>/dev/null
fi
@@ -360,7 +393,7 @@
succ_msg "VirtualBox services started"
}
-@@ -620,153 +301,10 @@
+@@ -654,153 +302,10 @@
fi
}
@@ -425,7 +458,7 @@
- module_build_log "$myerr"
- failure "Look at $LOG to find out what went wrong"
- fi
-- log "Building the net adaptor module."
+- log "Building the net adapter module."
- if ! myerr=`$BUILDINTMP \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --module-source "$MODULE_SRC/vboxnetadp" \
@@ -450,8 +483,8 @@
- sync
- succ_msg "VirtualBox kernel modules built"
-
-- # Secure boot on Ubuntu, Debian and Oracle Linux.
-- if test -n "$HAVE_SEC_BOOT"; then
+- # Sign kernel modules if kernel configuration requires it.
+- if test "$(kernel_requires_module_signature)" = "1"; then
- begin_msg "Signing VirtualBox kernel modules" console
-
- # Generate new signing key if needed.
@@ -515,7 +548,7 @@
}
dmnstatus()
-@@ -816,20 +354,7 @@
+@@ -850,20 +355,7 @@
stop && start
;;
setup)
@@ -537,7 +570,7 @@
;;
force-reload)
stop
-@@ -839,7 +364,7 @@
+@@ -873,7 +365,7 @@
dmnstatus
;;
*)
diff --git a/system/virtualbox/virtualbox.SlackBuild b/system/virtualbox/virtualbox.SlackBuild
index 665cb7aeab..e4c4d04639 100644
--- a/system/virtualbox/virtualbox.SlackBuild
+++ b/system/virtualbox/virtualbox.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for virtualbox
-# Copyright 2008-2023 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008-2024 Heinz Wiesinger, Amsterdam, The Netherlands
# Copyright 2008 Mauro Giachero <mauro.giachero@gmail.com>
# All rights reserved.
#
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=virtualbox
SRCNAM=VirtualBox
-VERSION=${VERSION:-6.1.44}
+VERSION=${VERSION:-6.1.50}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/virtualbox/virtualbox.info b/system/virtualbox/virtualbox.info
index adbeae3452..44e1b2819c 100644
--- a/system/virtualbox/virtualbox.info
+++ b/system/virtualbox/virtualbox.info
@@ -1,16 +1,16 @@
PRGNAM="virtualbox"
-VERSION="6.1.44"
+VERSION="6.1.50"
HOMEPAGE="https://www.virtualbox.org"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="http://download.virtualbox.org/virtualbox/6.1.44/VirtualBox-6.1.44.tar.bz2 \
- http://download.virtualbox.org/virtualbox/6.1.44/VBoxGuestAdditions_6.1.44.iso \
- http://download.virtualbox.org/virtualbox/6.1.44/UserManual.pdf \
- http://download.virtualbox.org/virtualbox/6.1.44/SDKRef.pdf"
-MD5SUM_x86_64="309f868297447291db980a1d8fa11ec6 \
- 282a2d395eac07d7bcde128b529f2bc9 \
- 8b4b2dccba569cba4a82b7441010d86f \
- 62847ffd60056b3377c9974ca98791c7"
+DOWNLOAD_x86_64="http://download.virtualbox.org/virtualbox/6.1.50/VirtualBox-6.1.50.tar.bz2 \
+ http://download.virtualbox.org/virtualbox/6.1.50/VBoxGuestAdditions_6.1.50.iso \
+ http://download.virtualbox.org/virtualbox/6.1.50/UserManual.pdf \
+ http://download.virtualbox.org/virtualbox/6.1.50/SDKRef.pdf"
+MD5SUM_x86_64="57073540cb522ded3ad142c7f1fb01ac \
+ 1041bbc411d15720694a76ca06c2795b \
+ ede83ce195f62c406e5fd77639101a0f \
+ 3cb39e3b30f5fb64c4ba00eee8a4833d"
REQUIRES="acpica virtualbox-kernel"
MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@slackbuilds.org"
diff --git a/system/webmin/webmin.SlackBuild b/system/webmin/webmin.SlackBuild
index da8e6f77ad..526f016770 100644
--- a/system/webmin/webmin.SlackBuild
+++ b/system/webmin/webmin.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for Webmin http://www.webmin.com
# Copyright 2006-2019 David Somero (dsomero@hotmail.com)
+# Copyright 2024 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=webmin
-VERSION=${VERSION:-2.105}
+VERSION=${VERSION:-2.111}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/webmin/webmin.info b/system/webmin/webmin.info
index 79ff5a17e7..deddb65df2 100644
--- a/system/webmin/webmin.info
+++ b/system/webmin/webmin.info
@@ -1,10 +1,10 @@
PRGNAM="webmin"
-VERSION="2.105"
+VERSION="2.111"
HOMEPAGE="https://www.webmin.com/"
-DOWNLOAD="https://downloads.sf.net/project/webadmin/webmin/2.105/webmin-2.105.tar.gz"
-MD5SUM="b518ad1a5750fd92647613d707478403"
+DOWNLOAD="https://downloads.sf.net/project/webadmin/webmin/2.111/webmin-2.111.tar.gz"
+MD5SUM="347b08feb6a07965d928c530e51bc427"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="zulu-openjdk8"
-MAINTAINER="David Somero"
-EMAIL="dsomero@hotmail.com"
+MAINTAINER="Willy Sudiarto Raharjo"
+EMAIL="willysr@slackbuilds.org"
diff --git a/system/wine-staging/wine-staging.SlackBuild b/system/wine-staging/wine-staging.SlackBuild
index 4c669faaec..138bf6251d 100644
--- a/system/wine-staging/wine-staging.SlackBuild
+++ b/system/wine-staging/wine-staging.SlackBuild
@@ -33,7 +33,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=wine-staging
-VERSION=${VERSION:-9.6}
+VERSION=${VERSION:-9.7}
WINEVERSION=$VERSION
STAGINGVERSION=$VERSION
ARCHS="i386,x86_64"
diff --git a/system/wine-staging/wine-staging.info b/system/wine-staging/wine-staging.info
index 9eba5cc053..019dab3def 100644
--- a/system/wine-staging/wine-staging.info
+++ b/system/wine-staging/wine-staging.info
@@ -1,10 +1,10 @@
PRGNAM="wine-staging"
-VERSION="9.6"
+VERSION="9.7"
HOMEPAGE="https://wiki.winehq.org/Wine-Staging"
-DOWNLOAD="https://dl.winehq.org/wine/source/9.x/wine-9.6.tar.xz \
- https://github.com/wine-staging/wine-staging/archive/v9.6/wine-staging-9.6.tar.gz"
-MD5SUM="9bc6c11d200b717fa2ad33be31d91da2 \
- ab997f4aded3004ed736d0bdbf114fb3"
+DOWNLOAD="https://dl.winehq.org/wine/source/9.x/wine-9.7.tar.xz \
+ https://github.com/wine-staging/wine-staging/archive/v9.7/wine-staging-9.7.tar.gz"
+MD5SUM="a419a59b3a00a0aa49646065c1aa78a0 \
+ 26234ce1a1f9eacce2ea9b19ca70137b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/xarchiver/xarchiver.SlackBuild b/system/xarchiver/xarchiver.SlackBuild
index 6cae31e1cb..700f950d0e 100644
--- a/system/xarchiver/xarchiver.SlackBuild
+++ b/system/xarchiver/xarchiver.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for Xarchiver
# Copyright 2007, 2008 Frank Caraballo <fecaraballo{at}gmail{dot}com>
-# Copyright 2019 Edward W. Koenig <kingbeowulf{at}gmail{dot}com>
+# Copyright 2019 Edward W. Koenig, Vancouver, WA USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xarchiver
-VERSION=${VERSION:-0.5.4.21}
+VERSION=${VERSION:-0.5.4.23}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/xarchiver/xarchiver.info b/system/xarchiver/xarchiver.info
index f99069d9e9..dfb4c396a5 100644
--- a/system/xarchiver/xarchiver.info
+++ b/system/xarchiver/xarchiver.info
@@ -1,8 +1,8 @@
PRGNAM="xarchiver"
-VERSION="0.5.4.21"
+VERSION="0.5.4.23"
HOMEPAGE="https://github.com/ib/xarchiver"
-DOWNLOAD="https://github.com/ib/xarchiver/archive/0.5.4.21/xarchiver-0.5.4.21.tar.gz"
-MD5SUM="94621a793a45521ef55702e940442552"
+DOWNLOAD="https://github.com/ib/xarchiver/archive/0.5.4.23/xarchiver-0.5.4.23.tar.gz"
+MD5SUM="bfdace2b113417e1bc77ef304280d103"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/xen/dom0/README.dom0 b/system/xen/dom0/README.dom0
index 804d0efb00..b620e21e81 100644
--- a/system/xen/dom0/README.dom0
+++ b/system/xen/dom0/README.dom0
@@ -57,7 +57,7 @@ kernel-xen.sh: This script builds the Linux Kernel for a Xen Hypervisor.
* To make things a bit easier, a copy of Xen EFI binary can be found here:
- http://slackware.hr/~mario/xen/xen-4.17.1.efi.gz
+ http://slackware.hr/~mario/xen/xen-4.18.2.efi.gz
!!! Make sure to understand what are you doing at this point, you could
easily lose your data. Always create backups !!!
diff --git a/system/xen/dom0/config-5.15.139-xen.x86_64 b/system/xen/dom0/config-5.15.145-xen.x86_64
index b5c74fb8ff..ab75ec2a78 100644
--- a/system/xen/dom0/config-5.15.139-xen.x86_64
+++ b/system/xen/dom0/config-5.15.145-xen.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.15.139 Kernel Configuration
+# Linux/x86 5.15.145 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@@ -3371,7 +3371,6 @@ CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_INTEL=m
-# CONFIG_DWMAC_LOONGSON is not set
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
diff --git a/system/xen/dom0/kernel-xen.sh b/system/xen/dom0/kernel-xen.sh
index 0741ee7ce9..f5d50513a0 100644
--- a/system/xen/dom0/kernel-xen.sh
+++ b/system/xen/dom0/kernel-xen.sh
@@ -5,8 +5,8 @@
# Written by Chris Abela <chris.abela@maltats.com>, 20100515
# Modified by Mario Preksavec <mario@slackware.hr>
-KERNEL=${KERNEL:-5.15.139}
-XEN=${XEN:-4.18.0}
+KERNEL=${KERNEL:-5.15.145}
+XEN=${XEN:-4.18.2}
ROOTMOD=${ROOTMOD:-ext4}
ROOTFS=${ROOTFS:-ext4}
diff --git a/system/xen/domU/domU.sh b/system/xen/domU/domU.sh
index 4b167fc63a..9eb2bcd770 100644
--- a/system/xen/domU/domU.sh
+++ b/system/xen/domU/domU.sh
@@ -7,7 +7,7 @@
set -e
-KERNEL=${KERNEL:-5.15.139}
+KERNEL=${KERNEL:-5.15.145}
# Build an image for the root file system and another for the swap
# Default values : 8GB and 500MB resepectively.
diff --git a/system/xen/xen.SlackBuild b/system/xen/xen.SlackBuild
index 5f3f380186..3f90291c4a 100644
--- a/system/xen/xen.SlackBuild
+++ b/system/xen/xen.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for xen
-# Copyright 2010, 2023 Mario Preksavec, Zagreb, Croatia
+# Copyright 2010, 2024 Mario Preksavec, Zagreb, Croatia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xen
-VERSION=${VERSION:-4.18.0}
+VERSION=${VERSION:-4.18.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/system/xen/xen.info b/system/xen/xen.info
index 83847ec031..1c9a36ce98 100644
--- a/system/xen/xen.info
+++ b/system/xen/xen.info
@@ -1,9 +1,9 @@
PRGNAM="xen"
-VERSION="4.18.0"
+VERSION="4.18.2"
HOMEPAGE="http://www.xenproject.org/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="http://mirror.slackware.hr/sources/xen/xen-4.18.0.tar.gz \
+DOWNLOAD_x86_64="http://mirror.slackware.hr/sources/xen/xen-4.18.2.tar.gz \
http://mirror.slackware.hr/sources/xen-extfiles/ipxe-git-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz \
http://mirror.slackware.hr/sources/xen-extfiles/lwip-1.3.0.tar.gz \
http://mirror.slackware.hr/sources/xen-extfiles/zlib-1.2.3.tar.gz \
@@ -15,7 +15,7 @@ DOWNLOAD_x86_64="http://mirror.slackware.hr/sources/xen/xen-4.18.0.tar.gz \
http://mirror.slackware.hr/sources/xen-extfiles/tpm_emulator-0.7.4.tar.gz \
http://mirror.slackware.hr/sources/xen-seabios/seabios-1.16.2.tar.gz \
http://mirror.slackware.hr/sources/xen-ovmf/xen-ovmf-20230524_ba91d0292e.tar.bz2"
-MD5SUM_x86_64="c564d641a8638cfd43a0a810ebce2179 \
+MD5SUM_x86_64="d3cb8b75ea77efb858ce2da80ff72256 \
0d0dc7451b47f2c7a2992bbec20bf4d0 \
36cc57650cffda9a0269493be2a169bb \
debc62758716a169df9f62e6ab2bc634 \