git: e6a3439bfdff - main - games/sulis: New port: Turn based tactical RPG with several campaigns

From: Rainer Hurling <rhurlin_at_FreeBSD.org>
Date: Sun, 22 Dec 2024 17:52:30 UTC
The branch main has been updated by rhurlin:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e6a3439bfdffc2028b8d2d14f3058a4bb4e74c9b

commit e6a3439bfdffc2028b8d2d14f3058a4bb4e74c9b
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2024-12-22 17:31:34 +0000
Commit:     Rainer Hurling <rhurlin@FreeBSD.org>
CommitDate: 2024-12-22 17:42:00 +0000

    games/sulis: New port: Turn based tactical RPG with several campaigns
    
    Sulis is a Role Playing Game (RPG) with turn based, tactical combat,
    deep character customization and an engaging storyline. The game has
    been built from the ground up with modding and custom content in mind.
    
    WWW:            https://www.sulisgame.com/
    PR:             283358
---
 games/Makefile                                     |   1 +
 games/sulis/Makefile                               |  39 ++
 games/sulis/Makefile.crates                        | 245 ++++++++++
 games/sulis/distinfo                               | 493 +++++++++++++++++++++
 games/sulis/files/patch-config.sample.yml          |  19 +
 games/sulis/files/patch-sulis__core_src_config.rs  |  11 +
 ...tch-sulis__editor_src_actor__creator__window.rs |  11 +
 .../files/patch-sulis__editor_src_bin_editor.rs    |  16 +
 .../files/patch-sulis__editor_src_load__window.rs  |  11 +
 .../files/patch-sulis__editor_src_save__window.rs  |  11 +
 games/sulis/pkg-descr                              |  24 +
 games/sulis/pkg-plist                              |   3 +
 12 files changed, 884 insertions(+)

diff --git a/games/Makefile b/games/Makefile
index 579590b76388..8c5db6d44e25 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -948,6 +948,7 @@
     SUBDIR += stratagus
     SUBDIR += stuntrally
     SUBDIR += sudsol
+    SUBDIR += sulis
     SUBDIR += supertux
     SUBDIR += supertux2
     SUBDIR += supertuxkart
diff --git a/games/sulis/Makefile b/games/sulis/Makefile
new file mode 100644
index 000000000000..b3a9de4bbaee
--- /dev/null
+++ b/games/sulis/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	sulis
+DISTVERSION=	1.0.0
+CATEGORIES=	games
+
+MAINTAINER=	alster@vinterdalen.se
+COMMENT=	Turn based tactical RPG with several campaigns, written in Rust
+WWW=		https://www.sulisgame.com/ \
+		https://github.com/Grokmoo/sulis/
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/docs/GPLv3-LICENSE
+
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libfontconfig.so:x11-fonts/fontconfig \
+		libfreetype.so:print/freetype2
+RUN_DEPENDS=	${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
+
+USES=		cargo dos2unix
+DOS2UNIX_REGEX=	.*\.(rs|toml|yml)
+USE_GITHUB=	yes
+GH_ACCOUNT=	Grokmoo
+
+CARGO_BUILD_ARGS=	--workspace	# to also build the editor
+CARGO_INSTALL=		no
+
+PORTDATA=	campaigns/* data/* mods/*
+
+post-patch:
+	${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|g' ${WRKSRC}/config.sample.yml
+	${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|g' ${WRKSRC}/sulis_core/src/config.rs
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR} ${STAGEDIR}${ETCDIR}
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} "campaigns data mods" ${STAGEDIR}${DATADIR})
+	${INSTALL_DATA} ${WRKSRC}/config.sample.yml ${STAGEDIR}${ETCDIR}/config.yml.sample
+	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/release/main ${STAGEDIR}${PREFIX}/bin/sulis
+	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/release/editor ${STAGEDIR}${PREFIX}/bin/sulis-editor
+
+.include <bsd.port.mk>
diff --git a/games/sulis/Makefile.crates b/games/sulis/Makefile.crates
new file mode 100644
index 000000000000..60dfb068cfce
--- /dev/null
+++ b/games/sulis/Makefile.crates
@@ -0,0 +1,245 @@
+CARGO_CRATES=	addr2line-0.20.0 \
+		adler-1.0.2 \
+		aho-corasick-1.0.2 \
+		alsa-0.7.0 \
+		alsa-sys-0.3.1 \
+		android-tzdata-0.1.1 \
+		android_system_properties-0.1.5 \
+		arrayref-0.3.7 \
+		arrayvec-0.5.2 \
+		autocfg-1.1.0 \
+		backtrace-0.3.68 \
+		base64-0.21.2 \
+		bindgen-0.64.0 \
+		bitflags-1.3.2 \
+		block-0.1.6 \
+		bstr-0.2.17 \
+		bumpalo-3.13.0 \
+		bytemuck-1.13.1 \
+		byteorder-1.4.3 \
+		bytes-1.4.0 \
+		calloop-0.10.6 \
+		cc-1.0.79 \
+		cesu8-1.1.0 \
+		cexpr-0.6.0 \
+		cfg-if-1.0.0 \
+		cgl-0.3.2 \
+		chrono-0.4.26 \
+		clang-sys-1.6.1 \
+		cmake-0.1.50 \
+		cocoa-0.24.1 \
+		cocoa-foundation-0.1.1 \
+		color_quant-1.1.0 \
+		combine-4.6.6 \
+		core-foundation-0.9.3 \
+		core-foundation-sys-0.6.2 \
+		core-foundation-sys-0.8.4 \
+		core-graphics-0.22.3 \
+		core-graphics-types-0.1.2 \
+		core-text-19.2.0 \
+		coreaudio-rs-0.11.2 \
+		coreaudio-sys-0.2.12 \
+		cpal-0.15.2 \
+		crc32fast-1.3.2 \
+		crossfont-0.5.1 \
+		cty-0.2.2 \
+		darling-0.13.4 \
+		darling_core-0.13.4 \
+		darling_macro-0.13.4 \
+		dasp_sample-0.11.0 \
+		dispatch-0.2.0 \
+		dlib-0.5.2 \
+		downcast-rs-1.2.0 \
+		dwrote-0.11.0 \
+		equivalent-1.0.1 \
+		expat-sys-2.1.6 \
+		fdeflate-0.3.0 \
+		flate2-1.0.26 \
+		flexi_logger-0.25.5 \
+		fnv-1.0.7 \
+		foreign-types-0.3.2 \
+		foreign-types-0.5.0 \
+		foreign-types-macros-0.2.3 \
+		foreign-types-shared-0.1.1 \
+		foreign-types-shared-0.3.1 \
+		freetype-rs-0.26.0 \
+		freetype-sys-0.13.1 \
+		getrandom-0.2.10 \
+		gimli-0.27.3 \
+		gl_generator-0.14.0 \
+		glium-0.32.1 \
+		glob-0.3.1 \
+		glutin-0.29.1 \
+		glutin_egl_sys-0.1.6 \
+		glutin_gles2_sys-0.1.5 \
+		glutin_glx_sys-0.1.8 \
+		glutin_wgl_sys-0.1.5 \
+		hashbrown-0.12.3 \
+		hashbrown-0.14.0 \
+		home-0.5.5 \
+		iana-time-zone-0.1.57 \
+		iana-time-zone-haiku-0.1.2 \
+		ident_case-1.0.1 \
+		image-0.24.6 \
+		indexmap-1.9.3 \
+		indexmap-2.0.0 \
+		instant-0.1.12 \
+		itoa-1.0.9 \
+		jni-0.19.0 \
+		jni-0.20.0 \
+		jni-sys-0.3.0 \
+		jobserver-0.1.26 \
+		js-sys-0.3.64 \
+		khronos_api-3.1.0 \
+		lazy_static-1.4.0 \
+		lazycell-1.3.0 \
+		lewton-0.10.2 \
+		libc-0.2.147 \
+		libloading-0.7.4 \
+		libloading-0.8.0 \
+		linked-hash-map-0.5.6 \
+		lock_api-0.4.10 \
+		log-0.4.19 \
+		mach2-0.4.1 \
+		malloc_buf-0.0.6 \
+		memchr-2.5.0 \
+		memmap2-0.5.10 \
+		memoffset-0.6.5 \
+		minimal-lexical-0.2.1 \
+		miniz_oxide-0.7.1 \
+		mio-0.8.8 \
+		ndk-0.7.0 \
+		ndk-context-0.1.1 \
+		ndk-glue-0.7.0 \
+		ndk-macro-0.3.0 \
+		ndk-sys-0.4.1+23.1.7779620 \
+		nix-0.24.3 \
+		nix-0.25.1 \
+		nom-7.1.3 \
+		num-derive-0.3.3 \
+		num-integer-0.1.45 \
+		num-rational-0.4.1 \
+		num-traits-0.2.15 \
+		num_enum-0.5.11 \
+		num_enum_derive-0.5.11 \
+		objc-0.2.7 \
+		object-0.31.1 \
+		oboe-0.5.0 \
+		oboe-sys-0.5.0 \
+		ogg-0.8.0 \
+		once_cell-1.18.0 \
+		open-1.7.1 \
+		osmesa-sys-0.1.2 \
+		parking_lot-0.12.1 \
+		parking_lot_core-0.9.8 \
+		pathdiff-0.2.1 \
+		peeking_take_while-0.1.2 \
+		percent-encoding-2.3.0 \
+		pkg-config-0.3.27 \
+		png-0.17.9 \
+		ppv-lite86-0.2.17 \
+		proc-macro-crate-1.3.1 \
+		proc-macro2-1.0.66 \
+		quote-1.0.31 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.4 \
+		rand_pcg-0.3.1 \
+		raw-window-handle-0.4.3 \
+		raw-window-handle-0.5.2 \
+		redox_syscall-0.3.5 \
+		regex-1.9.1 \
+		regex-automata-0.3.3 \
+		regex-syntax-0.7.4 \
+		rlua-0.19.7 \
+		rlua-lua54-sys-0.1.6 \
+		rodio-0.17.1 \
+		rustc-demangle-0.1.23 \
+		rustc-hash-1.1.0 \
+		ryu-1.0.15 \
+		safe_arch-0.5.2 \
+		same-file-1.0.6 \
+		scoped-tls-1.0.1 \
+		scopeguard-1.2.0 \
+		sctk-adwaita-0.4.3 \
+		serde-1.0.171 \
+		serde_derive-1.0.171 \
+		serde_json-1.0.103 \
+		serde_yaml-0.8.26 \
+		servo-fontconfig-0.5.1 \
+		servo-fontconfig-sys-5.1.0 \
+		shared_library-0.1.9 \
+		shlex-1.1.0 \
+		simd-adler32-0.3.5 \
+		slotmap-1.0.6 \
+		smallvec-1.11.0 \
+		smithay-client-toolkit-0.16.0 \
+		strsim-0.10.0 \
+		syn-1.0.109 \
+		syn-2.0.26 \
+		takeable-option-0.5.0 \
+		thiserror-1.0.43 \
+		thiserror-impl-1.0.43 \
+		time-0.1.45 \
+		tiny-skia-0.7.0 \
+		tiny-skia-path-0.7.0 \
+		tinyvec-1.6.0 \
+		tinyvec_macros-0.1.1 \
+		toml_datetime-0.6.3 \
+		toml_edit-0.19.14 \
+		unicode-ident-1.0.11 \
+		vec_map-0.8.2 \
+		version_check-0.9.4 \
+		walkdir-2.3.3 \
+		wasi-0.10.0+wasi-snapshot-preview1 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.87 \
+		wasm-bindgen-backend-0.2.87 \
+		wasm-bindgen-futures-0.4.37 \
+		wasm-bindgen-macro-0.2.87 \
+		wasm-bindgen-macro-support-0.2.87 \
+		wasm-bindgen-shared-0.2.87 \
+		wayland-client-0.29.5 \
+		wayland-commons-0.29.5 \
+		wayland-cursor-0.29.5 \
+		wayland-egl-0.29.5 \
+		wayland-protocols-0.29.5 \
+		wayland-scanner-0.29.5 \
+		wayland-sys-0.29.5 \
+		web-sys-0.3.64 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-0.46.0 \
+		windows-0.48.0 \
+		windows-sys-0.36.1 \
+		windows-sys-0.48.0 \
+		windows-targets-0.42.2 \
+		windows-targets-0.48.1 \
+		windows_aarch64_gnullvm-0.42.2 \
+		windows_aarch64_gnullvm-0.48.0 \
+		windows_aarch64_msvc-0.36.1 \
+		windows_aarch64_msvc-0.42.2 \
+		windows_aarch64_msvc-0.48.0 \
+		windows_i686_gnu-0.36.1 \
+		windows_i686_gnu-0.42.2 \
+		windows_i686_gnu-0.48.0 \
+		windows_i686_msvc-0.36.1 \
+		windows_i686_msvc-0.42.2 \
+		windows_i686_msvc-0.48.0 \
+		windows_x86_64_gnu-0.36.1 \
+		windows_x86_64_gnu-0.42.2 \
+		windows_x86_64_gnu-0.48.0 \
+		windows_x86_64_gnullvm-0.42.2 \
+		windows_x86_64_gnullvm-0.48.0 \
+		windows_x86_64_msvc-0.36.1 \
+		windows_x86_64_msvc-0.42.2 \
+		windows_x86_64_msvc-0.48.0 \
+		winit-0.27.5 \
+		winnow-0.5.0 \
+		wio-0.2.2 \
+		x11-dl-2.21.0 \
+		xcursor-0.3.4 \
+		xml-rs-0.8.15 \
+		yaml-rust-0.4.5
diff --git a/games/sulis/distinfo b/games/sulis/distinfo
new file mode 100644
index 000000000000..42e161ad4da0
--- /dev/null
+++ b/games/sulis/distinfo
@@ -0,0 +1,493 @@
+TIMESTAMP = 1734201148
+SHA256 (rust/crates/addr2line-0.20.0.crate) = f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3
+SIZE (rust/crates/addr2line-0.20.0.crate) = 39558
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/aho-corasick-1.0.2.crate) = 43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41
+SIZE (rust/crates/aho-corasick-1.0.2.crate) = 167694
+SHA256 (rust/crates/alsa-0.7.0.crate) = 8512c9117059663fb5606788fbca3619e2a91dac0e3fe516242eab1fa6be5e44
+SIZE (rust/crates/alsa-0.7.0.crate) = 69367
+SHA256 (rust/crates/alsa-sys-0.3.1.crate) = db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527
+SIZE (rust/crates/alsa-sys-0.3.1.crate) = 32748
+SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
+SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/arrayref-0.3.7.crate) = 6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545
+SIZE (rust/crates/arrayref-0.3.7.crate) = 9620
+SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
+SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/backtrace-0.3.68.crate) = 4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12
+SIZE (rust/crates/backtrace-0.3.68.crate) = 79891
+SHA256 (rust/crates/base64-0.21.2.crate) = 604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d
+SIZE (rust/crates/base64-0.21.2.crate) = 76389
+SHA256 (rust/crates/bindgen-0.64.0.crate) = c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4
+SIZE (rust/crates/bindgen-0.64.0.crate) = 204700
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
+SIZE (rust/crates/block-0.1.6.crate) = 4077
+SHA256 (rust/crates/bstr-0.2.17.crate) = ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223
+SIZE (rust/crates/bstr-0.2.17.crate) = 330350
+SHA256 (rust/crates/bumpalo-3.13.0.crate) = a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1
+SIZE (rust/crates/bumpalo-3.13.0.crate) = 82114
+SHA256 (rust/crates/bytemuck-1.13.1.crate) = 17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea
+SIZE (rust/crates/bytemuck-1.13.1.crate) = 42309
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/bytes-1.4.0.crate) = 89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be
+SIZE (rust/crates/bytes-1.4.0.crate) = 58080
+SHA256 (rust/crates/calloop-0.10.6.crate) = 52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8
+SIZE (rust/crates/calloop-0.10.6.crate) = 53711
+SHA256 (rust/crates/cc-1.0.79.crate) = 50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f
+SIZE (rust/crates/cc-1.0.79.crate) = 62624
+SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c
+SIZE (rust/crates/cesu8-1.1.0.crate) = 10555
+SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
+SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/cgl-0.3.2.crate) = 0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff
+SIZE (rust/crates/cgl-0.3.2.crate) = 7557
+SHA256 (rust/crates/chrono-0.4.26.crate) = ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5
+SIZE (rust/crates/chrono-0.4.26.crate) = 191501
+SHA256 (rust/crates/clang-sys-1.6.1.crate) = c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f
+SIZE (rust/crates/clang-sys-1.6.1.crate) = 41346
+SHA256 (rust/crates/cmake-0.1.50.crate) = a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130
+SIZE (rust/crates/cmake-0.1.50.crate) = 16748
+SHA256 (rust/crates/cocoa-0.24.1.crate) = f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a
+SIZE (rust/crates/cocoa-0.24.1.crate) = 40445
+SHA256 (rust/crates/cocoa-foundation-0.1.1.crate) = 931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6
+SIZE (rust/crates/cocoa-foundation-0.1.1.crate) = 10664
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/combine-4.6.6.crate) = 35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4
+SIZE (rust/crates/combine-4.6.6.crate) = 132428
+SHA256 (rust/crates/core-foundation-0.9.3.crate) = 194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146
+SIZE (rust/crates/core-foundation-0.9.3.crate) = 27059
+SHA256 (rust/crates/core-foundation-sys-0.6.2.crate) = e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b
+SIZE (rust/crates/core-foundation-sys-0.6.2.crate) = 16204
+SHA256 (rust/crates/core-foundation-sys-0.8.4.crate) = e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa
+SIZE (rust/crates/core-foundation-sys-0.8.4.crate) = 17725
+SHA256 (rust/crates/core-graphics-0.22.3.crate) = 2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb
+SIZE (rust/crates/core-graphics-0.22.3.crate) = 29514
+SHA256 (rust/crates/core-graphics-types-0.1.2.crate) = 2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33
+SIZE (rust/crates/core-graphics-types-0.1.2.crate) = 2641
+SHA256 (rust/crates/core-text-19.2.0.crate) = 99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25
+SIZE (rust/crates/core-text-19.2.0.crate) = 18446
+SHA256 (rust/crates/coreaudio-rs-0.11.2.crate) = cb17e2d1795b1996419648915df94bc7103c28f7b48062d7acf4652fc371b2ff
+SIZE (rust/crates/coreaudio-rs-0.11.2.crate) = 41939
+SHA256 (rust/crates/coreaudio-sys-0.2.12.crate) = f034b2258e6c4ade2f73bf87b21047567fb913ee9550837c2316d139b0262b24
+SIZE (rust/crates/coreaudio-sys-0.2.12.crate) = 5433
+SHA256 (rust/crates/cpal-0.15.2.crate) = 6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c
+SIZE (rust/crates/cpal-0.15.2.crate) = 98128
+SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
+SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/crossfont-0.5.1.crate) = 21fd3add36ea31aba1520aa5288714dd63be506106753226d0eb387a93bc9c45
+SIZE (rust/crates/crossfont-0.5.1.crate) = 31985
+SHA256 (rust/crates/cty-0.2.2.crate) = b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35
+SIZE (rust/crates/cty-0.2.2.crate) = 7230
+SHA256 (rust/crates/darling-0.13.4.crate) = a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c
+SIZE (rust/crates/darling-0.13.4.crate) = 20895
+SHA256 (rust/crates/darling_core-0.13.4.crate) = 859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610
+SIZE (rust/crates/darling_core-0.13.4.crate) = 52937
+SHA256 (rust/crates/darling_macro-0.13.4.crate) = 9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835
+SIZE (rust/crates/darling_macro-0.13.4.crate) = 1910
+SHA256 (rust/crates/dasp_sample-0.11.0.crate) = 0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f
+SIZE (rust/crates/dasp_sample-0.11.0.crate) = 11617
+SHA256 (rust/crates/dispatch-0.2.0.crate) = bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b
+SIZE (rust/crates/dispatch-0.2.0.crate) = 10229
+SHA256 (rust/crates/dlib-0.5.2.crate) = 330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412
+SIZE (rust/crates/dlib-0.5.2.crate) = 5806
+SHA256 (rust/crates/downcast-rs-1.2.0.crate) = 9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650
+SIZE (rust/crates/downcast-rs-1.2.0.crate) = 11670
+SHA256 (rust/crates/dwrote-0.11.0.crate) = 439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b
+SIZE (rust/crates/dwrote-0.11.0.crate) = 21715
+SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
+SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
+SHA256 (rust/crates/expat-sys-2.1.6.crate) = 658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa
+SIZE (rust/crates/expat-sys-2.1.6.crate) = 518887
+SHA256 (rust/crates/fdeflate-0.3.0.crate) = d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10
+SIZE (rust/crates/fdeflate-0.3.0.crate) = 21790
+SHA256 (rust/crates/flate2-1.0.26.crate) = 3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743
+SIZE (rust/crates/flate2-1.0.26.crate) = 70832
+SHA256 (rust/crates/flexi_logger-0.25.5.crate) = 37e7b68b1f7ce9c62856598e99cd6742b9cedb6186b47aa989a82640f20bfa9b
+SIZE (rust/crates/flexi_logger-0.25.5.crate) = 211254
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
+SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
+SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965
+SIZE (rust/crates/foreign-types-0.5.0.crate) = 7824
+SHA256 (rust/crates/foreign-types-macros-0.2.3.crate) = 1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742
+SIZE (rust/crates/foreign-types-macros-0.2.3.crate) = 7635
+SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
+SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
+SHA256 (rust/crates/foreign-types-shared-0.3.1.crate) = aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b
+SIZE (rust/crates/foreign-types-shared-0.3.1.crate) = 6006
+SHA256 (rust/crates/freetype-rs-0.26.0.crate) = 74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb
+SIZE (rust/crates/freetype-rs-0.26.0.crate) = 105825
+SHA256 (rust/crates/freetype-sys-0.13.1.crate) = a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a
+SIZE (rust/crates/freetype-sys-0.13.1.crate) = 1917785
+SHA256 (rust/crates/getrandom-0.2.10.crate) = be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427
+SIZE (rust/crates/getrandom-0.2.10.crate) = 34955
+SHA256 (rust/crates/gimli-0.27.3.crate) = b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e
+SIZE (rust/crates/gimli-0.27.3.crate) = 287904
+SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d
+SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330
+SHA256 (rust/crates/glium-0.32.1.crate) = d2766728ecb86014b91d3d687614b32d65aacbbdc887f424a7b03cba3ab593bf
+SIZE (rust/crates/glium-0.32.1.crate) = 925217
+SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
+SIZE (rust/crates/glob-0.3.1.crate) = 18880
+SHA256 (rust/crates/glutin-0.29.1.crate) = 444c9ad294fdcaf20ccf6726b78f380b5450275540c9b68ab62f49726ad1c713
+SIZE (rust/crates/glutin-0.29.1.crate) = 56213
+SHA256 (rust/crates/glutin_egl_sys-0.1.6.crate) = 68900f84b471f31ea1d1355567eb865a2cf446294f06cef8d653ed7bcf5f013d
+SIZE (rust/crates/glutin_egl_sys-0.1.6.crate) = 5920
+SHA256 (rust/crates/glutin_gles2_sys-0.1.5.crate) = e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103
+SIZE (rust/crates/glutin_gles2_sys-0.1.5.crate) = 6023
+SHA256 (rust/crates/glutin_glx_sys-0.1.8.crate) = d93d0575865098580c5b3a423188cd959419912ea60b1e48e8b3b526f6d02468
+SIZE (rust/crates/glutin_glx_sys-0.1.8.crate) = 5723
+SHA256 (rust/crates/glutin_wgl_sys-0.1.5.crate) = 3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696
+SIZE (rust/crates/glutin_wgl_sys-0.1.5.crate) = 5487
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/hashbrown-0.14.0.crate) = 2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a
+SIZE (rust/crates/hashbrown-0.14.0.crate) = 116103
+SHA256 (rust/crates/home-0.5.5.crate) = 5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb
+SIZE (rust/crates/home-0.5.5.crate) = 8557
+SHA256 (rust/crates/iana-time-zone-0.1.57.crate) = 2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613
+SIZE (rust/crates/iana-time-zone-0.1.57.crate) = 19785
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
+SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
+SHA256 (rust/crates/image-0.24.6.crate) = 527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a
+SIZE (rust/crates/image-0.24.6.crate) = 273618
+SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
+SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
+SHA256 (rust/crates/indexmap-2.0.0.crate) = d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d
+SIZE (rust/crates/indexmap-2.0.0.crate) = 64038
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
+SHA256 (rust/crates/itoa-1.0.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38
+SIZE (rust/crates/itoa-1.0.9.crate) = 10492
+SHA256 (rust/crates/jni-0.19.0.crate) = c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec
+SIZE (rust/crates/jni-0.19.0.crate) = 65890
+SHA256 (rust/crates/jni-0.20.0.crate) = 039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c
+SIZE (rust/crates/jni-0.20.0.crate) = 69054
+SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
+SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232
+SHA256 (rust/crates/jobserver-0.1.26.crate) = 936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2
+SIZE (rust/crates/jobserver-0.1.26.crate) = 22645
+SHA256 (rust/crates/js-sys-0.3.64.crate) = c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a
+SIZE (rust/crates/js-sys-0.3.64.crate) = 80313
+SHA256 (rust/crates/khronos_api-3.1.0.crate) = e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc
+SIZE (rust/crates/khronos_api-3.1.0.crate) = 599718
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55
+SIZE (rust/crates/lazycell-1.3.0.crate) = 12502
+SHA256 (rust/crates/lewton-0.10.2.crate) = 777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030
+SIZE (rust/crates/lewton-0.10.2.crate) = 68807
+SHA256 (rust/crates/libc-0.2.147.crate) = b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3
+SIZE (rust/crates/libc-0.2.147.crate) = 686772
+SHA256 (rust/crates/libloading-0.7.4.crate) = b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f
+SIZE (rust/crates/libloading-0.7.4.crate) = 27580
+SHA256 (rust/crates/libloading-0.8.0.crate) = d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb
+SIZE (rust/crates/libloading-0.8.0.crate) = 27845
+SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
+SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/lock_api-0.4.10.crate) = c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16
+SIZE (rust/crates/lock_api-0.4.10.crate) = 26713
+SHA256 (rust/crates/log-0.4.19.crate) = b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4
+SIZE (rust/crates/log-0.4.19.crate) = 38073
+SHA256 (rust/crates/mach2-0.4.1.crate) = 6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8
+SIZE (rust/crates/mach2-0.4.1.crate) = 19723
+SHA256 (rust/crates/malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb
+SIZE (rust/crates/malloc_buf-0.0.6.crate) = 1239
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/memmap2-0.5.10.crate) = 83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327
+SIZE (rust/crates/memmap2-0.5.10.crate) = 26847
+SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
+SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
+SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
+SHA256 (rust/crates/mio-0.8.8.crate) = 927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2
+SIZE (rust/crates/mio-0.8.8.crate) = 94264
+SHA256 (rust/crates/ndk-0.7.0.crate) = 451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0
+SIZE (rust/crates/ndk-0.7.0.crate) = 54683
+SHA256 (rust/crates/ndk-context-0.1.1.crate) = 27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b
+SIZE (rust/crates/ndk-context-0.1.1.crate) = 2205
+SHA256 (rust/crates/ndk-glue-0.7.0.crate) = 0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f
+SIZE (rust/crates/ndk-glue-0.7.0.crate) = 6435
+SHA256 (rust/crates/ndk-macro-0.3.0.crate) = 0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c
+SIZE (rust/crates/ndk-macro-0.3.0.crate) = 4884
+SHA256 (rust/crates/ndk-sys-0.4.1+23.1.7779620.crate) = 3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3
+SIZE (rust/crates/ndk-sys-0.4.1+23.1.7779620.crate) = 291699
+SHA256 (rust/crates/nix-0.24.3.crate) = fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069
+SIZE (rust/crates/nix-0.24.3.crate) = 266843
+SHA256 (rust/crates/nix-0.25.1.crate) = f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4
+SIZE (rust/crates/nix-0.25.1.crate) = 272312
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/num-derive-0.3.3.crate) = 876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d
+SIZE (rust/crates/num-derive-0.3.3.crate) = 14545
+SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
+SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
+SHA256 (rust/crates/num-rational-0.4.1.crate) = 0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0
+SIZE (rust/crates/num-rational-0.4.1.crate) = 27889
+SHA256 (rust/crates/num-traits-0.2.15.crate) = 578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd
+SIZE (rust/crates/num-traits-0.2.15.crate) = 49262
+SHA256 (rust/crates/num_enum-0.5.11.crate) = 1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9
+SIZE (rust/crates/num_enum-0.5.11.crate) = 16772
+SHA256 (rust/crates/num_enum_derive-0.5.11.crate) = dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799
+SIZE (rust/crates/num_enum_derive-0.5.11.crate) = 15552
+SHA256 (rust/crates/objc-0.2.7.crate) = 915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1
+SIZE (rust/crates/objc-0.2.7.crate) = 22036
+SHA256 (rust/crates/object-0.31.1.crate) = 8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1
+SIZE (rust/crates/object-0.31.1.crate) = 272843
+SHA256 (rust/crates/oboe-0.5.0.crate) = 8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0
+SIZE (rust/crates/oboe-0.5.0.crate) = 24384
+SHA256 (rust/crates/oboe-sys-0.5.0.crate) = 7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2
+SIZE (rust/crates/oboe-sys-0.5.0.crate) = 150829
+SHA256 (rust/crates/ogg-0.8.0.crate) = 6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e
+SIZE (rust/crates/ogg-0.8.0.crate) = 27128
+SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d
+SIZE (rust/crates/once_cell-1.18.0.crate) = 32969
+SHA256 (rust/crates/open-1.7.1.crate) = dcea7a30d6b81a2423cc59c43554880feff7b57d12916f231a79f8d6d9470201
+SIZE (rust/crates/open-1.7.1.crate) = 6129
+SHA256 (rust/crates/osmesa-sys-0.1.2.crate) = 88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b
+SIZE (rust/crates/osmesa-sys-0.1.2.crate) = 1322
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
+SHA256 (rust/crates/parking_lot_core-0.9.8.crate) = 93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447
+SIZE (rust/crates/parking_lot_core-0.9.8.crate) = 32383
+SHA256 (rust/crates/pathdiff-0.2.1.crate) = 8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd
+SIZE (rust/crates/pathdiff-0.2.1.crate) = 7142
+SHA256 (rust/crates/peeking_take_while-0.1.2.crate) = 19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099
+SIZE (rust/crates/peeking_take_while-0.1.2.crate) = 6697
+SHA256 (rust/crates/percent-encoding-2.3.0.crate) = 9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94
+SIZE (rust/crates/percent-encoding-2.3.0.crate) = 10196
+SHA256 (rust/crates/pkg-config-0.3.27.crate) = 26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964
+SIZE (rust/crates/pkg-config-0.3.27.crate) = 18838
+SHA256 (rust/crates/png-0.17.9.crate) = 59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11
+SIZE (rust/crates/png-0.17.9.crate) = 88839
+SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
+SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
+SHA256 (rust/crates/proc-macro-crate-1.3.1.crate) = 7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919
+SIZE (rust/crates/proc-macro-crate-1.3.1.crate) = 9678
+SHA256 (rust/crates/proc-macro2-1.0.66.crate) = 18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9
+SIZE (rust/crates/proc-macro2-1.0.66.crate) = 43575
+SHA256 (rust/crates/quote-1.0.31.crate) = 5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0
+SIZE (rust/crates/quote-1.0.31.crate) = 27881
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_pcg-0.3.1.crate) = 59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e
+SIZE (rust/crates/rand_pcg-0.3.1.crate) = 11983
+SHA256 (rust/crates/raw-window-handle-0.4.3.crate) = b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41
+SIZE (rust/crates/raw-window-handle-0.4.3.crate) = 10636
+SHA256 (rust/crates/raw-window-handle-0.5.2.crate) = f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9
+SIZE (rust/crates/raw-window-handle-0.5.2.crate) = 17063
+SHA256 (rust/crates/redox_syscall-0.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29
+SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404
+SHA256 (rust/crates/regex-1.9.1.crate) = b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575
+SIZE (rust/crates/regex-1.9.1.crate) = 251978
+SHA256 (rust/crates/regex-automata-0.3.3.crate) = 39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310
+SIZE (rust/crates/regex-automata-0.3.3.crate) = 604301
+SHA256 (rust/crates/regex-syntax-0.7.4.crate) = e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2
+SIZE (rust/crates/regex-syntax-0.7.4.crate) = 343365
+SHA256 (rust/crates/rlua-0.19.7.crate) = 5d33e5ba15c3d43178f283ed5863d4531e292fc0e56fb773f3bea45f18e3a42a
+SIZE (rust/crates/rlua-0.19.7.crate) = 94123
+SHA256 (rust/crates/rlua-lua54-sys-0.1.6.crate) = 7aafabafe1895cb4a2be81a56d7ff3d46bf4b5d2f9cfdbea2ed404cdabe96474
+SIZE (rust/crates/rlua-lua54-sys-0.1.6.crate) = 370970
+SHA256 (rust/crates/rodio-0.17.1.crate) = bdf1d4dea18dff2e9eb6dca123724f8b60ef44ad74a9ad283cdfe025df7e73fa
+SIZE (rust/crates/rodio-0.17.1.crate) = 57903
+SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
+SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
+SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
+SIZE (rust/crates/ryu-1.0.15.crate) = 46906
+SHA256 (rust/crates/safe_arch-0.5.2.crate) = c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05
+SIZE (rust/crates/safe_arch-0.5.2.crate) = 75030
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
+SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/sctk-adwaita-0.4.3.crate) = 61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339
+SIZE (rust/crates/sctk-adwaita-0.4.3.crate) = 21316
+SHA256 (rust/crates/serde-1.0.171.crate) = 30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9
+SIZE (rust/crates/serde-1.0.171.crate) = 77630
+SHA256 (rust/crates/serde_derive-1.0.171.crate) = 389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682
+SIZE (rust/crates/serde_derive-1.0.171.crate) = 55183
+SHA256 (rust/crates/serde_json-1.0.103.crate) = d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b
+SIZE (rust/crates/serde_json-1.0.103.crate) = 146095
+SHA256 (rust/crates/serde_yaml-0.8.26.crate) = 578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b
+SIZE (rust/crates/serde_yaml-0.8.26.crate) = 40670
+SHA256 (rust/crates/servo-fontconfig-0.5.1.crate) = c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c
+SIZE (rust/crates/servo-fontconfig-0.5.1.crate) = 9738
+SHA256 (rust/crates/servo-fontconfig-sys-5.1.0.crate) = e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388
+SIZE (rust/crates/servo-fontconfig-sys-5.1.0.crate) = 1790708
+SHA256 (rust/crates/shared_library-0.1.9.crate) = 5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11
+SIZE (rust/crates/shared_library-0.1.9.crate) = 10566
+SHA256 (rust/crates/shlex-1.1.0.crate) = 43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3
+SIZE (rust/crates/shlex-1.1.0.crate) = 5199
+SHA256 (rust/crates/simd-adler32-0.3.5.crate) = 238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f
+SIZE (rust/crates/simd-adler32-0.3.5.crate) = 12132
+SHA256 (rust/crates/slotmap-1.0.6.crate) = e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342
+SIZE (rust/crates/slotmap-1.0.6.crate) = 58954
+SHA256 (rust/crates/smallvec-1.11.0.crate) = 62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9
+SIZE (rust/crates/smallvec-1.11.0.crate) = 34680
+SHA256 (rust/crates/smithay-client-toolkit-0.16.0.crate) = f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454
+SIZE (rust/crates/smithay-client-toolkit-0.16.0.crate) = 132020
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.26.crate) = 45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970
+SIZE (rust/crates/syn-2.0.26.crate) = 241572
+SHA256 (rust/crates/takeable-option-0.5.0.crate) = 36ae8932fcfea38b7d3883ae2ab357b0d57a02caaa18ebb4f5ece08beaec4aa0
+SIZE (rust/crates/takeable-option-0.5.0.crate) = 1075
+SHA256 (rust/crates/thiserror-1.0.43.crate) = a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42
+SIZE (rust/crates/thiserror-1.0.43.crate) = 18735
+SHA256 (rust/crates/thiserror-impl-1.0.43.crate) = 463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f
+SIZE (rust/crates/thiserror-impl-1.0.43.crate) = 15062
+SHA256 (rust/crates/time-0.1.45.crate) = 1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a
+SIZE (rust/crates/time-0.1.45.crate) = 28911
+SHA256 (rust/crates/tiny-skia-0.7.0.crate) = 642680569bb895b16e4b9d181c60be1ed136fa0c9c7f11d004daf053ba89bf82
+SIZE (rust/crates/tiny-skia-0.7.0.crate) = 178703
+SHA256 (rust/crates/tiny-skia-path-0.7.0.crate) = c114d32f0c2ee43d585367cb013dfaba967ab9f62b90d9af0d696e955e70fa6c
+SIZE (rust/crates/tiny-skia-path-0.7.0.crate) = 47384
+SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
+SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/toml_datetime-0.6.3.crate) = 7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b
+SIZE (rust/crates/toml_datetime-0.6.3.crate) = 10770
+SHA256 (rust/crates/toml_edit-0.19.14.crate) = f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a
+SIZE (rust/crates/toml_edit-0.19.14.crate) = 94875
+SHA256 (rust/crates/unicode-ident-1.0.11.crate) = 301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c
+SIZE (rust/crates/unicode-ident-1.0.11.crate) = 42067
+SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
+SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/walkdir-2.3.3.crate) = 36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698
+SIZE (rust/crates/walkdir-2.3.3.crate) = 23125
+SHA256 (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f
+SIZE (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 26964
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/wasm-bindgen-0.2.87.crate) = 7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342
+SIZE (rust/crates/wasm-bindgen-0.2.87.crate) = 175052
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd
+SIZE (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 26821
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.37.crate) = c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03
+SIZE (rust/crates/wasm-bindgen-futures-0.4.37.crate) = 15193
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.87.crate) = dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d
+SIZE (rust/crates/wasm-bindgen-macro-0.2.87.crate) = 13897
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 20006
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.87.crate) = ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1
+SIZE (rust/crates/wasm-bindgen-shared-0.2.87.crate) = 7248
+SHA256 (rust/crates/wayland-client-0.29.5.crate) = 3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715
+SIZE (rust/crates/wayland-client-0.29.5.crate) = 71041
+SHA256 (rust/crates/wayland-commons-0.29.5.crate) = 8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902
+SIZE (rust/crates/wayland-commons-0.29.5.crate) = 20771
+SHA256 (rust/crates/wayland-cursor-0.29.5.crate) = 6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661
+SIZE (rust/crates/wayland-cursor-0.29.5.crate) = 6195
+SHA256 (rust/crates/wayland-egl-0.29.5.crate) = 402de949f81a012926d821a2d659f930694257e76dd92b6e0042ceb27be4107d
+SIZE (rust/crates/wayland-egl-0.29.5.crate) = 3112
+SHA256 (rust/crates/wayland-protocols-0.29.5.crate) = b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6
+SIZE (rust/crates/wayland-protocols-0.29.5.crate) = 140859
+SHA256 (rust/crates/wayland-scanner-0.29.5.crate) = 8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53
+SIZE (rust/crates/wayland-scanner-0.29.5.crate) = 17248
+SHA256 (rust/crates/wayland-sys-0.29.5.crate) = be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4
+SIZE (rust/crates/wayland-sys-0.29.5.crate) = 7926
+SHA256 (rust/crates/web-sys-0.3.64.crate) = 9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b
+SIZE (rust/crates/web-sys-0.3.64.crate) = 725584
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-0.46.0.crate) = cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25
+SIZE (rust/crates/windows-0.46.0.crate) = 11668505
+SHA256 (rust/crates/windows-0.48.0.crate) = e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f
+SIZE (rust/crates/windows-0.48.0.crate) = 11864177
+SHA256 (rust/crates/windows-sys-0.36.1.crate) = ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2
+SIZE (rust/crates/windows-sys-0.36.1.crate) = 3347053
+SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
+SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
+SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071
+SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
+SHA256 (rust/crates/windows-targets-0.48.1.crate) = 05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f
+SIZE (rust/crates/windows-targets-0.48.1.crate) = 6902
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc
+SIZE (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 366543
+SHA256 (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47
+SIZE (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 661960
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
+SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
+SHA256 (rust/crates/windows_aarch64_msvc-0.48.0.crate) = b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3
+SIZE (rust/crates/windows_aarch64_msvc-0.48.0.crate) = 671479
+SHA256 (rust/crates/windows_i686_gnu-0.36.1.crate) = 180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6
+SIZE (rust/crates/windows_i686_gnu-0.36.1.crate) = 818115
+SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
+SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
+SHA256 (rust/crates/windows_i686_gnu-0.48.0.crate) = 622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241
+SIZE (rust/crates/windows_i686_gnu-0.48.0.crate) = 741490
+SHA256 (rust/crates/windows_i686_msvc-0.36.1.crate) = e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024
+SIZE (rust/crates/windows_i686_msvc-0.36.1.crate) = 724575
+SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
+SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
+SHA256 (rust/crates/windows_i686_msvc-0.48.0.crate) = 4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00
+SIZE (rust/crates/windows_i686_msvc-0.48.0.crate) = 730056
+SHA256 (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1
+SIZE (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 790934
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
+SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
+SHA256 (rust/crates/windows_x86_64_gnu-0.48.0.crate) = ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1
+SIZE (rust/crates/windows_x86_64_gnu-0.48.0.crate) = 703595
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953
+SIZE (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 366536
+SHA256 (rust/crates/windows_x86_64_msvc-0.36.1.crate) = c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680
+SIZE (rust/crates/windows_x86_64_msvc-0.36.1.crate) = 661999
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
+SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
+SHA256 (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a
+SIZE (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 671422
+SHA256 (rust/crates/winit-0.27.5.crate) = bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c
+SIZE (rust/crates/winit-0.27.5.crate) = 370578
+SHA256 (rust/crates/winnow-0.5.0.crate) = 81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7
+SIZE (rust/crates/winnow-0.5.0.crate) = 142099
+SHA256 (rust/crates/wio-0.2.2.crate) = 5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5
+SIZE (rust/crates/wio-0.2.2.crate) = 11214
+SHA256 (rust/crates/x11-dl-2.21.0.crate) = 38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f
+SIZE (rust/crates/x11-dl-2.21.0.crate) = 66823
+SHA256 (rust/crates/xcursor-0.3.4.crate) = 463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7
+SIZE (rust/crates/xcursor-0.3.4.crate) = 6069
+SHA256 (rust/crates/xml-rs-0.8.15.crate) = 5a56c84a8ccd4258aed21c92f70c0f6dea75356b6892ae27c24139da456f9336
+SIZE (rust/crates/xml-rs-0.8.15.crate) = 52939
+SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
+SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
+SHA256 (Grokmoo-sulis-1.0.0_GH0.tar.gz) = 5ad819d5291c3211073c50426de9dcc223b394c77766514ae433476d527fb565
+SIZE (Grokmoo-sulis-1.0.0_GH0.tar.gz) = 74925320
diff --git a/games/sulis/files/patch-config.sample.yml b/games/sulis/files/patch-config.sample.yml
new file mode 100644
index 000000000000..fc90780f1774
--- /dev/null
+++ b/games/sulis/files/patch-config.sample.yml
@@ -0,0 +1,19 @@
+--- config.sample.yml.orig	2024-12-15 09:53:48 UTC
++++ config.sample.yml
+@@ -61,13 +61,13 @@ resources:
+ 
+ resources:
+     # all resources are subdirectories under this
+-    directory: data
++    directory: %%DATADIR%%/data
+ 
+     # campaigns are stored here
+-    campaigns_directory: campaigns
++    campaigns_directory: %%DATADIR%%/campaigns
+ 
+     # mods are stored here
+-    mods_directory: mods
++    mods_directory: %%DATADIR%%/mods
+ 
+ input:
+     # whether the screen will shake on a critical hit
diff --git a/games/sulis/files/patch-sulis__core_src_config.rs b/games/sulis/files/patch-sulis__core_src_config.rs
new file mode 100644
index 000000000000..0643ea58466d
--- /dev/null
+++ b/games/sulis/files/patch-sulis__core_src_config.rs
@@ -0,0 +1,11 @@
+--- sulis_core/src/config.rs.orig	2024-12-15 06:48:25 UTC
++++ sulis_core/src/config.rs
+@@ -352,7 +352,7 @@ const CONFIG_FILENAME: &str = "config.yml";
+ }
+ 
+ const CONFIG_FILENAME: &str = "config.yml";
+-pub const CONFIG_BASE: &str = "config.sample.yml";
++pub const CONFIG_BASE: &str = "%%ETCDIR%%/config.yml";
+ 
+ pub fn create_dir_and_warn(path: &Path) {
+     if let Err(e) = fs::create_dir_all(path) {
diff --git a/games/sulis/files/patch-sulis__editor_src_actor__creator__window.rs b/games/sulis/files/patch-sulis__editor_src_actor__creator__window.rs
new file mode 100644
index 000000000000..852f56fadc76
--- /dev/null
+++ b/games/sulis/files/patch-sulis__editor_src_actor__creator__window.rs
@@ -0,0 +1,11 @@
+--- sulis_editor/src/actor_creator_window.rs.orig	2024-12-15 12:24:55 UTC
++++ sulis_editor/src/actor_creator_window.rs
+@@ -77,7 +77,7 @@ impl ActorCreatorWindow {
+         let resources_config = Config::resources_config();
+ 
+         let filename = format!(
+-            "../{}/{}/actors/{}.yml",
++            "{}/{}/actors/{}.yml",
+             resources_config.campaigns_directory,
+             Config::editor_config().module,
+             id
diff --git a/games/sulis/files/patch-sulis__editor_src_bin_editor.rs b/games/sulis/files/patch-sulis__editor_src_bin_editor.rs
new file mode 100644
index 000000000000..74ba2d29b063
--- /dev/null
+++ b/games/sulis/files/patch-sulis__editor_src_bin_editor.rs
@@ -0,0 +1,16 @@
+--- sulis_editor/src/bin/editor.rs.orig	2024-12-15 11:20:56 UTC
++++ sulis_editor/src/bin/editor.rs
+@@ -36,11 +36,11 @@ fn main() {
+     let resources_config = Config::resources_config();
+ 
+     let dir = resources_config.directory;
+-    let data_dir = format!("../{dir}");
++    let data_dir = format!("{dir}");
+ 
+     let campaigns_dir = resources_config.campaigns_directory;
+     let module = Config::editor_config().module;
+-    let module_dir = format!("../{campaigns_dir}/{module}");
++    let module_dir = format!("{campaigns_dir}/{module}");
+ 
+     let dirs = vec![data_dir, module_dir];
+     info!("Reading resources from {:?}", dirs);
diff --git a/games/sulis/files/patch-sulis__editor_src_load__window.rs b/games/sulis/files/patch-sulis__editor_src_load__window.rs
new file mode 100644
index 000000000000..2502a2d4383b
--- /dev/null
+++ b/games/sulis/files/patch-sulis__editor_src_load__window.rs
@@ -0,0 +1,11 @@
+--- sulis_editor/src/load_window.rs.orig	2024-12-15 12:23:30 UTC
++++ sulis_editor/src/load_window.rs
+@@ -67,7 +67,7 @@ impl WidgetKind for LoadWindow {
+ 
+         let campaigns_dir = Config::resources_config().campaigns_directory;
+         let dir_str = format!(
+-            "../{}/{}/areas/",
++            "{}/{}/areas/",
+             campaigns_dir,
+             Config::editor_config().module
+         );
diff --git a/games/sulis/files/patch-sulis__editor_src_save__window.rs b/games/sulis/files/patch-sulis__editor_src_save__window.rs
new file mode 100644
index 000000000000..b1de1e34a52f
--- /dev/null
+++ b/games/sulis/files/patch-sulis__editor_src_save__window.rs
@@ -0,0 +1,11 @@
+--- sulis_editor/src/save_window.rs.orig	2024-12-15 12:29:05 UTC
++++ sulis_editor/src/save_window.rs
+@@ -67,7 +67,7 @@ impl WidgetKind for SaveWindow {
+             .add_callback(Callback::new(Rc::new(move |widget, _kind| {
+                 let (parent, _) = Widget::parent::<SaveWindow>(widget);
+                 let filename_prefix = format!(
+-                    "../{}/{}/areas/",
++                    "{}/{}/areas/",
+                     Config::resources_config().campaigns_directory,
+                     Config::editor_config().module
+                 );
diff --git a/games/sulis/pkg-descr b/games/sulis/pkg-descr
new file mode 100644
index 000000000000..111c4b512d9e
--- /dev/null
+++ b/games/sulis/pkg-descr
@@ -0,0 +1,24 @@
+Sulis is a Role Playing Game (RPG) with turn based, tactical combat, deep
+character customization and an engaging storyline. The game has been built from
+the ground up with modding and custom content in mind.
+
+The game is currently fully playable and includes the complete three acts of The
+Twin Expanse, an old school RPG campaign in the vein of classic games such as
+Baldur's Gate, but mixing in modern elements from titles like Divinity: Original
+Sin and Pillars of Eternity. There is additionally The Endless Dungeon, a pure
+action dungeon crawl with more Roguelike elements.
+
+The core game engine as well as the campaign are now considered largely
+complete, although there is always room for improvement. Users are encouraged to
+file issues with bugs, feature requests, or any other feedback.
+
+Features:
+- Multiple campaigns with many hours of playtime, featuring both handcrafted and
+  procedural content.
+- We are designing a detailed and fully realized world and story - check out the
+  Lore page.
+- Highly extensible and designed from the ground up for modding support.
+- A powerful 2D graphics engine with zoom, scalable UI, HiDPI support, and a
+  swappable graphics backend.
+- Runs on very modest hardware - even software renderers (although at a reduced
+  frame rate).
diff --git a/games/sulis/pkg-plist b/games/sulis/pkg-plist
*** 8 LINES SKIPPED ***