about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name')
-rw-r--r--nixpkgs/pkgs/by-name/README.md121
-rw-r--r--nixpkgs/pkgs/by-name/_4/_4th/001-install-manual-fixup.diff12
-rw-r--r--nixpkgs/pkgs/by-name/_4/_4th/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/_9/_9base/config-substitutions.patch56
-rw-r--r--nixpkgs/pkgs/by-name/_9/_9base/dont-strip.patch12
-rw-r--r--nixpkgs/pkgs/by-name/_9/_9base/getcallerpc-use-macro-or-stub.patch115
-rw-r--r--nixpkgs/pkgs/by-name/_9/_9base/package.nix77
-rw-r--r--nixpkgs/pkgs/by-name/a4/a4/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/aa/aarch64-esr-decoder/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/ac/action-validator/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/af/afterstep/package.nix103
-rw-r--r--nixpkgs/pkgs/by-name/ai/airscan/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/al/algol68g/package.nix69
-rw-r--r--nixpkgs/pkgs/by-name/al/alpine-make-rootfs/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch44
-rw-r--r--nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch46
-rw-r--r--nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix157
-rw-r--r--nixpkgs/pkgs/by-name/ao/aocl-utils/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/ar/argagg/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/ar/argtable/package.nix48
-rw-r--r--nixpkgs/pkgs/by-name/ar/arjun/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/ar/armbian-firmware/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/ar/arrpc/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/as/ast-grep/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/aw/aws-azure-login/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/ba/badger/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/ba/bashly/Gemfile2
-rw-r--r--nixpkgs/pkgs/by-name/ba/bashly/Gemfile.lock59
-rw-r--r--nixpkgs/pkgs/by-name/ba/bashly/gemset.nix231
-rw-r--r--nixpkgs/pkgs/by-name/ba/bashly/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/ba/bat/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/be/bemoji/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/be/berry/package.nix86
-rw-r--r--nixpkgs/pkgs/by-name/bi/binsort/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix63
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitmagnet/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff10
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff21
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/003-fix-unexport-env-test.diff13
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/004-unconditional-ksh-test.diff12
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/package.nix118
-rw-r--r--nixpkgs/pkgs/by-name/bm/bmake/setup-hook.sh122
-rw-r--r--nixpkgs/pkgs/by-name/bo/bochs/package.nix151
-rw-r--r--nixpkgs/pkgs/by-name/bo/boogie/deps.nix197
-rw-r--r--nixpkgs/pkgs/by-name/bo/boogie/install-check-file.bpl61
-rw-r--r--nixpkgs/pkgs/by-name/bo/boogie/package.nix57
-rw-r--r--nixpkgs/pkgs/by-name/br/bruno/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-i18n/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/cb/cbmbasic/package.nix65
-rw-r--r--nixpkgs/pkgs/by-name/cd/cdk/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/cd/cdwe/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/ce/celluloid/package.nix72
-rw-r--r--nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ci/cimg/package.nix54
-rw-r--r--nixpkgs/pkgs/by-name/ci/circle-flags/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/ci/ciscoPacketTracer7/package.nix90
-rw-r--r--nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix118
-rw-r--r--nixpkgs/pkgs/by-name/cl/clarity-city/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/cl/clzip/package.nix22
-rw-r--r--nixpkgs/pkgs/by-name/cn/cntb/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/co/cockpit/package.nix227
-rw-r--r--nixpkgs/pkgs/by-name/co/codeium/package.nix69
-rwxr-xr-xnixpkgs/pkgs/by-name/co/codeium/update.sh35
-rw-r--r--nixpkgs/pkgs/by-name/co/codespelunker/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/co/colorized-logs/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/co/comic-mandown/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/co/composefs/package.nix101
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-gtk/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-notify/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/co/connman/create-libppp-compat.h.patch132
-rw-r--r--nixpkgs/pkgs/by-name/co/connman/package.nix176
-rw-r--r--nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/co/controku/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/co/convco/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/co/costa/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/co/cowsql/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/cp/cpu-x/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/cr/create-react-app/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/ct/ctx/0001-fix-detections.diff67
-rw-r--r--nixpkgs/pkgs/by-name/ct/ctx/package.nix82
-rw-r--r--nixpkgs/pkgs/by-name/cy/cyme/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/db/dbus-cpp/package.nix127
-rw-r--r--nixpkgs/pkgs/by-name/de/debianutils/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/de/decker/package.nix79
-rw-r--r--nixpkgs/pkgs/by-name/di/dialog/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/di/diesel-cli-ext/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/dj/djent/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/do/doggo/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/do/dorion/package.nix65
-rw-r--r--nixpkgs/pkgs/by-name/do/dosbox-staging/package.nix133
-rw-r--r--nixpkgs/pkgs/by-name/do/doublecmd/package.nix75
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk/setup_dxvk.sh266
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch48
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch186
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk_1/package.nix57
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk_2/package.nix77
-rw-r--r--nixpkgs/pkgs/by-name/dy/dyalog/dyalogscript.patch8
-rw-r--r--nixpkgs/pkgs/by-name/dy/dyalog/mapl.patch31
-rw-r--r--nixpkgs/pkgs/by-name/dy/dyalog/package.nix225
-rw-r--r--nixpkgs/pkgs/by-name/ec/ecc/package.nix124
-rw-r--r--nixpkgs/pkgs/by-name/ec/ecmtools/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ek/eksctl/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/el/elvish/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.elv8
-rw-r--r--nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.nix25
-rw-r--r--nixpkgs/pkgs/by-name/en/engage/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/es/esbuild-config/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/eu/eudev/package.nix85
-rw-r--r--nixpkgs/pkgs/by-name/ez/eza/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/fa/fantomas/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/fi/firewalk/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/fl/fleng/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/fl/flip/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/fm/fm-tune/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/fo/fortune-kind/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/fr/freecell-solver/package.nix86
-rw-r--r--nixpkgs/pkgs/by-name/ga/game-rs/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/ga/gash-utils/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/ga/gash/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/gb/gbar/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/ge/geopard/Cargo.lock1590
-rw-r--r--nixpkgs/pkgs/by-name/ge/geopard/package.nix73
-rw-r--r--nixpkgs/pkgs/by-name/ge/germinal/package.nix65
-rw-r--r--nixpkgs/pkgs/by-name/ge/geticons/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/gh/gh-screensaver/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/gh/ghunt/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/gi/gickup/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/gi/girouette/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/gi/git-get/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/gi/gitmoji-cli/package.nix75
-rw-r--r--nixpkgs/pkgs/by-name/gm/gmic/package.nix124
-rw-r--r--nixpkgs/pkgs/by-name/go/go-camo/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/go/goat/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/gr/grimblast/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/gr/grun/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-avahi/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-disarchive/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-goblins/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-lzlib/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-lzma/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-quickcheck/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-semver/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-zlib/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/gu/guile-zstd/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/ha/ha-mqtt-discoverable-cli/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/ha/haunt/package.nix89
-rw-r--r--nixpkgs/pkgs/by-name/ha/haunt/tests/001-test-version.nix21
-rw-r--r--nixpkgs/pkgs/by-name/ha/havoc/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/he/headphones-toolbox/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/he/hello/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/he/hello/test.nix8
-rw-r--r--nixpkgs/pkgs/by-name/he/hexbinhex/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/hi/hifile/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/ho/homeassistant-satellite/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyperlink/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprkeys/package.nix44
-rw-r--r--nixpkgs/pkgs/by-name/i3/i3bar-river/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/ic/icewm/package.nix125
-rw-r--r--nixpkgs/pkgs/by-name/if/ifrextractor-rs/Cargo.lock32
-rw-r--r--nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/im/imhex/package.nix90
-rw-r--r--nixpkgs/pkgs/by-name/im/immersed-vr/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/im/impression/package.nix69
-rw-r--r--nixpkgs/pkgs/by-name/in/incus-unwrapped/package.nix97
-rw-r--r--nixpkgs/pkgs/by-name/in/incus/package.nix115
-rw-r--r--nixpkgs/pkgs/by-name/ir/ironbar/package.nix80
-rw-r--r--nixpkgs/pkgs/by-name/ji/jinja2-cli/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/ji/jitterentropy-rngd/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/ju/justbuild/package.nix186
-rw-r--r--nixpkgs/pkgs/by-name/ka/katriawm/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/kc/kconfig-frontends/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/ke/kermit-terminal/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/km/kmsvnc/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/ko/kokkos/package.nix44
-rw-r--r--nixpkgs/pkgs/by-name/ko/konbucase/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/kt/ktfmt/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/la/labwc/package.nix81
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/expose-password-hashing.patch36
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/fix-minion-redis-password.patch34
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/fix-paths.patch100
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/install.patch63
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/package.nix130
-rw-r--r--nixpkgs/pkgs/by-name/le/lemminx/package.nix105
-rw-r--r--nixpkgs/pkgs/by-name/le/less/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/li/liana/Cargo.lock4998
-rw-r--r--nixpkgs/pkgs/by-name/li/liana/package.nix91
-rw-r--r--nixpkgs/pkgs/by-name/li/libburn/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/li/libisoburn/package.nix54
-rw-r--r--nixpkgs/pkgs/by-name/li/libisofs/package.nix48
-rw-r--r--nixpkgs/pkgs/by-name/li/lint-staged/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/li/linux-wallpaperengine/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/li/litmus/package.nix55
-rw-r--r--nixpkgs/pkgs/by-name/lu/luastatus/package.nix88
-rw-r--r--nixpkgs/pkgs/by-name/lx/lxd-to-incus/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ma/matrix-commander-rs/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix80
-rw-r--r--nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/mi/migra/package.nix59
-rw-r--r--nixpkgs/pkgs/by-name/mi/millipixels/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/mi/minecraftia/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/mi/minetest-mapserver/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/mk/mksh/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/ml/mlx42/mlx42.pc10
-rw-r--r--nixpkgs/pkgs/by-name/ml/mlx42/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/mo/modern-cpp-kafka/package.nix57
-rw-r--r--nixpkgs/pkgs/by-name/my/mystmd/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/n2/n2/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/na/namespace-cli/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/na/nawk/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/ne/netclient/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/ne/netproc/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/nf/nfft/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock3536
-rw-r--r--nixpkgs/pkgs/by-name/ni/nickel/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/nl/nls/package.nix21
-rw-r--r--nixpkgs/pkgs/by-name/no/notion/package.nix86
-rw-r--r--nixpkgs/pkgs/by-name/ns/nsxiv/package.nix69
-rw-r--r--nixpkgs/pkgs/by-name/nu/nuget/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/oc/octorpki/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/on/onedrivegui/package.nix87
-rw-r--r--nixpkgs/pkgs/by-name/on/onedriver/package.nix64
-rw-r--r--nixpkgs/pkgs/by-name/op/openpgl/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/or/orchard/package.nix55
-rw-r--r--nixpkgs/pkgs/by-name/ou/outputcheck/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/pa/paper-age/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/pa/passes/package.nix67
-rw-r--r--nixpkgs/pkgs/by-name/pd/pdepend/composer.lock2094
-rw-r--r--nixpkgs/pkgs/by-name/pd/pdepend/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/pe/pekwm/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/pe/pesign/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/pg/pgmoneta/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/ph/phpdocumentor/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/pi/pid1/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/pi/pinact/package.nix45
-rw-r--r--nixpkgs/pkgs/by-name/pl/platformsh/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/po/poethepoet/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/pp/ppsspp/package.nix126
-rw-r--r--nixpkgs/pkgs/by-name/pr/presenterm/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/pr/prettier-d-slim/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/pr/pru/Gemfile2
-rw-r--r--nixpkgs/pkgs/by-name/pr/pru/Gemfile.lock13
-rw-r--r--nixpkgs/pkgs/by-name/pr/pru/gemset.nix12
-rw-r--r--nixpkgs/pkgs/by-name/pr/pru/package.nix24
-rw-r--r--nixpkgs/pkgs/by-name/px/pxder/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/py/pyp/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/qu/quicksand/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/qu/quicktype/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-missing-dir-test.patch23
-rw-r--r--nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-net-tests.patch16
-rw-r--r--nixpkgs/pkgs/by-name/ra/raft-cowsql/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/ra/ratpoison/package.nix88
-rw-r--r--nixpkgs/pkgs/by-name/rc/rc/package.nix95
-rw-r--r--nixpkgs/pkgs/by-name/re/reactphysics3d/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/re/rectangle-pro/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/re/regols/package.nix22
-rw-r--r--nixpkgs/pkgs/by-name/re/replxx/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/ri/rimgo/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/ri/ripsecrets/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/ri/river-bnf/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/ro/robo/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/ro/robodoc/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/ro/robotfindskitten/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/rs/rs/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/rs/rst2html5/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/ru/rustplayer/Cargo.lock1998
-rw-r--r--nixpkgs/pkgs/by-name/ru/rustplayer/dynamic-lib.patch13
-rw-r--r--nixpkgs/pkgs/by-name/ru/rustplayer/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/sa/samrewritten/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/sc/scala-update/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/sc/scalingo/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/sc/scd2html/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/sc/scdoc/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/sc/scimark/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/sc/screentest/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/se/searxng/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/se/serial-unit-testing/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/sh/shepherd/package.nix77
-rw-r--r--nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/si/sirius/package.nix118
-rw-r--r--nixpkgs/pkgs/by-name/sl/sleek-grub-theme/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/sl/slurm-nm/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/sm/smallwm/package.nix60
-rw-r--r--nixpkgs/pkgs/by-name/so/sound-of-sorting/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/sp/spfft/package.nix68
-rw-r--r--nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/sp/spla/package.nix67
-rw-r--r--nixpkgs/pkgs/by-name/ss/sssnake/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/st/static-server/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/st/static-server/version.patch23
-rw-r--r--nixpkgs/pkgs/by-name/st/steamguard-cli/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/su/sunpaper/package.nix55
-rw-r--r--nixpkgs/pkgs/by-name/su/supersonic/package.nix99
-rw-r--r--nixpkgs/pkgs/by-name/sw/swipe-guess/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/sy/symbolicator/Cargo.lock5544
-rw-r--r--nixpkgs/pkgs/by-name/sy/symbolicator/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/sy/syncrclone/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/sy/synthesia/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/sy/systemctl-tui/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/ta/taschenrechner/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/tc/tcsh/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/te/tecoc/package.nix80
-rw-r--r--nixpkgs/pkgs/by-name/te/textsnatcher/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/th/the-legend-of-edgar/package.nix73
-rw-r--r--nixpkgs/pkgs/by-name/th/thud/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/ti/tilda/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/ti/tinywm/package.nix65
-rw-r--r--nixpkgs/pkgs/by-name/tk/tkdiff/189.patch71
-rw-r--r--nixpkgs/pkgs/by-name/tk/tkdiff/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/tm/tmuxifier/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/tp/tpm2-totp/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/tr/tradingview/package.nix91
-rw-r--r--nixpkgs/pkgs/by-name/tr/tradingview/update.sh70
-rw-r--r--nixpkgs/pkgs/by-name/tr/trealla/package.nix96
-rw-r--r--nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/tu/tusc-sh/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/tu/tuxmux/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/tx/txr/package.nix73
-rw-r--r--nixpkgs/pkgs/by-name/uc/ucg/package.nix54
-rw-r--r--nixpkgs/pkgs/by-name/uc/ucg/tests/simple.nix26
-rw-r--r--nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix140
-rw-r--r--nixpkgs/pkgs/by-name/ud/udev-gothic-nf/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ud/udev-gothic/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ui/uiua/package.nix63
-rw-r--r--nixpkgs/pkgs/by-name/ui/uiua386/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/un/unbook/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/un/unimap/Cargo.lock1638
-rw-r--r--nixpkgs/pkgs/by-name/un/unimap/package.nix60
-rw-r--r--nixpkgs/pkgs/by-name/up/upiano/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/up/uplosi/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/ux/uxn/package.nix73
-rw-r--r--nixpkgs/pkgs/by-name/ve/vercel-pkg/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/ve/vesktop/package.nix146
-rw-r--r--nixpkgs/pkgs/by-name/ve/vesktop/use_system_vencord.patch13
-rw-r--r--nixpkgs/pkgs/by-name/vi/virtio-win/package.nix38
-rwxr-xr-xnixpkgs/pkgs/by-name/vi/virtio-win/update.sh12
-rw-r--r--nixpkgs/pkgs/by-name/wa/wait4x/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/wa/waybar-mpris/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/wa/waybox/package.nix65
-rw-r--r--nixpkgs/pkgs/by-name/wa/waycheck/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/wa/wayidle/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/wb/wb32-dfu-updater/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/wh/whatsapp-emoji-font/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/wh/whistle/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/AlsaMixer-app.nix47
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix46
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/default.nix29
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix36
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix44
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmcube.nix48
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsm-app.nix52
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix40
-rw-r--r--nixpkgs/pkgs/by-name/wi/windowmaker/package.nix87
-rw-r--r--nixpkgs/pkgs/by-name/wo/wonderdraft/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/xm/xmldiff/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/xo/xorriso/package.nix59
-rw-r--r--nixpkgs/pkgs/by-name/xs/xscreensaver/package.nix108
-rw-r--r--nixpkgs/pkgs/by-name/xs/xsct/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/ye/yeahwm/package.nix87
-rw-r--r--nixpkgs/pkgs/by-name/yt/ytui-music/package.nix68
-rw-r--r--nixpkgs/pkgs/by-name/zc/zcfan/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/zi/zitadel/console.nix51
-rw-r--r--nixpkgs/pkgs/by-name/zi/zitadel/package.json88
-rw-r--r--nixpkgs/pkgs/by-name/zi/zitadel/package.nix150
-rw-r--r--nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/zx/zxpy/package.nix53
384 files changed, 41896 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/README.md b/nixpkgs/pkgs/by-name/README.md
new file mode 100644
index 000000000000..fbb8b0dc05c1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/README.md
@@ -0,0 +1,121 @@
+# Name-based package directories
+
+The structure of this directory maps almost directly to top-level package attributes.
+This is the recommended way to add new top-level packages to Nixpkgs [when possible](#limitations).
+
+Packages found in the named-based structure do not need to be explicitly added to the
+`top-level/all-packages.nix` file unless they require overriding the default value
+of an implicit attribute (see below).
+
+## Example
+
+The top-level package `pkgs.some-package` may be declared by setting up this file structure:
+
+```
+pkgs
+└── by-name
+   ├── so
+   ┊  ├── some-package
+      ┊  └── package.nix
+
+```
+
+Where `some-package` is the package name and `so` is the lowercased 2-letter prefix of the package name.
+
+The `package.nix` may look like this:
+
+```nix
+# A function taking an attribute set as an argument
+{
+  # Get access to top-level attributes for use as dependencies
+  lib,
+  stdenv,
+  libbar,
+
+  # Make this derivation configurable using `.override { enableBar = true }`
+  enableBar ? false,
+}:
+
+# The return value must be a derivation
+stdenv.mkDerivation {
+  # ...
+  buildInputs =
+    lib.optional enableBar libbar;
+}
+```
+
+You can also split up the package definition into more files in the same directory if necessary.
+
+Once defined, the package can be built from the Nixpkgs root directory using:
+```
+nix-build -A some-package
+```
+
+See the [general package conventions](../README.md#conventions) for more information on package definitions.
+
+### Changing implicit attribute defaults
+
+The above expression is called using these arguments by default:
+```nix
+{
+  lib = pkgs.lib;
+  stdenv = pkgs.stdenv;
+  libbar = pkgs.libbar;
+}
+```
+
+But the package might need `pkgs.libbar_2` instead.
+While the function could be changed to take `libbar_2` directly as an argument,
+this would change the `.override` interface, breaking code like `.override { libbar = ...; }`.
+So instead it is preferable to use the same generic parameter name `libbar`
+and override its value in [`pkgs/top-level/all-packages.nix`](../top-level/all-packages.nix):
+
+```nix
+libfoo = callPackage ../by-name/so/some-package/package.nix {
+  libbar = libbar_2;
+};
+```
+
+## Manual migration guidelines
+
+Most packages are still defined in `all-packages.nix` and the [category hierarchy](../README.md#category-hierarchy).
+Please hold off migrating your maintained packages to this directory.
+
+1. An automated migration for the majority of packages [is being worked on](https://github.com/NixOS/nixpkgs/pull/211832).
+   In order to save on contributor and reviewer time, packages should only be migrated manually afterwards if they couldn't be migrated automatically.
+
+1. Manual migrations should only be lightly encouraged if the relevant code is being worked on anyways.
+   For example with a package update or refactoring.
+
+1. Manual migrations should not remove definitions from `all-packages.nix` with custom arguments.
+   That is a backwards-incompatible change because it changes the `.override` interface.
+   Such packages may still be moved to `pkgs/by-name` however, while keeping the definition in `all-packages.nix`.
+   See also [changing implicit attribute defaults](#changing-implicit-attribute-defaults).
+
+## Limitations
+
+There's some limitations as to which packages can be defined using this structure:
+
+- Only packages defined using `pkgs.callPackage`.
+  This excludes packages defined using `pkgs.python3Packages.callPackage ...`.
+
+  Instead use the [category hierarchy](../README.md#category-hierarchy) for such attributes.
+
+- Only top-level packages.
+  This excludes packages for other package sets like `pkgs.pythonPackages.*`.
+
+  Refer to the definition and documentation of the respective package set to figure out how such packages can be declared.
+
+## Validation
+
+CI performs [certain checks](../test/nixpkgs-check-by-name/README.md#validity-checks) on the `pkgs/by-name` structure.
+This is done using the [`nixpkgs-check-by-name` tool](../test/nixpkgs-check-by-name).
+The version of this tool used is the one that corresponds to the NixOS channel of the PR base branch.
+See [here](../../.github/workflows/check-by-name.yml) for details.
+
+The tool can be run locally using
+
+```bash
+nix-build -A tests.nixpkgs-check-by-name
+result/bin/nixpkgs-check-by-name .
+```
diff --git a/nixpkgs/pkgs/by-name/_4/_4th/001-install-manual-fixup.diff b/nixpkgs/pkgs/by-name/_4/_4th/001-install-manual-fixup.diff
new file mode 100644
index 000000000000..6002e7a0d99f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_4/_4th/001-install-manual-fixup.diff
@@ -0,0 +1,12 @@
+diff -Naur 4th-3.64.0-old/sources/Makefile 4th-3.64.0-new/sources/Makefile
+--- 4th-3.64.0-old/sources/Makefile	2022-03-15 12:37:45.925122854 -0300
++++ 4th-3.64.0-new/sources/Makefile	2022-03-15 12:38:50.987870211 -0300
+@@ -125,7 +125,7 @@
+ 
+ install: mostlyinstall
+ 	install -Dm644 ../documentation/4th.1 $(MANDIR)/man1/4th.1
+-	install -Dm644 ../documentation/4tHmanual.txt $(DOCDIR)/4th/
++	install -Dm644 ../documentation/4tHmanual.pdf $(DOCDIR)/4th/
+ 
+ uninstall:
+ 	-rm -f $(LIBRARIES)/lib4th.{a,so*}
diff --git a/nixpkgs/pkgs/by-name/_4/_4th/package.nix b/nixpkgs/pkgs/by-name/_4/_4th/package.nix
new file mode 100644
index 000000000000..d965f8c5e07f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_4/_4th/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "4th";
+  version = "3.64.1";
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/forth-4th/files/4th-${finalAttrs.version}/4th-${finalAttrs.version}-unix.tar.gz";
+    hash = "sha256-+W6nTNsqrf3Dvr+NbSz3uJdrXVbBI3OHR5v/rs7en+M=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  patches = [
+    # Fix install manual; report this patch to upstream
+    ./001-install-manual-fixup.diff
+  ];
+
+  dontConfigure = true;
+
+  makeFlags = [
+    "-C sources"
+    "CC:=$(CC)"
+    "AR:=$(AR)"
+  ];
+
+  preInstall = ''
+    install -d ${placeholder "out"}/bin \
+               ${placeholder "out"}/lib \
+               ${placeholder "out"}/share/doc/4th \
+               ${placeholder "man"}/share/man
+  '';
+
+  installFlags = [
+    "BINARIES=${placeholder "out"}/bin"
+    "LIBRARIES=${placeholder "out"}/lib"
+    "DOCDIR=${placeholder "out"}/share/doc"
+    "MANDIR=${placeholder "man"}/share/man"
+  ];
+
+  meta = {
+    homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
+    description = "A portable Forth compiler";
+    license = lib.licenses.lgpl3Plus;
+    mainProgram = "4th";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
+# TODO: set Makefile according to platform
diff --git a/nixpkgs/pkgs/by-name/_9/_9base/config-substitutions.patch b/nixpkgs/pkgs/by-name/_9/_9base/config-substitutions.patch
new file mode 100644
index 000000000000..f95083c99b4e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_9/_9base/config-substitutions.patch
@@ -0,0 +1,56 @@
+diff --git a/config.mk b/config.mk
+index 1ebfd49..ec076b3 100644
+--- a/config.mk
++++ b/config.mk
+@@ -1,25 +1,17 @@
+ # Customize to fit your system
+
+ # paths
+-PREFIX      = /usr/local/plan9
+ MANPREFIX   = ${PREFIX}/share/man
+
+ VERSION     = 7
+-OBJTYPE     = 386
+-#OBJTYPE     = arm
+-#OBJTYPE     = x86_64
+-#OBJTYPE     = sun4u
+
+ # Linux/BSD
+ #CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+ CFLAGS      += -c -I. -DPLAN9PORT -DPREFIX="\"${PREFIX}\""
+-LDFLAGS     += -static
+
+ # Solaris
+ #CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+ #LDFLAGS     = -dn
+
+ # compiler
+-AR          = ar rc
+-CC          = cc
+ YACC        = ../yacc/9yacc
+diff --git a/lib9/Makefile b/lib9/Makefile
+index b83ab2b..e3744a4 100644
+--- a/lib9/Makefile
++++ b/lib9/Makefile
+@@ -221,7 +221,7 @@ uninstall:
+
+ ${LIB}: ${OFILES}
+ 	@echo AR ${TARG}
+-	@${AR} ${LIB} ${OFILES}
++	@${AR} rc ${LIB} ${OFILES}
+
+ .c.o:
+ 	@echo CC $<
+diff --git a/troff/Makefile b/troff/Makefile
+index b4e3d88..3aac6bf 100644
+--- a/troff/Makefile
++++ b/troff/Makefile
+@@ -6,7 +6,7 @@ TARG      = troff
+ OFILES    = n1.o n2.o n3.o n4.o n5.o t6.o n6.o n7.o n8.o n9.o t10.o\
+             n10.o t11.o ni.o hytab.o suftab.o dwbinit.o mbwc.o
+ MANFILES  = troff.1
+-TROFFDIR  = ${PREFIX}/lib/troff
++TROFFDIR  = ${PREFIX_TROFF}/lib/troff
+
+ include ../std.mk
+
diff --git a/nixpkgs/pkgs/by-name/_9/_9base/dont-strip.patch b/nixpkgs/pkgs/by-name/_9/_9base/dont-strip.patch
new file mode 100644
index 000000000000..9385f70b79be
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_9/_9base/dont-strip.patch
@@ -0,0 +1,12 @@
+diff --git a/sam/Makefile b/sam/Makefile
+index 17ada1f..1e9e9b8 100644
+--- a/sam/Makefile
++++ b/sam/Makefile
+@@ -10,7 +10,6 @@ MANFILES  = sam.1
+ include ../config.mk
+ 
+ all: ${TARG}
+-	@strip ${TARG}
+ 	@echo built ${TARG}
+ 
+ install: ${TARG}
diff --git a/nixpkgs/pkgs/by-name/_9/_9base/getcallerpc-use-macro-or-stub.patch b/nixpkgs/pkgs/by-name/_9/_9base/getcallerpc-use-macro-or-stub.patch
new file mode 100644
index 000000000000..d7047a9a997b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_9/_9base/getcallerpc-use-macro-or-stub.patch
@@ -0,0 +1,115 @@
+diff --git a/lib9/Makefile b/lib9/Makefile
+index b83ab2b..2836b38 100644
+--- a/lib9/Makefile
++++ b/lib9/Makefile
+@@ -145,7 +145,7 @@ LIB9OFILES=\
+ 	exitcode.o\
+ 	fcallfmt.o\
+ 	get9root.o\
+-	getcallerpc-$(OBJTYPE).o\
++	getcallerpc.o\
+ 	getenv.o\
+ 	getfields.o\
+ 	getnetconn.o\
+diff --git a/lib9/getcallerpc-386.c b/lib9/getcallerpc-386.c
+deleted file mode 100644
+index 1367370..0000000
+--- a/lib9/getcallerpc-386.c
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	return (((ulong*)(x))[-1]);
+-}
+diff --git a/lib9/getcallerpc-PowerMacintosh.c b/lib9/getcallerpc-PowerMacintosh.c
+deleted file mode 100644
+index 679a72c..0000000
+--- a/lib9/getcallerpc-PowerMacintosh.c
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	return (((ulong*)(x))[-4]);
+-}
+diff --git a/lib9/getcallerpc-arm.c b/lib9/getcallerpc-arm.c
+deleted file mode 100644
+index 9bb4a95..0000000
+--- a/lib9/getcallerpc-arm.c
++++ /dev/null
+@@ -1,8 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	return ((ulong*)x)[-2];
+-}
+-
+diff --git a/lib9/getcallerpc-power.c b/lib9/getcallerpc-power.c
+deleted file mode 100644
+index b4bf698..0000000
+--- a/lib9/getcallerpc-power.c
++++ /dev/null
+@@ -1,11 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	ulong *lp;
+-
+-	lp = x;
+-
+-	return lp[-1];
+-}
+diff --git a/lib9/getcallerpc-ppc.c b/lib9/getcallerpc-ppc.c
+deleted file mode 100644
+index 679a72c..0000000
+--- a/lib9/getcallerpc-ppc.c
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	return (((ulong*)(x))[-4]);
+-}
+diff --git a/lib9/getcallerpc-x86_64.c b/lib9/getcallerpc-x86_64.c
+deleted file mode 100644
+index 1367370..0000000
+--- a/lib9/getcallerpc-x86_64.c
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#include <lib9.h>
+-
+-ulong
+-getcallerpc(void *x)
+-{
+-	return (((ulong*)(x))[-1]);
+-}
+diff --git a/lib9/getcallerpc.c b/lib9/getcallerpc.c
+new file mode 100644
+index 0000000..7d2cdd7
+--- /dev/null
++++ b/lib9/getcallerpc.c
+@@ -0,0 +1,12 @@
++#include <lib9.h>
++
++/*
++ * On gcc and clang, getcallerpc is a macro invoking a compiler builtin.
++ * If the macro in libc.h did not trigger, there's no implementation.
++ */
++#undef getcallerpc
++ulong
++getcallerpc(void *v)
++{
++	return 1;
++}
+\ No newline at end of file
diff --git a/nixpkgs/pkgs/by-name/_9/_9base/package.nix b/nixpkgs/pkgs/by-name/_9/_9base/package.nix
new file mode 100644
index 000000000000..809b9da39af4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/_9/_9base/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchgit
+, pkg-config
+, patches ? [ ]
+, pkgsBuildHost
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation {
+  pname = "9base";
+  version = "unstable-2019-09-11";
+
+  src = fetchgit {
+    url = "https://git.suckless.org/9base";
+    rev = "63916da7bd6d73d9a405ce83fc4ca34845667cce";
+    hash = "sha256-CNK7Ycmcl5vkmtA5VKwKxGZz8AoIG1JH/LTKoYmWSBI=";
+  };
+
+  patches = [
+    # expects to be used with getcallerpc macro or stub patch
+    # AR env var is now the location of `ar` not including the arg (`ar rc`)
+    ./config-substitutions.patch
+    ./dont-strip.patch
+    # plan9port dropped their own getcallerpc implementations
+    # in favour of using gcc/clang's macros or a stub
+    # we can do this here too to extend platform support
+    # https://github.com/9fans/plan9port/commit/540caa5873bcc3bc2a0e1896119f5b53a0e8e630
+    # https://github.com/9fans/plan9port/commit/323e1a8fac276f008e6d5146a83cbc88edeabc87
+    ./getcallerpc-use-macro-or-stub.patch
+  ] ++ patches;
+
+  # the 9yacc script needs to be executed to build other items
+  preBuild = lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    substituteInPlace ./yacc/9yacc \
+      --replace "../yacc/yacc" "${lib.getExe' pkgsBuildHost._9base "yacc"}"
+  '';
+
+  enableParallelBuilding = true;
+  strictDeps = true;
+  nativeBuildInputs = [ pkg-config ];
+  NIX_CFLAGS_COMPILE = [
+    # workaround build failure on -fno-common toolchains like upstream
+    # gcc-10. Otherwise build fails as:
+    #   ld: diffio.o:(.bss+0x16): multiple definition of `bflag'; diffdir.o:(.bss+0x6): first defined here
+    "-fcommon"
+    # hide really common warning that floods the logs:
+    #   warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
+    "-D_DEFAULT_SOURCE"
+  ];
+  LDFLAGS = lib.optionalString enableStatic "-static";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+  installFlags = [
+    "PREFIX_TROFF=${placeholder "troff"}"
+  ];
+
+  outputs = [ "out" "man" "troff" ];
+
+  meta = with lib; {
+    homepage = "https://tools.suckless.org/9base/";
+    description = "9base is a port of various original Plan 9 tools for Unix, based on plan9port";
+    longDescription = ''
+      9base is a port of various original Plan 9 tools for Unix, based on plan9port.
+      It also contains the Plan 9 libc, libbio, libregexp, libfmt and libutf.
+      The overall SLOC is about 66kSLOC, so this userland + all libs is much smaller than, e.g. bash.
+      9base can be used to run werc instead of the full blown plan9port.
+    '';
+    license = with licenses; [ mit /* and */ lpl-102 ];
+    maintainers = with maintainers; [ jk ];
+    platforms = platforms.unix;
+    # needs additional work to support aarch64-darwin
+    # due to usage of _DARWIN_NO_64_BIT_INODE
+    broken = stdenv.isAarch64 && stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/a4/a4/package.nix b/nixpkgs/pkgs/by-name/a4/a4/package.nix
new file mode 100644
index 000000000000..5d33e8077dd0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/a4/a4/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libtickit
+, libvterm-neovim
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "a4";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "rpmohn";
+    repo = "a4";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-AX5psz9+bLdFFeDR55TIrAWDAkhDygw6289OgIfOJTg=";
+  };
+
+  buildInputs = [
+    libtickit
+    libvterm-neovim
+  ];
+
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = {
+    description = "A dynamic terminal window manager";
+    homepage = "https://www.a4term.com/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ onemoresuza ];
+    platforms = lib.platforms.linux;
+    mainProgram = "a4";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/aa/aarch64-esr-decoder/package.nix b/nixpkgs/pkgs/by-name/aa/aarch64-esr-decoder/package.nix
new file mode 100644
index 000000000000..72fb2da2e132
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/aa/aarch64-esr-decoder/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "aarch64-esr-decoder";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "aarch64-esr-decoder";
+    rev = version;
+    hash = "sha256-YdB/8EUeELcKBj8UMbeWFzJ8HeMHvDgrP2qlOJp2dXA=";
+  };
+
+  cargoHash = "sha256-P55DiHBUkr6mreGnWET4+TzLkKnVQJ0UwvrGp6BQ304=";
+
+  meta = with lib; {
+    description = "A utility for decoding aarch64 ESR register values";
+    homepage = "https://github.com/google/aarch64-esr-decoder";
+    changelog = "https://github.com/google/aarch64-esr-decoder/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jmbaur ];
+    mainProgram = "aarch64-esr-decoder";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ac/action-validator/package.nix b/nixpkgs/pkgs/by-name/ac/action-validator/package.nix
new file mode 100644
index 000000000000..724e2337b007
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ac/action-validator/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "action-validator";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "mpalmer";
+    repo = "action-validator";
+    rev = "v${version}";
+    hash = "sha256-22oYPYGnNp4K68pbNMolGcIGDYqjT/3FibO/jv3IEvg=";
+    fetchSubmodules = true;
+  };
+
+  cargoHash = "sha256-CVDqXuAxI1vCZV4w8DS3fOrsYFvJoI35fbe+hnSahLc=";
+
+  meta = with lib; {
+    description = "Tool to validate GitHub Action and Workflow YAML files";
+    homepage = "https://github.com/mpalmer/action-validator";
+    license = licenses.gpl3Plus;
+    mainProgram = "action-validator";
+    maintainers = with maintainers; [ thiagokokada ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/af/afterstep/package.nix b/nixpkgs/pkgs/by-name/af/afterstep/package.nix
new file mode 100644
index 000000000000..c91771fefe2d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/af/afterstep/package.nix
@@ -0,0 +1,103 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, dbus
+, fltk13
+, gtk2
+, libICE
+, libSM
+, libtiff
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "afterstep";
+  version = "2.2.12";
+
+  src = fetchFromGitHub {
+    owner = "afterstep";
+    repo = "afterstep";
+    rev = finalAttrs.version;
+    hash = "sha256-j1ADTRZ3Mxv9VNZWhWCFMnM/CJfkphdrgbw9Ca3bBw0=";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
+      hash = "sha256-RNLB6PuFVA1PsYt2VwLyLyvY2OO3oIl1xk+0/6nwN+4=";
+    })
+
+    # Fix pending upstream inclusion for binutils-2.36 support:
+    #  https://github.com/afterstep/afterstep/pull/7
+    (fetchpatch {
+      name = "binutils-2.36.patch";
+      url = "https://github.com/afterstep/afterstep/commit/5e9e897cf8c455390dd6f5b27fec49707f6b9088.patch";
+      hash = "sha256-aGMTyojzXEHGjO9lMT6dwLl01Fd333BUuCIX0FU9ac4=";
+    })
+  ];
+
+  postPatch = ''
+    # Causes fatal ldconfig cache generation attempt on non-NixOS Linux
+    for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do
+      substituteInPlace $mkfile \
+        --replace 'test -w /etc' 'false'
+    done
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+    fltk13
+    gtk2
+    libICE
+    libSM
+    libtiff
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  # A strange type of bug: dbus is not immediately found by pkg-config
+  preConfigure = ''
+    # binutils 2.37 fix
+    # https://github.com/afterstep/afterstep/issues/2
+    fixupList=(
+      "autoconf/Makefile.defines.in"
+      "libAfterImage/aftershow/Makefile.in"
+      "libAfterImage/apps/Makefile.in"
+      "libAfterBase/Makefile.in"
+      "libAfterImage/Makefile.in"
+    )
+    for toFix in "''${fixupList[@]}"; do
+      substituteInPlace "$toFix" --replace "clq" "cq"
+    done
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
+  '';
+
+  # Parallel build fails due to missing dependencies between private libraries:
+  #   ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
+  # Let's disable parallel builds until it's fixed upstream:
+  #   https://github.com/afterstep/afterstep/issues/8
+  enableParallelBuilding = false;
+
+  meta = {
+    homepage = "http://www.afterstep.org/";
+    description = "A NEXTStep-inspired window manager";
+    longDescription = ''
+      AfterStep is a window manager for the Unix X Window System. Originally
+      based on the look and feel of the NeXTStep interface, it provides end
+      users with a consistent, clean, and elegant desktop. The goal of AfterStep
+      development is to provide for flexibility of desktop configuration,
+      improving aestetics, and efficient use of system resources.
+    '';
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    mainProgram = "afterstep";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ai/airscan/package.nix b/nixpkgs/pkgs/by-name/ai/airscan/package.nix
new file mode 100644
index 000000000000..0859a6c21be8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ai/airscan/package.nix
@@ -0,0 +1,26 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "airscan";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "stapelberg";
+    repo = "airscan";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gk0soDzrsFBh+SrWcfO/quW6JweX6MthOigTHcaq1oE=";
+  };
+
+  vendorHash = "sha256-I5JRGaff6OIwx4q7BjpFwvJiQe4kw03V8+McYPcJhho=";
+
+  meta = with lib; {
+    description = "Package to scan paper documents using the Apple AirScan (eSCL) protocol";
+    homepage = "https://github.com/stapelberg/airscan";
+    changelog = "https://github.com/stapelberg/airscan/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ johannwagner ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/al/algol68g/package.nix b/nixpkgs/pkgs/by-name/al/algol68g/package.nix
new file mode 100644
index 000000000000..1622952b3ce5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/al/algol68g/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchurl
+, curl
+, gmp
+, gsl
+, mpfr
+, ncurses
+, plotutils
+, postgresql
+, pkg-config
+, withPDFDoc ? true
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "algol68g";
+  version = "3.4.2";
+
+  src = fetchurl {
+    url = "https://jmvdveer.home.xs4all.nl/algol68g-${finalAttrs.version}.tar.gz";
+    hash = "sha256-hKiRMU98sZhGgHhjgtwUNSIv2iPgb4T+dgYw58IGK8Q=";
+  };
+
+  outputs = [ "out" "man" ] ++ lib.optionals withPDFDoc [ "doc" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    curl
+    mpfr
+    ncurses
+    gmp
+    gsl
+    plotutils
+    postgresql
+  ];
+
+  strictDeps = true;
+
+  postInstall = let
+    pdfdoc = fetchurl {
+      url = "https://jmvdveer.home.xs4all.nl/learning-algol-68-genie.pdf";
+      hash = "sha256-QCwn1e/lVfTYTeolCFErvfMhvwCgsBnASqq2K+NYmlU=";
+    };
+  in lib.optionalString withPDFDoc
+    ''
+      install -m644 ${pdfdoc} ${placeholder "doc"}/share/doc/algol68g/learning-algol-68-genie.pdf
+    '';
+
+  meta = {
+    homepage = "https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html";
+    description = "Algol 68 Genie compiler-interpreter";
+    longDescription = ''
+      Algol 68 Genie (a68g) is a recent checkout hybrid compiler-interpreter,
+      written from scratch by Marcel van der Veer. It ranks among the most
+      complete Algol 68 implementations. It implements for example arbitrary
+      precision arithmetic, complex numbers, parallel processing, partial
+      parametrisation and formatted transput, as well as support for curses,
+      regular expressions and sounds. It can be linked to GNU plotutils, the GNU
+      scientific library and PostgreSQL.
+    '';
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "a68g";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/al/alpine-make-rootfs/package.nix b/nixpkgs/pkgs/by-name/al/alpine-make-rootfs/package.nix
new file mode 100644
index 000000000000..1fcfc23710a5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/al/alpine-make-rootfs/package.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchFromGitHub, makeWrapper, apk-tools, coreutils, findutils, gnugrep, gnused, gnutar, gzip, rsync, util-linux, wget
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "alpine-make-rootfs";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "alpinelinux";
+    repo = "alpine-make-rootfs";
+    rev = "v${version}";
+    hash = "sha256-B5qYQ6ah4hFZfb3S5vwgevh7aEHI3YGLoA+IyipaDck=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/alpine-make-rootfs --set PATH ${lib.makeBinPath [
+      apk-tools coreutils findutils gnugrep gnused gnutar gzip rsync util-linux wget
+    ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alpinelinux/alpine-make-rootfs";
+    description = "Make customized Alpine Linux rootfs (base image) for containers";
+    mainProgram = "alpine-make-rootfs";
+    maintainers = with maintainers; [ danielsidhion ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix b/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix
new file mode 100644
index 000000000000..d63dd91c05db
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "alt-tab-macos";
+  version = "6.61.0";
+
+  src = fetchurl {
+    url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
+    hash = "sha256-crmeYVeSmu5avNSd3dCbEeGnuqonh1HC5NnEOz8OB2U=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications
+    cp -r *.app $out/Applications
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Windows alt-tab on macOS";
+    homepage = "https://alt-tab-macos.netlify.app";
+    license = licenses.gpl3Plus;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ emilytrau Enzime ];
+    platforms = platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
new file mode 100644
index 000000000000..364f7653efa3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
@@ -0,0 +1,44 @@
+From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
+From: Graham Christensen <graham@grahamc.com>
+Date: Mon, 1 Mar 2021 10:57:44 -0500
+Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
+
+---
+ agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
+ agent/ssm/service_test.go                                    | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+index a1f969ff..631ea1f5 100644
+--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
+ }
+ 
+ func TestPrimaryIpInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
+ 	ip, err := primaryIpInfo()
+ 	assert.NoError(t, err, "expected no error fetching the primary ip")
+ 	assert.NotEmpty(t, ip, "expected to fetch primary ip")
+ }
+ 
+ func TestMacAddrInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
+ 	mac, err := macAddrInfo()
+ 	assert.NoError(t, err, "expected no error fetching the mac addr")
+ 	assert.NotEmpty(t, mac, "expected to fetch mac address")
+diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
+index f4b34f83..d8216dba 100644
+--- a/agent/ssm/service_test.go
++++ b/agent/ssm/service_test.go
+@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
+ // Test function for update instance information
+ // This function update the agent name, agent statuc, and agent version.
+ func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
++	suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
+ 	// Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
+ 	response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
+ 	assert.Nil(suite.T(), err, "Err should be nil")
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
new file mode 100644
index 000000000000..234e510d3d17
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
@@ -0,0 +1,46 @@
+From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Tue, 2 Mar 2021 00:24:00 -0800
+Subject: [PATCH] version-gen: don't use unnecessary constants
+
+This prevents the tool from being built with Nix, because this project
+doesn't use Go modules (or something; I'm not really familiar with Go,
+much less Go + Nix).
+---
+ agent/version/versiongenerator/version-gen.go | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
+index d710effc..55c9a001 100644
+--- a/agent/version/versiongenerator/version-gen.go
++++ b/agent/version/versiongenerator/version-gen.go
+@@ -22,8 +22,6 @@ import (
+ 	"path/filepath"
+ 	"strings"
+ 	"text/template"
+-
+-	"github.com/aws/amazon-ssm-agent/agent/appconfig"
+ )
+ 
+ const versiongoTemplate = `// This is an autogenerated file and should not be edited.
+@@ -59,7 +57,7 @@ func main() {
+ 	versionStr := strings.TrimSpace(string(versionContent))
+ 
+ 	fmt.Printf("Agent Version: %v", versionStr)
+-	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
++	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
+ 		log.Fatalf("Error writing to VERSION file. %v", err)
+ 	}
+ 
+@@ -108,7 +106,7 @@ func main() {
+ 
+ 	releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
+ 
+-	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
++	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
+ 		log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
+ 	}
+ 
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix
new file mode 100644
index 000000000000..4816ac1bdc73
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix
@@ -0,0 +1,157 @@
+{ lib
+, writeShellScriptBin
+, buildGoModule
+, makeWrapper
+, fetchFromGitHub
+, coreutils
+, nettools
+, util-linux
+, stdenv
+, dmidecode
+, bashInteractive
+, nix-update-script
+, testers
+, amazon-ssm-agent
+, overrideEtc ? true
+}:
+
+let
+  # Tests use lsb_release, so we mock it (the SSM agent used to not
+  # read from our /etc/os-release file, but now it does) because in
+  # reality, it won't (shouldn't) be used when active on a system with
+  # /etc/os-release. If it is, we fake the only two fields it cares about.
+  fake-lsb-release = writeShellScriptBin "lsb_release" ''
+    . /etc/os-release || true
+
+    case "$1" in
+      -i) echo "''${NAME:-unknown}";;
+      -r) echo "''${VERSION:-unknown}";;
+    esac
+  '';
+
+  binaries = {
+    "core" = "amazon-ssm-agent";
+    "agent" = "ssm-agent-worker";
+    "cli-main" = "ssm-cli";
+    "worker" = "ssm-document-worker";
+    "logging" = "ssm-session-logger";
+    "sessionworker" = "ssm-session-worker";
+  };
+in
+buildGoModule rec {
+  pname = "amazon-ssm-agent";
+  version = "3.2.1705.0";
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "amazon-ssm-agent";
+    rev = "refs/tags/${version}";
+    hash = "sha256-4KhDD5G/fS1rHitQdbYqIz6RSQ3PTMZsUENC202a/Do=";
+  };
+
+  vendorHash = null;
+
+  patches = [
+    # Some tests use networking, so we skip them.
+    ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
+
+    # They used constants from another package that I couldn't figure
+    # out how to resolve, so hardcoded the constants.
+    ./0002-version-gen-don-t-use-unnecessary-constants.patch
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  # See the list https://github.com/aws/amazon-ssm-agent/blob/3.2.1630.0/makefile#L120-L138
+  # The updater is not built because it cannot work on NixOS
+  subPackages = [
+    "core"
+    "agent"
+    "agent/cli-main"
+    "agent/framework/processor/executer/outofproc/worker"
+    "agent/session/logging"
+    "agent/framework/processor/executer/outofproc/sessionworker"
+  ];
+
+  ldflags = [ "-s" "-w" ];
+
+  postPatch = ''
+    printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
+
+    substituteInPlace agent/platform/platform_unix.go \
+      --replace "/usr/bin/uname" "${coreutils}/bin/uname" \
+      --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \
+      --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
+
+    substituteInPlace agent/session/shell/shell_unix.go \
+      --replace '"script"' '"${util-linux}/bin/script"'
+
+    substituteInPlace agent/rebooter/rebooter_unix.go \
+      --replace "/sbin/shutdown" "shutdown"
+
+    echo "${version}" > VERSION
+  '' + lib.optionalString overrideEtc ''
+    substituteInPlace agent/appconfig/constants_unix.go \
+      --replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"'
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
+      --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
+  '';
+
+  preBuild = ''
+    # Note: if this step fails, please patch the code to fix it! Please only skip
+    # tests if it is not feasible for the test to pass in a sandbox.
+    make quick-integtest
+
+    make pre-release
+    make pre-build
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    declare -A map=(${builtins.concatStringsSep " " (lib.mapAttrsToList (name: value: "[\"${name}\"]=\"${value}\"") binaries)})
+
+    for key in ''${!map[@]}; do
+      install -D -m 0555 -T "$GOPATH/bin/''${key}" "$out/bin/''${map[''${key}]}"
+    done
+
+    # These templates retain their `.template` extensions on installation. The
+    # amazon-ssm-agent.json.template is required as default configuration when an
+    # amazon-ssm-agent.json isn't present. Here, we retain the template to show
+    # we're using the default configuration.
+
+    # seelog.xml isn't actually required to run, but it does ship as a template
+    # with debian packages, so it's here for reference. Future work in the nixos
+    # module could use this template and substitute a different log level.
+
+    install -D -m 0444 -t $out/etc/amazon/ssm amazon-ssm-agent.json.template
+    install -D -m 0444 -T seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
+  '';
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion {
+      package = amazon-ssm-agent;
+      command = "amazon-ssm-agent --version";
+    };
+  };
+
+  meta = with lib; {
+    description = "Agent to enable remote management of your Amazon EC2 instance configuration";
+    changelog = "https://github.com/aws/amazon-ssm-agent/releases/tag/${version}";
+    homepage = "https://github.com/aws/amazon-ssm-agent";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ copumpkin manveru anthonyroussel ];
+
+    # Darwin support is broken
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ao/aocl-utils/package.nix b/nixpkgs/pkgs/by-name/ao/aocl-utils/package.nix
new file mode 100644
index 000000000000..622c62ee96d6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ao/aocl-utils/package.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, cmake } :
+
+stdenv.mkDerivation rec {
+  pname = "aocl-utils";
+  version = "4.1";
+
+  src = fetchFromGitHub {
+    owner = "amd";
+    repo = "aocl-utils";
+    rev = version;
+    hash = "sha256-7Vc3kE+YfqIt6VfvSamsVQRemolzs1sNJUVUZFKk/O8=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Interface to all AMD AOCL libraries to access CPU features";
+    homepage = "https://github.com/amd/aocl-utils";
+    license = licenses.bsd3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.markuskowa ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ar/argagg/package.nix b/nixpkgs/pkgs/by-name/ar/argagg/package.nix
new file mode 100644
index 000000000000..bb8507abbe97
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/argagg/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "argagg";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "vietjtnguyen";
+    repo = "argagg";
+    rev = finalAttrs.version;
+    hash = "sha256-G0PzoKpUyb1MaziLvHgasq98jPODUu4EgPzywRjuIN8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = {
+    homepage = "https://github.com/vietjtnguyen/argagg";
+    description = "Argument Aggregator";
+    longDescription = ''
+      argagg is yet another C++ command line argument/option parser. It was
+      written as a simple and idiomatic alternative to other frameworks like
+      getopt, Boost program options, TCLAP, and others. The goal is to achieve
+      the majority of argument parsing needs in a simple manner with an easy to
+      use API. It operates as a single pass over all arguments, recognizing
+      flags prefixed by - (short) or -- (long) and aggregating them into easy to
+      access structures with lots of convenience functions. It defers processing
+      types until you access them, so the result structures end up just being
+      pointers into the original command line argument C-strings.
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
+    badPlatforms = [ "aarch64-darwin" ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ar/argtable/package.nix b/nixpkgs/pkgs/by-name/ar/argtable/package.nix
new file mode 100644
index 000000000000..18206202691c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/argtable/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "argtable";
+  version = "3.2.2";
+  srcVersion = "v${finalAttrs.version}.f25c624";
+
+  src = fetchFromGitHub {
+    owner = "argtable";
+    repo = "argtable3";
+    rev = finalAttrs.srcVersion;
+    hash = "sha256-X89xFLDs6NEgjzzwy8kplvTgukQd/CV3Xa9A3JXecf4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_SHARED_LIBS" true)
+  ];
+
+  postPatch = ''
+    patchShebangs tools/build
+  '';
+
+  meta = {
+    homepage = "https://github.com/argtable/argtable3";
+    description = "A single-file, ANSI C command-line parsing library";
+    longDescription = ''
+      Argtable is an open source ANSI C library that parses GNU-style
+      command-line options. It simplifies command-line parsing by defining a
+      declarative-style API that you can use to specify what your command-line
+      syntax looks like. Argtable will automatically generate consistent error
+      handling logic and textual descriptions of the command line syntax, which
+      are essential but tedious to implement for a robust CLI program.
+    '';
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ AndersonTorres artuuge ];
+    platforms = lib.platforms.all;
+  };
+})
+# TODO: a NixOS test suite
+# TODO: multiple outputs
+# TODO: documentation
+# TODO: build both shared and static libs
diff --git a/nixpkgs/pkgs/by-name/ar/arjun/package.nix b/nixpkgs/pkgs/by-name/ar/arjun/package.nix
new file mode 100644
index 000000000000..bd98e1c1cb33
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/arjun/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "arjun";
+  version = "2.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "s0md3v";
+    repo = "Arjun";
+    rev = "refs/tags/${version}";
+    hash = "sha256-YxfUlD7aBwoYYsZE0zTZxoXg1TgU2yT1V+mglmsXtlo=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+    dicttoxml
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "arjun"
+  ];
+
+  meta = with lib; {
+    description = "HTTP parameter discovery suite";
+    homepage = "https://github.com/s0md3v/Arjun";
+    changelog = "https://github.com/s0md3v/Arjun/blob/${version}/CHANGELOG.md";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ octodi ];
+    mainProgram = "arjun";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ar/armbian-firmware/package.nix b/nixpkgs/pkgs/by-name/ar/armbian-firmware/package.nix
new file mode 100644
index 000000000000..6e97c5908871
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/armbian-firmware/package.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+stdenvNoCC.mkDerivation rec {
+  pname = "armbian-firmware";
+  version = "unstable-2023-09-16";
+
+  src = fetchFromGitHub {
+    owner = "armbian";
+    repo = "firmware";
+    rev = "01f9809bb0c4bd60c0c84b9438486b02d58b03f7";
+    hash = "sha256-ozKADff7lFjIT/Zf5dkNlCe8lOK+kwYb/60NaCJ8i2k=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/firmware
+    cp -a * $out/lib/firmware/
+
+    runHook postInstall
+  '';
+
+  # Firmware blobs do not need fixing and should not be modified
+  dontBuild = true;
+  dontFixup = true;
+
+  meta = with lib; {
+    description = "Firmware from Armbian";
+    homepage = "https://github.com/armbian/firmware";
+    license = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ zaldnoay ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ar/arrpc/package.nix b/nixpkgs/pkgs/by-name/ar/arrpc/package.nix
new file mode 100644
index 000000000000..15ad34b39d7f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/arrpc/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildNpmPackage {
+  pname = "arrpc";
+  version = "3.2.0";
+
+  src = fetchFromGitHub {
+    owner = "OpenAsar";
+    repo = "arrpc";
+    # Release commits are not tagged
+    # release: 3.2.0
+    rev = "9c3e981437b75606c74ef058c67d1a8c083ce49a";
+    hash = "sha256-tsO58q6tqqXCJLjZmLQGt1VtKsuoqWmh5SlnuDtJafg=";
+  };
+
+  # Make installation less cumbersome
+  # Remove after next release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/OpenAsar/arrpc/pull/50.patch";
+      hash = "sha256-qFlrbe2a4x811wpmWUcGDe2CPlt9x3HI+/t0P2v4kPc=";
+    })
+  ];
+
+  npmDepsHash = "sha256-vxx0w6UjwxIK4cgpivtjNbIgkb4wKG4ijSHdP/FeQZ4=";
+
+  dontNpmBuild = true;
+
+  meta = with lib; {
+    description = "Open Discord RPC server for atypical setups";
+    homepage = "https://arrpc.openasar.dev/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ anomalocaris ];
+    mainProgram = "arrpc";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix b/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
new file mode 100644
index 000000000000..c1f4a8a3d75b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
@@ -0,0 +1,36 @@
+{ lib
+, python3
+, python3Packages
+, fetchFromGitHub
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "arxiv-latex-cleaner";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "google-research";
+    repo = "arxiv-latex-cleaner";
+    rev = "v${version}";
+    hash = "sha256-1IWSDKEoAM4hBKAEEcPq7X89WYDprifDL2GTEJQtdcQ=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pillow
+    pyyaml
+    regex
+    absl-py
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python3.interpreter} -m unittest arxiv_latex_cleaner.tests.arxiv_latex_cleaner_test
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/google-research/arxiv-latex-cleaner";
+    description = "Easily clean the LaTeX code of your paper to submit to arXiv";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arkivm ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix b/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix
new file mode 100644
index 000000000000..2472d5015daf
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  makeWrapper,
+  perlPackages,
+}:
+stdenv.mkDerivation {
+  pname = "asciiquarium-transparent";
+  version = "unstable-2023-02-19";
+  src = fetchFromGitHub {
+    owner = "nothub";
+    repo = "asciiquarium";
+    rev = "653cd99a611080c776d18fc7991ae5dd924c72ce";
+    hash = "sha256-72LRFydbObFDXJllmlRjr5O8qjDqtlp3JunE3kwb5aU=";
+  };
+  nativeBuildInputs = [makeWrapper];
+  buildInputs = [perlPackages.perl];
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp asciiquarium $out/bin/asciiquarium
+    wrapProgram $out/bin/asciiquarium --set PERL5LIB ${perlPackages.makeFullPerlPath [perlPackages.TermAnimation]}
+    runHook postInstall
+  '';
+  meta = with lib; {
+    description = "An aquarium/sea animation in ASCII art (with option of transparent background)";
+    mainProgram = "asciiquarium";
+    homepage = "https://github.com/nothub/asciiquarium";
+    license = with licenses; [gpl2Only];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [quantenzitrone];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/as/ast-grep/package.nix b/nixpkgs/pkgs/by-name/as/ast-grep/package.nix
new file mode 100644
index 000000000000..68e9ebd5f4d0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/as/ast-grep/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ast-grep";
+  version = "0.12.5";
+
+  src = fetchFromGitHub {
+    owner = "ast-grep";
+    repo = "ast-grep";
+    rev = version;
+    hash = "sha256-oFe3AbMpBVBAm/W4IowXAKcEN7CDrrAXhx4dzMXppUM=";
+  };
+
+  cargoHash = "sha256-f4tcJqT3l9G6FimBb0D4PATgQYUkSG5uIQ9BbsbgC/U=";
+
+  # error: linker `aarch64-linux-gnu-gcc` not found
+  postPatch = ''
+    rm .cargo/config.toml
+  '';
+
+  checkFlags = [
+    # disable flaky test
+    "--skip=test::test_load_parser_mac"
+
+    # BUG: Broke by 0.12.1 update (https://github.com/NixOS/nixpkgs/pull/257385)
+    # Please check if this is fixed in future updates of the package
+    "--skip=verify::test_case::tests::test_unmatching_id"
+  ] ++ lib.optionals (with stdenv.hostPlatform; (isDarwin && isx86_64) || (isLinux && isAarch64)) [
+    # x86_64-darwin: source/benches/fixtures/json-mac.so\' (no such file), \'/private/tmp/nix-build-.../source/benches/fixtures/json-mac.so\' (mach-o file, but is an incompatible architecture (have \'arm64\', need \'x86_64h\' or \'x86_64\'))" })
+    # aarch64-linux: /build/source/benches/fixtures/json-linux.so: cannot open shared object file: No such file or directory"
+    "--skip=test::test_load_parser"
+    "--skip=test::test_register_lang"
+  ];
+
+  meta = with lib; {
+    mainProgram = "sg";
+    description = "A fast and polyglot tool for code searching, linting, rewriting at large scale";
+    homepage = "https://ast-grep.github.io/";
+    changelog = "https://github.com/ast-grep/ast-grep/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ montchr lord-valen cafkafk ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/aw/aws-azure-login/package.nix b/nixpkgs/pkgs/by-name/aw/aws-azure-login/package.nix
new file mode 100644
index 000000000000..a32648fa321c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/aw/aws-azure-login/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aws-azure-login";
+  version = "3.6.1";
+
+  src = fetchFromGitHub {
+    owner = "aws-azure-login";
+    repo = "aws-azure-login";
+    rev = "v${version}";
+    hash = "sha256-PvPnqaKD98h3dCjEOwF+Uc86xCJzn2b9XNHHn13h/2Y=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-SXQPRzF6b1FJl5HkyXNm3kGoNSDXux+0RYXBX93mOts=";
+  };
+
+  nativeBuildInputs  = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/aws-azure-login"
+    cp -r . "$out/lib/node_modules/aws-azure-login"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/aws-azure-login" \
+      --add-flags "$out/lib/node_modules/aws-azure-login/lib/index.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Use Azure AD SSO to log into the AWS via CLI";
+    homepage = "https://github.com/aws-azure-login/aws-azure-login";
+    license = lib.licenses.mit;
+    mainProgram = "aws-azure-login";
+    maintainers = with lib.maintainers; [ yurrriq ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix b/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix
new file mode 100644
index 000000000000..5115ae229673
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, zig, libyuv, fetchFromGitHub }:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "backlight-auto";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "lf94";
+    repo = "backlight-auto";
+    rev = finalAttrs.version;
+    hash = "sha256-QPymwlDrgKM/SXDzJdmfzWLSLU2D7egif1OIUE+SHoI=";
+  };
+
+  nativeBuildInputs = [
+    zig.hook
+  ];
+
+  buildInputs = [
+    libyuv
+  ];
+
+  meta = with lib; {
+    description = "Automatically set screen brightness with a webcam";
+    homepage = "https://len.falken.directory/backlight-auto.html";
+    license = licenses.mit;
+    maintainers = [ maintainers.lf- ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ba/badger/package.nix b/nixpkgs/pkgs/by-name/ba/badger/package.nix
new file mode 100644
index 000000000000..4c41b8f88496
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/badger/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "badger";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    owner = "dgraph-io";
+    repo = "badger";
+    rev = "v${version}";
+    hash = "sha256-+b+VTGUGmqixB51f1U2QK+XfVra4zXybW19n/CeeoAQ=";
+  };
+
+  vendorHash = "sha256-YiSmxtRt8HtYcvPL9ZKMjb2ch/MZBjZp5pIIBdqQ7Nw=";
+
+  subPackages = [ "badger" ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Fast key-value DB in Go";
+    homepage = "https://github.com/dgraph-io/badger";
+    license = licenses.asl20;
+    mainProgram = "badger";
+    maintainers = with maintainers; [ farcaller ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix b/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix
new file mode 100644
index 000000000000..bd1c8508023d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, python3Packages
+, fetchPypi
+}:
+
+let
+  pname = "base16-shell-preview";
+  version = "1.0.0";
+in
+python3Packages.buildPythonApplication {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "${lib.replaceStrings ["-"] ["_"] pname}";
+    hash = "sha256-retnbxjdjo+NeA1B0+jpM9kToAX/Rh0ze0yNF9AfDiU=";
+  };
+
+  # If enabled, it will attempt to run '__init__.py, failing by trying to write
+  # at "/homeless-shelter" as HOME
+  doCheck = false;
+
+  meta = {
+    homepage = "https://github.com/nvllsvm/base16-shell-preview";
+    description = "Browse and preview Base16 Shell themes in your terminal";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ba/bashly/Gemfile b/nixpkgs/pkgs/by-name/ba/bashly/Gemfile
new file mode 100644
index 000000000000..b5d29f5f4c59
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/bashly/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'bashly'
diff --git a/nixpkgs/pkgs/by-name/ba/bashly/Gemfile.lock b/nixpkgs/pkgs/by-name/ba/bashly/Gemfile.lock
new file mode 100644
index 000000000000..0021014b3728
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/bashly/Gemfile.lock
@@ -0,0 +1,59 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    bashly (1.1.1)
+      colsole (>= 0.8.1, < 2)
+      completely (~> 0.6.1)
+      filewatcher (~> 2.0)
+      gtx (~> 0.1)
+      lp (~> 0.2)
+      mister_bin (~> 0.7)
+      psych (>= 3.3.2, < 7)
+      tty-markdown (~> 0.7)
+    colsole (1.0.0)
+    completely (0.6.1)
+      colsole (>= 0.8.1, < 2)
+      mister_bin (~> 0.7)
+    docopt_ng (0.7.1)
+    filewatcher (2.1.0)
+      module_methods (~> 0.1.0)
+    gtx (0.1.0)
+    kramdown (2.4.0)
+      rexml
+    lp (0.2.1)
+    mister_bin (0.7.6)
+      colsole (>= 0.8.1, < 2)
+      docopt_ng (~> 0.7, >= 0.7.1)
+    module_methods (0.1.0)
+    pastel (0.8.0)
+      tty-color (~> 0.5)
+    psych (5.1.1.1)
+      stringio
+    rexml (3.2.6)
+    rouge (4.1.3)
+    stringio (3.0.8)
+    strings (0.2.1)
+      strings-ansi (~> 0.2)
+      unicode-display_width (>= 1.5, < 3.0)
+      unicode_utils (~> 1.4)
+    strings-ansi (0.2.0)
+    tty-color (0.6.0)
+    tty-markdown (0.7.2)
+      kramdown (>= 1.16.2, < 3.0)
+      pastel (~> 0.8)
+      rouge (>= 3.14, < 5.0)
+      strings (~> 0.2.0)
+      tty-color (~> 0.5)
+      tty-screen (~> 0.8)
+    tty-screen (0.8.1)
+    unicode-display_width (2.5.0)
+    unicode_utils (1.4.0)
+
+PLATFORMS
+  x86_64-linux
+
+DEPENDENCIES
+  bashly
+
+BUNDLED WITH
+   2.3.26
diff --git a/nixpkgs/pkgs/by-name/ba/bashly/gemset.nix b/nixpkgs/pkgs/by-name/ba/bashly/gemset.nix
new file mode 100644
index 000000000000..e24c0b3483d7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/bashly/gemset.nix
@@ -0,0 +1,231 @@
+{
+  bashly = {
+    dependencies = ["colsole" "completely" "filewatcher" "gtx" "lp" "mister_bin" "psych" "tty-markdown"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rhzbpv8j5qcm5a84m4vzrryb0j8z90q6djbpid4ay2fr492kvkq";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  colsole = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvf6dz2wsvjk7q24z0dm8lajq3p2l6i5ywf3mxj683rmhwq49bg";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  completely = {
+    dependencies = ["colsole" "mister_bin"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01nk1cigb09z6rjy41qrhqf58cgpqm43xwjdkz33mfmwrnz04cw1";
+      type = "gem";
+    };
+    version = "0.6.1";
+  };
+  docopt_ng = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rsnl5s7k2s1gl4n4dg68ssg577kf11sl4a4l2lb2fpswj718950";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  filewatcher = {
+    dependencies = ["module_methods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03f9v57c5zag09mi10yjhdx7y0vv2w5wrnwzbij9hhkwh43rk077";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  gtx = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10hfhicvv371gy1i16x6vry1xglvxl0zh7qr6f14pqsx32qih6ff";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  kramdown = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ic14hdcqxn821dvzki99zhmcy130yhv5fqfffkcf87asv5mnbmn";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  lp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ns1aza32n929w7smg1dsn4g6qlfi7k1jrvssyn35cicmwn0gyyr";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  mister_bin = {
+    dependencies = ["colsole" "docopt_ng"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xx8cxvzcn47zsnshcllf477x4rbssrchvp76929qnsg5k9q7fas";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  module_methods = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1886wjscfripgzlmyvcd0jmlzwr6hxvklm2a5rm32dw5bf7bvjki";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  pastel = {
+    dependencies = ["tty-color"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wjzrkssjfjpynij5dpycyflhqbjvi1gc2j73xgq3b196s1d3c24";
+      type = "gem";
+    };
+    version = "5.1.1.1";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      type = "gem";
+    };
+    version = "3.2.6";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw";
+      type = "gem";
+    };
+    version = "4.1.3";
+  };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
+      type = "gem";
+    };
+    version = "3.0.8";
+  };
+  strings = {
+    dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yynb0qhhhplmpzavfrrlwdnd1rh7rkwzcs4xf0mpy2wr6rr6clk";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  strings-ansi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  tty-color = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  tty-markdown = {
+    dependencies = ["kramdown" "pastel" "rouge" "strings" "tty-color" "tty-screen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04f599zn5rfndq4d9l0acllfpc041bzdkkz2h6x0dl18f2wivn0y";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  tty-screen = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  unicode_utils = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ba/bashly/package.nix b/nixpkgs/pkgs/by-name/ba/bashly/package.nix
new file mode 100644
index 000000000000..5a3d6661caa2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/bashly/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenvNoCC
+, bundlerApp
+}:
+
+let
+  bashlyBundlerApp = bundlerApp {
+    pname = "bashly";
+    gemdir = ./.;
+    exes = [ "bashly" ];
+  };
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  name = "bashly";
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out;
+    cd $out;
+
+    mkdir bin; pushd bin;
+    ln -vs ${bashlyBundlerApp}/bin/bashly;
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Bash command line framework and CLI generator";
+    homepage = "https://github.com/DannyBen/bashly";
+    license = lib.licenses.mit;
+    mainProgram = "bashly";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ba/bat/package.nix b/nixpkgs/pkgs/by-name/ba/bat/package.nix
new file mode 100644
index 000000000000..29de95279e28
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ba/bat/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, less
+, libiconv
+, installShellFiles
+, makeWrapper
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bat";
+  version = "0.24.0";
+
+  src = fetchFromGitHub {
+    owner = "sharkdp";
+    repo = "bat";
+    rev = "v${version}";
+    hash = "sha256-1RjlJEmY/jMf0IYQbrWrT1CHFyiqgarOl72u9xjjQiQ=";
+  };
+  cargoHash = "sha256-b7wNWdKQ4QLeCf7bNZRfzT9hD/D/oDglU7Xyb65IrGY=";
+
+  nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
+
+  postInstall = ''
+    installManPage $releaseDir/build/bat-*/out/assets/manual/bat.1
+    installShellCompletion $releaseDir/build/bat-*/out/assets/completions/bat.{bash,fish,zsh}
+  '';
+
+  # Insert Nix-built `less` into PATH because the system-provided one may be too old to behave as
+  # expected with certain flag combinations.
+  postFixup = ''
+    wrapProgram "$out/bin/bat" \
+      --prefix PATH : "${lib.makeBinPath [ less ]}"
+  '';
+
+  # Skip test cases which depends on `more`
+  checkFlags = [
+    "--skip=alias_pager_disable_long_overrides_short"
+    "--skip=config_read_arguments_from_file"
+    "--skip=env_var_bat_paging"
+    "--skip=pager_arg_override_env_noconfig"
+    "--skip=pager_arg_override_env_withconfig"
+    "--skip=pager_basic"
+    "--skip=pager_basic_arg"
+    "--skip=pager_env_bat_pager_override_config"
+    "--skip=pager_env_pager_nooverride_config"
+    "--skip=pager_more"
+    "--skip=pager_most"
+    "--skip=pager_overwrite"
+  ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    testFile=$(mktemp /tmp/bat-test.XXXX)
+    echo -ne 'Foobar\n\n\n42' > $testFile
+    $out/bin/bat -p $testFile | grep "Foobar"
+    $out/bin/bat -p $testFile -r 4:4 | grep 42
+    rm $testFile
+
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "A cat(1) clone with syntax highlighting and Git integration";
+    homepage = "https://github.com/sharkdp/bat";
+    changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
+    license = with licenses; [ asl20 /* or */ mit ];
+    mainProgram = "bat";
+    maintainers = with maintainers; [ dywedir lilyball zowoq SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/be/bemoji/package.nix b/nixpkgs/pkgs/by-name/be/bemoji/package.nix
new file mode 100644
index 000000000000..68f83bf43287
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/be/bemoji/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "bemoji";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "marty-oehme";
+    repo = "bemoji";
+    rev = version;
+    hash = "sha256-XXNrUaS06UHF3cVfIfWjGF1sdPE709W2tFhfwTitzNs=";
+  };
+
+  strictDeps = true;
+  dontBuild = true;
+
+  postInstall = ''
+    install -Dm555 bemoji -t $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/marty-oehme/bemoji/";
+    description = "Emoji picker with support for bemenu/wofi/rofi/dmenu and wayland/X11";
+    license = licenses.mit;
+    mainProgram = "bemoji";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ laurent-f1z1 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/be/berry/package.nix b/nixpkgs/pkgs/by-name/be/berry/package.nix
new file mode 100644
index 000000000000..6d053c77fa59
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/be/berry/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, copyDesktopItems
+, fontconfig
+, freetype
+, libX11
+, libXext
+, libXft
+, libXinerama
+, makeDesktopItem
+, pkg-config
+, which
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "berry";
+  version = "0.1.12";
+
+  src = fetchFromGitHub {
+    owner = "JLErvin";
+    repo = "berry";
+    rev = finalAttrs.version;
+    hash = "sha256-xMJRiLNtwVRQf9HiCF3ClLKEmdDNxcY35IYxe+L7+Hk=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    pkg-config
+    which
+  ];
+
+  buildInputs =[
+    libX11
+    libXext
+    libXft
+    libXinerama
+    fontconfig
+    freetype
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  postPatch = ''
+    sed -i --regexp-extended 's/(pkg_verstr=").*(")/\1${finalAttrs.version}\2/' configure
+  '';
+
+  preConfigure = ''
+    patchShebangs configure
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "berry";
+      exec = "berry";
+      comment = "A healthy, bite-sized window manager";
+      desktopName = "Berry Window Manager";
+      genericName = "Berry Window Manager";
+      categories = [ "Utility" ];
+    })
+  ];
+
+  meta = {
+    homepage = "https://berrywm.org/";
+    description = "A healthy, bite-sized window manager";
+    longDescription = ''
+      berry is a healthy, bite-sized window manager written in C for unix
+      systems. Its main features include:
+
+      - Controlled via a powerful command-line client, allowing users to control
+        windows via a hotkey daemon such as sxhkd or expand functionality via
+        shell scripts.
+      - Small, hackable source code.
+      - Extensible themeing options with double borders, title bars, and window
+        text.
+      - Intuitively place new windows in unoccupied spaces.
+      - Virtual desktops.
+    '';
+    license = lib.licenses.mit;
+    mainProgram = "berry";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/bi/binsort/package.nix b/nixpkgs/pkgs/by-name/bi/binsort/package.nix
new file mode 100644
index 000000000000..edb41c642268
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/binsort/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "binsort";
+  version = "0.4-1";
+
+  src = fetchurl {
+    url = "http://neoscientists.org/~tmueller/binsort/download/binsort-${finalAttrs.version}.tar.gz";
+    hash = "sha256-l9T0LlDslxCgZYf8NrbsRly7bREOTGwptLteeg3TNRg=";
+  };
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp binsort $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Sort files by binary similarity";
+    homepage = "http://neoscientists.org/~tmueller/binsort/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ numinit ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix b/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix
new file mode 100644
index 000000000000..8d314053e7bc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix
@@ -0,0 +1,63 @@
+{ lib
+, nix-update-script
+, python3
+, fetchFromGitHub
+, cmake
+, ninja
+}:
+let
+  tree-sitter-bitbake = fetchFromGitHub {
+    owner = "amaanq";
+    repo = "tree-sitter-bitbake";
+    rev = "v1.0.0";
+    hash = "sha256-HfWUDYiBCmtlu5fFX287BSDHyCiD7gqIVFDTxH5APAE=";
+  };
+in
+python3.pkgs.buildPythonApplication rec {
+  pname = "bitbake-language-server";
+  version = "0.0.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Freed-Wu";
+    repo = pname;
+    rev = version;
+    hash = "sha256-UOeOvaQplDn7jM+3sUZip1f05TbczoaRQKMxVm+euDU=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    cmake
+    ninja
+    pathspec
+    pyproject-metadata
+    scikit-build-core
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    lsprotocol
+    platformdirs
+    pygls
+    tree-sitter
+  ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  # The scikit-build-core runs CMake internally so we must let it run the configure step itself.
+  dontUseCmakeConfigure = true;
+  SKBUILD_CMAKE_ARGS = lib.strings.concatStringsSep ";" [
+    "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
+    "-DFETCHCONTENT_QUIET=OFF"
+    "-DFETCHCONTENT_SOURCE_DIR_TREE-SITTER-BITBAKE=${tree-sitter-bitbake}"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Language server for bitbake";
+    homepage = "https://github.com/Freed-Wu/bitbake-language-server";
+    changelog = "https://github.com/Freed-Wu/bitbake-language-server/releases/tag/v${version}";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/bi/bitmagnet/package.nix b/nixpkgs/pkgs/by-name/bi/bitmagnet/package.nix
new file mode 100644
index 000000000000..a34802c5de1e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bitmagnet/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "bitmagnet";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "bitmagnet-io";
+    repo = "bitmagnet";
+    rev = "v${version}";
+    hash = "sha256-+KAIHg8M2CM+GRRv+htmev8MFe/Y1sJ8p+um/c7kI7c=";
+  };
+
+  vendorHash = "sha256-ydiZ3KMEiVkmdzhHjYYLJ7wuiKmwlMEn4OWrKSOnaSo=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = {
+    description = "A self-hosted BitTorrent indexer, DHT crawler, and torrent search engine";
+    longDescription = ''
+      A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration.
+    '';
+    homepage = "https://bitmagnet.io/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    mainProgram = "bitmagnet";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff b/nixpkgs/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff
new file mode 100644
index 000000000000..9b1267257ad1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff
@@ -0,0 +1,10 @@
+--- bmake/make-bootstrap.sh.in.orig     2019-02-19 10:55:21.733606117 -0800
++++ bmake/make-bootstrap.sh.in  2019-02-19 10:56:02.150771541 -0800
+@@ -4,6 +4,7 @@
+ 
+ srcdir=@srcdir@
+ 
++prefix="@prefix@"
+ DEFAULT_SYS_PATH="@default_sys_path@"
+ 
+ case "@use_meta@" in
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff b/nixpkgs/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff
new file mode 100644
index 000000000000..ab9399920c24
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff
@@ -0,0 +1,21 @@
+diff -Naur bmake-old/boot-strap bmake-new/boot-strap
+--- bmake-old/boot-strap	2023-06-27 18:02:19.000000000 -0300
++++ bmake-new/boot-strap	2023-07-23 22:31:02.334720661 -0300
+@@ -413,9 +413,6 @@
+ 	[ -s make-bootstrap.sh ] || op_configure
+ 	chmod 755 make-bootstrap.sh || exit 1
+ 	./make-bootstrap.sh || exit 1
+-	case "$op" in
+-	build) op_test;;
+-	esac
+ }
+ 
+ op_test() {
+@@ -434,7 +431,6 @@
+ }
+ 
+ op_install() {
+-	op_test
+ 	case "$INSTALL_PREFIX,$INSTALL_BIN,$prefix" in
+ 	,$HOST_TARGET/bin,*/$HOST_TARGET)
+ 		INSTALL_PREFIX=`dirname $prefix`
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/003-fix-unexport-env-test.diff b/nixpkgs/pkgs/by-name/bm/bmake/003-fix-unexport-env-test.diff
new file mode 100644
index 000000000000..fbf7225a6d6f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/003-fix-unexport-env-test.diff
@@ -0,0 +1,13 @@
+--- bmake/unit-tests/unexport-env.mk.orig	2021-05-27 14:44:45.263392298 +0200
++++ bmake/unit-tests/unexport-env.mk	2021-05-27 14:46:46.188881996 +0200
+@@ -4,8 +4,8 @@
+ FILTER_CMD=	grep ^UT_
+ .include "export.mk"
+ 
+-# an example of setting up a minimal environment.
+-PATH=	/bin:/usr/bin:/sbin:/usr/sbin
++# preserve PATH so commands used in the "all" target are still available
++PATH :=	${PATH}
+ 
+ # now clobber the environment to just PATH and UT_TEST
+ UT_TEST=	unexport-env
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/004-unconditional-ksh-test.diff b/nixpkgs/pkgs/by-name/bm/bmake/004-unconditional-ksh-test.diff
new file mode 100644
index 000000000000..117b85da16d1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/004-unconditional-ksh-test.diff
@@ -0,0 +1,12 @@
+--- bmake/unit-tests/Makefile.orig	2021-07-04 19:13:09.068094922 +0200
++++ bmake/unit-tests/Makefile	2021-07-04 19:13:14.630080696 +0200
+@@ -295,9 +295,7 @@
+ TESTS+=		sh-single-line
+ TESTS+=		shell-csh
+ TESTS+=		shell-custom
+-.if exists(/bin/ksh)
+ TESTS+=		shell-ksh
+-.endif
+ TESTS+=		shell-sh
+ TESTS+=		suff-add-later
+ TESTS+=		suff-clear-regular
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/package.nix b/nixpkgs/pkgs/by-name/bm/bmake/package.nix
new file mode 100644
index 000000000000..2626c45f0215
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/package.nix
@@ -0,0 +1,118 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, getopt
+, ksh
+, bc
+, tzdata
+, pkgsMusl # for passthru.tests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bmake";
+  version = "20230909";
+
+  src = fetchurl {
+    url = "http://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
+    hash = "sha256-Hl5sdlQN/oEEQmzX/T9xXMZAT5A5ySA0RwErjy9re4Y=";
+  };
+
+  patches = [
+    # make bootstrap script aware of the prefix in /nix/store
+    ./001-bootstrap-fix.diff
+    # decouple tests from build phase
+    ./002-dont-test-while-installing.diff
+    # preserve PATH from build env in unit tests
+    ./003-fix-unexport-env-test.diff
+    # Always enable ksh test since it checks in a impure location /bin/ksh
+    ./004-unconditional-ksh-test.diff
+  ];
+
+  # Make tests work with musl
+  # * Disable deptgt-delete_on_error test (alpine does this too)
+  # * Disable shell-ksh test (ksh doesn't compile with musl)
+  # * Fix test failing due to different strerror(3) output for musl and glibc
+  postPatch = lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
+    sed -i unit-tests/Makefile \
+      -e '/deptgt-delete_on_error/d' \
+      -e '/shell-ksh/d'
+    substituteInPlace unit-tests/opt-chdir.exp --replace "File name" "Filename"
+  '';
+
+  nativeBuildInputs = [ getopt ];
+
+  # The generated makefile is a small wrapper for calling ./boot-strap with a
+  # given op. On a case-insensitive filesystem this generated makefile clobbers
+  # a distinct, shipped, Makefile and causes infinite recursion during tests
+  # which eventually fail with "fork: Resource temporarily unavailable"
+  configureFlags = [
+    "--without-makefile"
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ./boot-strap --prefix=$out -o . op=build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./boot-strap --prefix=$out -o . op=install
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+
+  nativeCheckInputs = [
+    bc
+    tzdata
+  ] ++ lib.optionals (stdenv.hostPlatform.libc != "musl") [
+    ksh
+  ];
+
+  # Disabled tests:
+  # directive-export{,-gmake}: another failure related to TZ variables
+  # opt-chdir: ofborg complains about it somehow
+  # opt-keep-going-indirect: not yet known
+  # varmod-localtime: musl doesn't support TZDIR and this test relies on impure,
+  # implicit paths
+  env.BROKEN_TESTS = builtins.concatStringsSep " " [
+    "directive-export"
+    "directive-export-gmake"
+    "opt-chdir" # works on my machine -- AndersonTorres
+    "opt-keep-going-indirect"
+    "varmod-localtime"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    ./boot-strap -o . op=test
+
+    runHook postCheck
+  '';
+
+  strictDeps = true;
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.tests.bmakeMusl = pkgsMusl.bmake;
+
+  meta = {
+    homepage = "http://www.crufty.net/help/sjg/bmake.html";
+    description = "Portable version of NetBSD 'make'";
+    license = lib.licenses.bsd3;
+    mainProgram = "bmake";
+    maintainers = with lib.maintainers; [ thoughtpolice AndersonTorres ];
+    platforms = lib.platforms.unix;
+    # ofborg: x86_64-linux builds the musl package, aarch64-linux doesn't
+    broken = stdenv.targetPlatform.isMusl && stdenv.buildPlatform.isAarch64;
+  };
+})
+# TODO: report the quirks and patches to bmake devteam (especially the Musl one)
+# TODO: investigate Musl support
diff --git a/nixpkgs/pkgs/by-name/bm/bmake/setup-hook.sh b/nixpkgs/pkgs/by-name/bm/bmake/setup-hook.sh
new file mode 100644
index 000000000000..a36d024b111e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bm/bmake/setup-hook.sh
@@ -0,0 +1,122 @@
+# shellcheck shell=bash disable=SC2086,SC2154,SC2206
+
+addMakeFlags() {
+    export prefix="$out"
+    export MANDIR="${!outputMan}/share/man"
+    export MANTARGET=man
+    export BINOWN=
+    export STRIP_FLAG=
+}
+
+bmakeBuildPhase() {
+    runHook preBuild
+
+    local flagsArray=(
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
+        SHELL="$SHELL"
+        $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+        $buildFlags ${buildFlagsArray+"${buildFlagsArray[@]}"}
+    )
+
+    echoCmd 'build flags' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+bmakeCheckPhase() {
+    runHook preCheck
+
+    if [ -z "${checkTarget:-}" ]; then
+        #TODO(@oxij): should flagsArray influence make -n?
+        if bmake -n ${makefile:+-f $makefile} check >/dev/null 2>&1; then
+            checkTarget="check"
+        elif bmake -n ${makefile:+-f $makefile} test >/dev/null 2>&1; then
+            checkTarget="test"
+        fi
+    fi
+
+    if [ -z "${checkTarget:-}" ]; then
+        echo "no test target found in bmake, doing nothing"
+    else
+        local flagsArray=(
+            ${enableParallelChecking:+-j${NIX_BUILD_CORES}}
+            SHELL="$SHELL"
+            # Old bash empty array hack
+            $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+            ${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"}
+            ${checkTarget}
+        )
+
+        echoCmd 'check flags' "${flagsArray[@]}"
+        bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+    fi
+
+    runHook postCheck
+}
+
+bmakeInstallPhase() {
+    runHook preInstall
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    local flagsArray=(
+        ${enableParallelInstalling:+-j${NIX_BUILD_CORES}}
+        SHELL="$SHELL"
+        # Old bash empty array hack
+        $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+        $installFlags ${installFlagsArray+"${installFlagsArray[@]}"}
+        ${installTargets:-install}
+    )
+
+    echoCmd 'install flags' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+bmakeDistPhase() {
+    runHook preDist
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    # Old bash empty array hack
+    local flagsArray=(
+        $distFlags ${distFlagsArray+"${distFlagsArray[@]}"} ${distTarget:-dist}
+    )
+
+    echo 'dist flags: %q' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+    if [ "${dontCopyDist:-0}" != 1 ]; then
+        mkdir -p "$out/tarballs"
+
+        # Note: don't quote $tarballs, since we explicitly permit
+        # wildcards in there.
+        cp -pvd ${tarballs:-*.tar.gz} "$out/tarballs"
+    fi
+
+    runHook postDist
+}
+
+preConfigureHooks+=(addMakeFlags)
+
+if [ -z "${dontUseBmakeBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=bmakeBuildPhase
+fi
+
+if [ -z "${dontUseBmakeCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=bmakeCheckPhase
+fi
+
+if [ -z "${dontUseBmakeInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=bmakeInstallPhase
+fi
+
+if [ -z "${dontUseBmakeDist-}" ] && [ -z "${distPhase-}" ]; then
+    distPhase=bmakeDistPhase
+fi
diff --git a/nixpkgs/pkgs/by-name/bo/bochs/package.nix b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
new file mode 100644
index 000000000000..803d6ae2852e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
@@ -0,0 +1,151 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, curl
+, darwin
+, docbook_xml_dtd_45
+, docbook_xsl
+, gtk3
+, libGL
+, libGLU
+, libX11
+, libXpm
+, libtool
+, ncurses
+, pkg-config
+, readline
+, wget
+, wxGTK32
+, enableSDL2 ? true
+, enableTerm ? true
+, enableWx ? !stdenv.isDarwin
+, enableX11 ? !stdenv.isDarwin
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bochs";
+  version = "2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bochs/bochs/${finalAttrs.version}/bochs-${finalAttrs.version}.tar.gz";
+    hash = "sha256-oBCrG/3HKsWgjS4kEs1HHA/r1mrx2TSbwNeWh53lsXo=";
+  };
+
+  nativeBuildInputs = [
+    docbook_xml_dtd_45
+    docbook_xsl
+    libtool
+    pkg-config
+  ];
+
+  buildInputs = [
+    curl
+    readline
+    wget
+  ] ++ lib.optionals enableSDL2 [
+    SDL2
+  ] ++ lib.optionals enableTerm [
+    ncurses
+  ] ++ lib.optionals enableWx [
+    gtk3
+    wxGTK32
+  ] ++ lib.optionals enableX11 [
+    libGL
+    libGLU
+    libX11
+    libXpm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+  ];
+
+  configureFlags = [
+    "--with-rfb=no"
+    "--with-vncsrv=no"
+    "--with-nogui"
+
+    # These will always be "yes" on NixOS
+    "--enable-ltdl-install=yes"
+    "--enable-readline=yes"
+    "--enable-all-optimizations=yes"
+    "--enable-logging=yes"
+    "--enable-xpm=yes"
+
+    # ... whereas these, always "no"!
+    "--enable-cpp=no"
+    "--enable-instrumentation=no"
+
+    "--enable-docbook=no" # Broken - it requires docbook2html
+
+    # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
+    "--enable-3dnow=no"
+    "--enable-monitor-mwait=no"
+    "--enable-raw-serial=no"
+
+    # These are completely configurable, and they don't depend of external tools
+    "--enable-a20-pin"
+    "--enable-avx"
+    "--enable-busmouse"
+    "--enable-cdrom"
+    "--enable-clgd54xx"
+    "--enable-configurable-msrs"
+    "--enable-cpu-level=6" # from 3 to 6
+    "--enable-debugger" #conflicts with gdb-stub option
+    "--enable-debugger-gui"
+    "--enable-evex"
+    "--enable-fpu"
+    "--enable-gdb-stub=no" # conflicts with debugger option
+    "--enable-handlers-chaining"
+    "--enable-idle-hack"
+    "--enable-iodebug"
+    "--enable-large-ramfile"
+    "--enable-largefile"
+    "--enable-pci"
+    "--enable-repeat-speedups"
+    "--enable-show-ips"
+    "--enable-smp"
+    "--enable-vmx=2"
+    "--enable-svm"
+    "--enable-trace-linking"
+    "--enable-usb"
+    "--enable-usb-ehci"
+    "--enable-usb-ohci"
+    "--enable-usb-xhci"
+    "--enable-voodoo"
+    "--enable-x86-64"
+    "--enable-x86-debugger"
+  ] ++ lib.optionals enableSDL2 [
+    "--with-sdl2"
+  ] ++ lib.optionals enableTerm [
+    "--with-term"
+  ] ++ lib.optionals enableWx [
+    "--with-wx"
+  ] ++ lib.optionals enableX11 [
+    "--with-x"
+    "--with-x11"
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "--enable-e1000"
+    "--enable-es1370"
+    "--enable-ne2000"
+    "--enable-plugins"
+    "--enable-pnic"
+    "--enable-sb16"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://bochs.sourceforge.io/";
+    description = "An open-source IA-32 (x86) PC emulator";
+    longDescription = ''
+      Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written
+      in C++, that runs on most popular platforms. It includes emulation of the
+      Intel x86 CPU, common I/O devices, and a custom BIOS.
+    '';
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
+# TODO: a better way to organize the options
+# TODO: docbook (docbook-tools from RedHat mirrors should help)
diff --git a/nixpkgs/pkgs/by-name/bo/boogie/deps.nix b/nixpkgs/pkgs/by-name/bo/boogie/deps.nix
new file mode 100644
index 000000000000..a1a408acb9dc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/boogie/deps.nix
@@ -0,0 +1,197 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "CocoR"; version = "2014.12.24"; sha256 = "0ps8h7aawkcc1910qnh13llzb01pvgsjmg862pxp0p4wca2dn7a2"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.2.0"; sha256 = "07h1ylca2j7a4hznq4m4b8nrzv1lw7gcf848k2a3nbm6rapv61ki"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.2.0"; sha256 = "1nr5jxchdy3p7jm4fm73d5yivghjisdsyafma8fs5d1v49bhgckq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.2.0"; sha256 = "1ywzyx75d61wm75l7wglxzglg5k9nq66wd56m52hmmg8mf253z57"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.2.0"; sha256 = "05dx9nv1skc5ji79ji5vz6c93b09w9xh70iyy6j5ca978ga92i6g"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.0.0"; sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
+  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.15.1"; sha256 = "1nhpvzxbxgymmkb3bd5ci40rg8k71bfx2ghbgc99znvnvhf2034y"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "StyleCop.Analyzers"; version = "1.1.118"; sha256 = "0hj4ax64cay2lvrh9693m0g4pmis0fi5wpm12xwzvc7lkizvac0a"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.2.0"; sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.0.1"; sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.0.1"; sha256 = "0v4qpmqlzyfad2kswxxj2frnaqqhz9201c3yn8fmmarx5vlzg52z"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
+  (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.0.11"; sha256 = "07r5i7xwban347nsfw28hhjwpr78ywksjyhywvhj1yr0s7sr00wh"; })
+  (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.1.0"; sha256 = "0wb5mnaag0w4fnyc40x19j8v2vshxp266razw64bcqfyj1whb1q0"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.1.0"; sha256 = "178cva9p1cs043h5n2fry5xkzr3wc9n0hwbxa8m3ymld9m6wcv0y"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "6.0.0"; sha256 = "0sqapr697jbb4ljkq46msg0xx1qpmc31ivva6llyz2wzq3mpmxbw"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
+  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.1.0"; sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s"; })
+  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
+  (fetchNuGet { pname = "System.Diagnostics.TextWriterTraceListener"; version = "4.0.0"; sha256 = "1xigiwkwyxak0dhm0p8i2zb7a9syly9cdb5s9zkr9rbad4f2fqhs"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.0.0"; sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; sha256 = "10ira8hmv0i54yp9ggrrdm1c06j538sijfjpn1kmnh9j2xk5yzmq"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.Private.DataContractSerialization"; version = "4.1.1"; sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reactive"; version = "4.4.1"; sha256 = "0gx8jh3hny2y5kijz5k9pxiqw481d013787c04zlhps21ygklw4a"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.3.0"; sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.Caching"; version = "6.0.0"; sha256 = "0wh98a77cby4i3h2mar241k01105x661kh03vlyd399shxkfk60a"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Loader"; version = "4.0.0"; sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Json"; version = "4.0.2"; sha256 = "08ypbzs0sb302ga04ds5b2wxa2gg0q50zpa0nvc87ipjhs0v66dn"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "6.0.0"; sha256 = "05kd3a8w7658hjxq9vvszxip30a479fjmfq4bq1r95nrsvs4hbss"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "6.0.0"; sha256 = "0jsl4xdrkqi11iwmisi1r2f2qn5pbvl79mzq877gndw6ans2zhzw"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.0.10"; sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Windows.Extensions"; version = "6.0.0"; sha256 = "1wy9pq9vn1bqg5qnv53iqrbx04yzdmjw4x5yyi09y3459vaa1sip"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.0.1"; sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
+  (fetchNuGet { pname = "System.Xml.XmlSerializer"; version = "4.0.11"; sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.0.1"; sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.0.1"; sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
+]
diff --git a/nixpkgs/pkgs/by-name/bo/boogie/install-check-file.bpl b/nixpkgs/pkgs/by-name/bo/boogie/install-check-file.bpl
new file mode 100644
index 000000000000..8548c612d06e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/boogie/install-check-file.bpl
@@ -0,0 +1,61 @@
+// RUN: %parallel-boogie "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+type X;
+
+function {:builtin "MapAdd"} mapadd([X]int, [X]int) : [X]int;
+function {:builtin "MapSub"} mapsub([X]int, [X]int) : [X]int;
+function {:builtin "MapMul"} mapmul([X]int, [X]int) : [X]int;
+function {:builtin "MapDiv"} mapdiv([X]int, [X]int) : [X]int;
+function {:builtin "MapMod"} mapmod([X]int, [X]int) : [X]int;
+function {:builtin "MapConst"} mapconstint(int) : [X]int;
+function {:builtin "MapConst"} mapconstbool(bool) : [X]bool;
+function {:builtin "MapAnd"} mapand([X]bool, [X]bool) : [X]bool;
+function {:builtin "MapOr"} mapor([X]bool, [X]bool) : [X]bool;
+function {:builtin "MapNot"} mapnot([X]bool) : [X]bool;
+function {:builtin "MapIte"} mapiteint([X]bool, [X]int, [X]int) : [X]int;
+function {:builtin "MapIte"} mapitebool([X]bool, [X]bool, [X]bool) : [X]bool;
+function {:builtin "MapLe"} maple([X]int, [X]int) : [X]bool;
+function {:builtin "MapLt"} maplt([X]int, [X]int) : [X]bool;
+function {:builtin "MapGe"} mapge([X]int, [X]int) : [X]bool;
+function {:builtin "MapGt"} mapgt([X]int, [X]int) : [X]bool;
+function {:builtin "MapEq"} mapeq([X]int, [X]int) : [X]bool;
+function {:builtin "MapIff"} mapiff([X]bool, [X]bool) : [X]bool;
+function {:builtin "MapImp"} mapimp([X]bool, [X]bool) : [X]bool;
+
+
+
+const FF: [X]bool;
+axiom FF == mapconstbool(false);
+
+const TT: [X]bool;
+axiom TT == mapconstbool(true);
+
+const MultisetEmpty: [X]int;
+axiom MultisetEmpty == mapconstint(0);
+
+function {:inline} MultisetSingleton(x: X) : [X]int
+{
+  MultisetEmpty[x := 1]
+}
+
+function {:inline} MultisetPlus(a: [X]int, b: [X]int) : [X]int
+{
+  mapadd(a, b)
+}
+
+function {:inline} MultisetMinus(a: [X]int, b: [X]int)  : [X]int
+{
+  mapiteint(mapgt(a, b), mapsub(a, b), mapconstint(0))
+}
+
+procedure foo() {
+  var x: X;
+
+  assert FF != TT;
+  assert mapnot(FF) == TT;
+
+  assert MultisetSingleton(x) != MultisetEmpty;
+  assert MultisetPlus(MultisetEmpty, MultisetSingleton(x)) == MultisetSingleton(x);
+  assert MultisetMinus(MultisetPlus(MultisetEmpty, MultisetSingleton(x)), MultisetSingleton(x)) == MultisetEmpty;
+  assert MultisetMinus(MultisetEmpty, MultisetSingleton(x)) == MultisetEmpty;
+}
diff --git a/nixpkgs/pkgs/by-name/bo/boogie/package.nix b/nixpkgs/pkgs/by-name/bo/boogie/package.nix
new file mode 100644
index 000000000000..2080271e8a40
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/boogie/package.nix
@@ -0,0 +1,57 @@
+{ lib, buildDotnetModule, fetchFromGitHub, z3 }:
+
+buildDotnetModule rec {
+  pname = "Boogie";
+  version = "3.0.5";
+
+  src = fetchFromGitHub {
+    owner = "boogie-org";
+    repo = "boogie";
+    rev = "v${version}";
+    sha256 = "sha256-KciQakwus7cKjtfp5x8nDV7bbTXlzILcL3ivCJAV6Vk=";
+  };
+
+  projectFile = [ "Source/Boogie.sln" ];
+  nugetDeps = ./deps.nix;
+
+  executables = [ "BoogieDriver" ];
+
+  makeWrapperArgs = [
+    "--prefix PATH : ${z3}/bin"
+  ];
+
+  postInstall = ''
+      # so that this derivation can be used as a vim plugin to install syntax highlighting
+      vimdir=$out/share/vim-plugins/boogie
+      install -Dt $vimdir/syntax/ Util/vim/syntax/boogie.vim
+      mkdir $vimdir/ftdetect
+      echo 'au BufRead,BufNewFile *.bpl set filetype=boogie' > $vimdir/ftdetect/bpl.vim
+      mkdir -p $out/share/nvim
+      ln -s $out/share/vim-plugins/boogie $out/share/nvim/site
+  '';
+
+  postFixup = ''
+      ln -s "$out/bin/BoogieDriver" "$out/bin/boogie"
+      rm -f $out/bin/{Microsoft,NUnit3,System}.* "$out/bin"/*Tests
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/boogie ${./install-check-file.bpl}
+  '';
+
+  meta = with lib; {
+    description = "An intermediate verification language";
+    homepage = "https://github.com/boogie-org/boogie";
+    longDescription = ''
+      Boogie is an intermediate verification language (IVL), intended as a
+      layer on which to build program verifiers for other languages.
+
+      This derivation may be used as a vim plugin to provide syntax highlighting.
+    '';
+    license = licenses.mspl;
+    maintainers = [ maintainers.taktoa ];
+    platforms = with platforms; (linux ++ darwin);
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/br/bruno/package.nix b/nixpkgs/pkgs/by-name/br/bruno/package.nix
new file mode 100644
index 000000000000..b058449ea224
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/br/bruno/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, wrapGAppsHook
+, alsa-lib
+, gtk3
+, mesa
+, nspr
+, nss
+, systemd
+, nix-update-script
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bruno";
+  version = "0.27.0";
+
+  src = fetchurl {
+    url = "https://github.com/usebruno/bruno/releases/download/v${version}/bruno_${version}_amd64_linux.deb";
+    hash = "sha256-57Cbp/+3rNq/bhUItPuN6ZIjSd8IzmJsn9FNm89khiE=";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook ];
+
+  buildInputs = [
+    alsa-lib
+    gtk3
+    mesa
+    nspr
+    nss
+  ];
+
+  runtimeDependencies = [ (lib.getLib systemd) ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p "$out/bin"
+    cp -R opt $out
+    cp -R "usr/share" "$out/share"
+    ln -s "$out/opt/Bruno/bruno" "$out/bin/bruno"
+    chmod -R g-w "$out"
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    substituteInPlace "$out/share/applications/bruno.desktop" \
+      --replace "/opt/Bruno/bruno" "$out/bin/bruno"
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Open-source IDE For exploring and testing APIs.";
+    homepage = "https://www.usebruno.com";
+    license = licenses.mit;
+    maintainers = with maintainers; [ water-sucks lucasew ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix
new file mode 100644
index 000000000000..76f21c1ca027
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix
@@ -0,0 +1,36 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-bump";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "rustadopt";
+    repo = "cargo-bump";
+    rev = "v${version}";
+    hash = "sha256-PhA7uC2gJcBnUQPWgZC51p/KTSxSGld3m+dd6BhW6q8=";
+  };
+
+  cargoHash = "sha256-mp2y5q0GYfSlB5aPC6MY9Go8a2JAiPKtVYL9SewfloI=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  meta = with lib; {
+    description = "Increments the version number of the current project.";
+    homepage = "https://github.com/wraithan/cargo-bump";
+    license = with licenses; [ isc ];
+    maintainers = with maintainers; [ cafkafk ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-i18n/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-i18n/package.nix
new file mode 100644
index 000000000000..158d22f97b03
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-i18n/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-i18n";
+  version = "0.2.12";
+
+  src = fetchFromGitHub {
+    owner = "kellpossible";
+    repo = "cargo-i18n";
+    rev = "v${version}";
+    hash = "sha256-ck0GYy9DLngOunpItGQ4+qrlzaWDk0zTnIzuRQt2/Gw=";
+  };
+
+  cargoHash = "sha256-nvZx2wJDs7PZQLCl8Hrf2blR+lNUBVr6k664VSVQ5iI=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  cargoTestFlags = [ "--lib" ];
+
+  meta = with lib; {
+    description = "Rust Cargo sub-command and libraries to extract and build localization resources to embed in your application/library";
+    homepage = "https://github.com/kellpossible/cargo-i18n";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "cargo-i18n";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix
new file mode 100644
index 000000000000..48ab5f4ba981
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix
@@ -0,0 +1,25 @@
+{ lib, rustPlatform, fetchCrate, stdenv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-rdme";
+  version = "1.4.2";
+
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-ZveL/6iWxnEz13iHdTjDA4JT29CbvWjrIvblI65XuMM=";
+  };
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    Security
+  ];
+
+  cargoHash = "sha256-8srwz5p9NY+ymDpqSvG68oIHibSurdtrjBkG6TrZO70=";
+
+  meta = with lib; {
+    description = "Cargo command to create the README.md from your crate's documentation";
+    homepage = "https://github.com/orium/cargo-rdme";
+    changelog = "https://github.com/orium/cargo-rdme/blob/v${version}/release-notes.md";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ GoldsteinE ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix
new file mode 100644
index 000000000000..36d60fb509de
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-xwin";
+  version = "0.14.8";
+
+  src = fetchFromGitHub {
+    owner = "rust-cross";
+    repo = "cargo-xwin";
+    rev = "v${version}";
+    hash = "sha256-VhpqmGhGBqB20ZteIwbd0GCIUltBGfBw7XF9lH7witA=";
+  };
+
+  cargoHash = "sha256-e5QyaiQKlIzBwJE781BrhdVINacw0iniPywIsoMlCGg=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  meta = with lib; {
+    description = "Cross compile Cargo project to Windows MSVC target with ease";
+    homepage = "https://github.com/rust-cross/cargo-xwin";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ shivaraj-bh ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cb/cbmbasic/package.nix b/nixpkgs/pkgs/by-name/cb/cbmbasic/package.nix
new file mode 100644
index 000000000000..a7d6d841012f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cb/cbmbasic/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, runCommand
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cbmbasic";
+  version = "unstable-2022-12-18";
+
+  src = fetchFromGitHub {
+    owner = "mist64";
+    repo = "cbmbasic";
+    rev = "352a313313dd0a15a47288c8f8031b54ac8c92a2";
+    hash = "sha256-aA/ivRap+aDd2wi6KWXam9eP/21lOn6OWTeZ4i/S9Bs=";
+  };
+
+  installPhase = ''
+  runHook preInstall
+
+  mkdir -p $out/bin/
+  mv cbmbasic $out/bin/
+
+  runHook postInstall
+  '';
+
+  # NOTE: cbmbasic uses microsoft style linebreaks `\r\n`, and testing has to
+  # accommodate that, else you get very cryptic diffs
+  passthru = {
+    tests.run = runCommand "cbmbasic-test-run" {
+      nativeBuildInputs = [finalAttrs.finalPackage];
+    } ''
+      echo '#!${lib.getExe finalAttrs.finalPackage}' > helloI.bas;
+      echo 'PRINT"Hello, World!"' >> helloI.bas;
+      chmod +x helloI.bas
+
+      diff -U3 --color=auto <(./helloI.bas) <(echo -e "Hello, World!\r");
+
+      echo '#!/usr/bin/env cbmbasic' > hello.bas;
+      echo 'PRINT"Hello, World!"' >> hello.bas;
+      chmod +x hello.bas
+
+      diff -U3 --color=auto <(cbmbasic ./hello.bas) <(echo -e "Hello, World!\r");
+
+      touch $out;
+    '';
+  };
+
+  meta = with lib; {
+    description = "Portable version of Commodore's version of Microsoft BASIC 6502 as found on the Commodore 64";
+    longDescription = ''
+      "Commodore BASIC" (cbmbasic) is a 100% compatible version of Commodore's
+      version of Microsoft BASIC 6502 as found on the Commodore 64. You can use
+      it in interactive mode or pass a BASIC file as a command line parameter.
+
+      This source does not emulate 6502 code; all code is completely native. On
+      a 1 GHz CPU you get about 1000x speed compared to a 1 MHz 6502.
+    '';
+    homepage =  "https://github.com/mist64/cbmbasic";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.cafkafk ];
+    mainProgram = "cbmbasic";
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cd/cdk/package.nix b/nixpkgs/pkgs/by-name/cd/cdk/package.nix
new file mode 100644
index 000000000000..410e341cf0fc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cd/cdk/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cdk";
+  version = "5.0-20230201";
+
+  src = fetchurl {
+    url = "https://invisible-mirror.net/archives/cdk/cdk-${finalAttrs.version}.tgz";
+    hash = "sha256-oxJ7Wf5QX16Jjao90VsM9yShJ0zmgWW3eb4vKdTE8vY=";
+  };
+
+  buildInputs = [
+    ncurses
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Curses development kit";
+    homepage = "https://invisible-island.net/cdk/";
+    changelog = "https://invisible-island.net/cdk/CHANGES.html";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ raskin AndersonTorres ];
+    inherit (ncurses.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cd/cdwe/package.nix b/nixpkgs/pkgs/by-name/cd/cdwe/package.nix
new file mode 100644
index 000000000000..9f20c8019902
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cd/cdwe/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cdwe";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "synoet";
+    repo = "cdwe";
+    rev = version;
+    hash = "sha256-6NWhx82BXhWhbI18k5gE3vEkw9v5gstE8ICJhtq68rM=";
+  };
+
+  cargoHash = "sha256-V2eWVoRtfjHLe2AypYekUFzMnuV8RYU9Pb7Q1U3fwp4=";
+
+  meta = with lib; {
+    description = "A configurable cd wrapper that lets you define your environment per directory";
+    homepage = "https://github.com/synoet/cdwe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "cdwe";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ce/celluloid/package.nix b/nixpkgs/pkgs/by-name/ce/celluloid/package.nix
new file mode 100644
index 000000000000..c0ada66edc60
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ce/celluloid/package.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, glib
+, gtk4
+, libepoxy
+, libadwaita
+, meson
+, mpv
+, ninja
+, nix-update-script
+, pkg-config
+, python3
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "celluloid";
+  version = "0.26";
+
+  src = fetchFromGitHub {
+    owner = "celluloid-player";
+    repo = "celluloid";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-npaagLlkwDe0r0hqj7buM4B9sbLCX1sR2yFXXj+obdE=";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    libadwaita
+    libepoxy
+    mpv
+  ];
+
+  postPatch = ''
+    patchShebangs meson-post-install.py src/generate-authors.py
+  '';
+
+  strictDeps = true;
+
+  doCheck = true;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/celluloid-player/celluloid";
+    description = "Simple GTK frontend for the mpv video player";
+    longDescription = ''
+      Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv.
+      Celluloid interacts with mpv via the client API exported by libmpv,
+      allowing access to mpv's powerful playback capabilities.
+    '';
+    changelog = "https://github.com/celluloid-player/celluloid/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "celluloid";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix b/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix
new file mode 100644
index 000000000000..3d0612071609
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "cidr-merger";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "zhanhb";
+    repo = "cidr-merger";
+    rev = "v${version}";
+    sha256 = "sha256-Kb+89VP7JhBrTE4MM3H/dqoIBgDLnVhKqkgHdymYCgk=";
+  };
+
+  vendorHash = "sha256-cPri384AX/FdfNtzt3xj4bF+/izSa4sZuAohK0R/7H4=";
+
+  meta = with lib; {
+    description = "A simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6";
+    homepage = "https://github.com/zhanhb/cidr-merger";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cyounkins ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ci/cimg/package.nix b/nixpkgs/pkgs/by-name/ci/cimg/package.nix
new file mode 100644
index 000000000000..fdc8724af614
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ci/cimg/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gmic
+, gmic-qt
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cimg";
+  version = "3.3.1";
+
+  src = fetchFromGitHub {
+    owner = "GreycLab";
+    repo = "CImg";
+    rev = "v.${finalAttrs.version}";
+    hash = "sha256-Y3UPfBH+Sa1f529J1JXx8Ul0zi3b1mkOvo1tbxBSYRk=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm 755 $out/include/CImg/plugins $doc/share/doc/cimg/examples
+    install -m 644 CImg.h $out/include/
+    cp -dr --no-preserve=ownership plugins/* $out/include/CImg/plugins/
+    cp -dr --no-preserve=ownership examples/* $doc/share/doc/cimg/examples/
+    cp README.txt $doc/share/doc/cimg/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    # Needs to update them all in lockstep.
+    inherit gmic gmic-qt;
+  };
+
+  meta = {
+    homepage = "http://cimg.eu/";
+    description = "A small, open source, C++ toolkit for image processing";
+    longDescription = ''
+      CImg stands for Cool Image. It is easy to use, efficient and is intended
+      to be a very pleasant toolbox to design image processing algorithms in
+      C++. Due to its generic conception, it can cover a wide range of image
+      processing applications.
+    '';
+    license = lib.licenses.cecill-c;
+    maintainers = [
+      lib.maintainers.AndersonTorres
+      lib.maintainers.lilyinstarlight
+    ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ci/circle-flags/package.nix b/nixpkgs/pkgs/by-name/ci/circle-flags/package.nix
new file mode 100644
index 000000000000..eed82fbdbb47
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ci/circle-flags/package.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, nix-update-script
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "circle-flags";
+  version = "2.7.0";
+
+  src = fetchFromGitHub {
+    owner = "HatScripts";
+    repo = "circle-flags";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-/+f5MDRW+tRH+jMtl3XuVPBShgy2PlD3NY+74mJa2Qk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share
+    mv flags $out/share/circle-flags-svg
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    homepage = "https://github.com/HatScripts/circle-flags";
+    description = "Collection of 400+ minimal circular SVG country and state flags";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bobby285271 ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer7/package.nix b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer7/package.nix
new file mode 100644
index 000000000000..620e7420439b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer7/package.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, lib
+, buildFHSEnv
+, copyDesktopItems
+, dpkg
+, lndir
+, makeDesktopItem
+, makeWrapper
+, requireFile
+}:
+
+let
+  version = "7.3.1";
+
+  ptFiles = stdenv.mkDerivation {
+    name = "PacketTracer7drv";
+    inherit version;
+
+    dontUnpack = true;
+    src = requireFile {
+      name = "PacketTracer_${builtins.replaceStrings ["."] [""] version}_amd64.deb";
+      sha256 = "c39802d15dd61d00ba27fb8c116da45fd8562ab4b49996555ad66b88deace27f";
+      url = "https://www.netacad.com";
+    };
+
+    nativeBuildInputs = [ dpkg makeWrapper ];
+
+    installPhase = ''
+      dpkg-deb -x $src $out
+      makeWrapper "$out/opt/pt/bin/PacketTracer7" "$out/bin/packettracer7" \
+          --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
+    '';
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "cisco-pt7.desktop";
+    desktopName = "Cisco Packet Tracer 7";
+    icon = "${ptFiles}/opt/pt/art/app.png";
+    exec = "packettracer7 %f";
+    mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ];
+  };
+
+  fhs = buildFHSEnv {
+    name = "packettracer7";
+    runScript = "${ptFiles}/bin/packettracer7";
+
+    targetPkgs = pkgs: with pkgs; [
+      alsa-lib
+      dbus
+      expat
+      fontconfig
+      glib
+      libglvnd
+      libpulseaudio
+      libudev0-shim
+      libxkbcommon
+      libxml2
+      libxslt
+      nspr
+      nss
+      xorg.libICE
+      xorg.libSM
+      xorg.libX11
+      xorg.libXScrnSaver
+    ];
+  };
+in stdenv.mkDerivation {
+  pname = "ciscoPacketTracer7";
+  inherit version;
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir $out
+    ${lndir}/bin/lndir -silent ${fhs} $out
+  '';
+
+  desktopItems = [ desktopItem ];
+
+  nativeBuildInputs = [ copyDesktopItems ];
+
+  meta = with lib; {
+    description = "Network simulation tool from Cisco";
+    homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ lucasew ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
new file mode 100644
index 000000000000..5784c156e956
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
@@ -0,0 +1,118 @@
+{ stdenvNoCC
+, lib
+, alsa-lib
+, autoPatchelfHook
+, buildFHSEnv
+, ciscoPacketTracer8
+, copyDesktopItems
+, dbus
+, dpkg
+, expat
+, fontconfig
+, glib
+, libdrm
+, libglvnd
+, libpulseaudio
+, libudev0-shim
+, libxkbcommon
+, libxml2
+, libxslt
+, lndir
+, makeDesktopItem
+, makeWrapper
+, nspr
+, nss
+, qt5
+, requireFile
+, xorg
+}:
+
+let
+  hashes = {
+    "8.2.0" = "1b19885d59f6130ee55414fb02e211a1773460689db38bfd1ac7f0d45117ed16";
+    "8.2.1" = "1fh79r4fnh9gjxjh39gcp4j7npgs5hh3qhrhx74x8x546an3i0s2";
+  };
+in
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ciscoPacketTracer8";
+
+  version = "8.2.1";
+
+  src = requireFile {
+    name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb";
+    sha256 = hashes.${version};
+    url = "https://www.netacad.com";
+  };
+
+  unpackPhase = ''
+    runHook preUnpack
+
+    dpkg-deb -x $src $out
+    chmod 755 "$out"
+
+    runHook postUnpack
+  '';
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    copyDesktopItems
+    dpkg
+    makeWrapper
+    qt5.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    alsa-lib
+    dbus
+    expat
+    fontconfig
+    glib
+    qt5.qtbase
+    qt5.qtmultimedia
+    qt5.qtnetworkauth
+    qt5.qtscript
+    qt5.qtspeech
+    qt5.qtwebengine
+    qt5.qtwebsockets
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer8" \
+      "''${qtWrapperArgs[@]}" \
+      --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
+
+    install -D $out/opt/pt/art/app.png $out/share/icons/hicolor/128x128/apps/ciscoPacketTracer8.png
+
+    rm $out/opt/pt/bin/libQt5* -f
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "cisco-pt8.desktop";
+      desktopName = "Cisco Packet Tracer 8";
+      icon = "ciscoPacketTracer8";
+      exec = "packettracer8 %f";
+      mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ];
+    })
+  ];
+
+  dontWrapQtApps = true;
+
+  passthru = {
+    inherit hashes;
+  };
+
+  meta = with lib; {
+    description = "Network simulation tool from Cisco";
+    homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ lucasew ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cl/clarity-city/package.nix b/nixpkgs/pkgs/by-name/cl/clarity-city/package.nix
new file mode 100644
index 000000000000..3d3fc445d7ad
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clarity-city/package.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "clarity-city";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "vmware";
+    repo = "clarity-city";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-1POSdd2ICnyNNmGadIujezNK8qvARD0kkLR4yWjs5kA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 TrueType/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 OpenType/*.otf -t $out/share/fonts/opentype
+    install -Dm644 Webfonts/EOT/*.eot -t $out/share/fonts/eot
+    install -Dm644 Webfonts/WOFF/*.woff -t $out/share/fonts/woff
+    install -Dm644 Webfonts/WOFF2/*.woff2 -t $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An open source sans-serif typeface";
+    homepage = "https://github.com/vmware/clarity-city";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ sagikazarmark ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cl/clzip/package.nix b/nixpkgs/pkgs/by-name/cl/clzip/package.nix
new file mode 100644
index 000000000000..feced814f4e5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clzip/package.nix
@@ -0,0 +1,22 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "clzip";
+  version = "1.13";
+
+  src = fetchurl {
+    url = "mirror://savannah/lzip/clzip/clzip-${finalAttrs.version}.tar.gz";
+    hash = "sha256-esn79QNr9Q+wtqIOhNIpPLDSTUBE6vM8vpdgu55/6no=";
+  };
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/lzip/clzip.html";
+    description = "C language version of lzip";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cn/cntb/package.nix b/nixpkgs/pkgs/by-name/cn/cntb/package.nix
new file mode 100644
index 000000000000..78e5f16f303c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cn/cntb/package.nix
@@ -0,0 +1,30 @@
+{ buildGoModule
+, lib
+, fetchFromGitHub
+}: buildGoModule rec {
+  pname = "cntb";
+  version = "1.4.6";
+
+  src = fetchFromGitHub {
+    owner = "contabo";
+    repo = "cntb";
+    rev = "v${version}";
+    hash = "sha256-bvWNcEUSSHEk8fwwPdowATGEHIAj+TN8Z+A156sPVtA=";
+    # docs contains two files with the same name but different cases,
+    # this leads to a different hash on case insensitive filesystems (e.g. darwin)
+    postFetch = ''
+      rm -rf $out/openapi/docs
+    '';
+  };
+
+  subPackages = [ "." ];
+
+  vendorHash = "sha256-++y2C3jYuGZ0ovRFoxeqnx7S9EwoOZBJ5zxeLGWjkqc=";
+
+  meta = with lib; {
+    description = "CLI tool for managing your products from Contabo like VPS and VDS";
+    homepage = "https://github.com/contabo/cntb";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ aciceri ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/cockpit/package.nix b/nixpkgs/pkgs/by-name/co/cockpit/package.nix
new file mode 100644
index 000000000000..48bcff3f32a9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/cockpit/package.nix
@@ -0,0 +1,227 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bashInteractive
+, cacert
+, coreutils
+, dbus
+, docbook_xml_dtd_43
+, docbook_xsl
+, findutils
+, gettext
+, git
+, glib
+, glib-networking
+, gnused
+, gnutls
+, json-glib
+, krb5
+, libssh
+, libxcrypt
+, libxslt
+, makeWrapper
+, nodejs
+, nixosTests
+, nix-update-script
+, openssh
+, openssl
+, pam
+, pkg-config
+, polkit
+, python3Packages
+, ripgrep
+, runtimeShell
+, systemd
+, udev
+, xmlto
+}:
+
+let
+  pythonWithGobject = python3Packages.python.withPackages (p: with p; [
+    pygobject3
+  ]);
+in
+
+stdenv.mkDerivation rec {
+  pname = "cockpit";
+  version = "303";
+
+  src = fetchFromGitHub {
+    owner = "cockpit-project";
+    repo = "cockpit";
+    rev = "refs/tags/${version}";
+    hash = "sha256-1VPnmb4VDSwzdXtk2YZVHH4qFJSe2OPzsmzVD/NkbYg=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    makeWrapper
+    docbook_xml_dtd_43
+    docbook_xsl
+    findutils
+    gettext
+    git
+    (lib.getBin libxslt)
+    nodejs
+    openssl
+    pam
+    pkg-config
+    pythonWithGobject.python
+    python3Packages.setuptools
+    systemd
+    ripgrep
+    xmlto
+  ];
+
+  buildInputs = [
+    (lib.getDev glib)
+    libxcrypt
+    gnutls
+    json-glib
+    krb5
+    libssh
+    polkit
+    udev
+  ];
+
+  postPatch = ''
+    # Instead of requiring Internet access to do an npm install to generate the package-lock.json
+    # it copies the package-lock.json already present in the node_modules folder fetched as a git
+    # submodule.
+    echo "#!/bin/sh" > test/node_modules
+
+    substituteInPlace src/tls/cockpit-certificate-helper.in \
+      --replace 'COCKPIT_CONFIG="@sysconfdir@/cockpit"' 'COCKPIT_CONFIG=/etc/cockpit'
+
+    substituteInPlace src/tls/cockpit-certificate-ensure.c \
+      --replace '#define COCKPIT_SELFSIGNED_PATH      PACKAGE_SYSCONF_DIR COCKPIT_SELFSIGNED_FILENAME' '#define COCKPIT_SELFSIGNED_PATH      "/etc" COCKPIT_SELFSIGNED_FILENAME'
+
+    substituteInPlace src/common/cockpitconf.c \
+      --replace 'const char *cockpit_config_dirs[] = { PACKAGE_SYSCONF_DIR' 'const char *cockpit_config_dirs[] = { "/etc"'
+
+    # instruct users with problems to create a nixpkgs issue instead of nagging upstream directly
+    substituteInPlace configure.ac \
+      --replace 'devel@lists.cockpit-project.org' 'https://github.com/NixOS/nixpkgs/issues/new?assignees=&labels=0.kind%3A+bug&template=bug_report.md&title=cockpit%25'
+
+    patchShebangs \
+      build.js \
+      test/common/pixel-tests \
+      test/common/run-tests \
+      test/common/tap-cdp \
+      test/static-code \
+      tools/escape-to-c \
+      tools/make-compile-commands \
+      tools/node-modules \
+      tools/termschutz \
+      tools/webpack-make.js
+
+    for f in node_modules/.bin/*; do
+      patchShebangs $(realpath $f)
+    done
+
+    export HOME=$(mktemp -d)
+
+    cp node_modules/.package-lock.json package-lock.json
+
+    for f in pkg/**/*.js pkg/**/*.jsx test/**/* src/**/*; do
+      # some files substituteInPlace report as missing and it's safe to ignore them
+      substituteInPlace "$(realpath "$f")" \
+        --replace '"/usr/bin/' '"' \
+        --replace '"/bin/' '"' || true
+    done
+
+    substituteInPlace src/common/Makefile-common.am \
+      --replace 'TEST_PROGRAM += test-pipe' "" # skip test-pipe because it hangs the build
+
+    substituteInPlace test/pytest/*.py \
+      --replace "'bash" "'${bashInteractive}/bin/bash"
+
+    echo "m4_define(VERSION_NUMBER, [${version}])" > version.m4
+  '';
+
+  configureFlags = [
+    "--enable-prefix-only=yes"
+    "--disable-pcp" # TODO: figure out how to package its dependency
+    "--with-default-session-path=/run/wrappers/bin:/run/current-system/sw/bin"
+    "--with-admin-group=root" # TODO: really? Maybe "wheel"?
+    "--enable-old-bridge=yes"
+  ];
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    patchShebangs \
+      tools/test-driver
+  '';
+
+  postBuild = ''
+    chmod +x \
+      src/systemd/update-motd \
+      src/tls/cockpit-certificate-helper \
+      src/ws/cockpit-desktop
+
+    patchShebangs \
+      src/systemd/update-motd \
+      src/tls/cockpit-certificate-helper \
+      src/ws/cockpit-desktop
+
+    PATH=${pythonWithGobject}/bin patchShebangs src/client/cockpit-client
+
+    substituteInPlace src/ws/cockpit-desktop \
+      --replace ' /bin/bash' ' ${runtimeShell}'
+  '';
+
+  fixupPhase = ''
+    runHook preFixup
+
+    wrapProgram $out/libexec/cockpit-certificate-helper \
+      --prefix PATH : ${lib.makeBinPath [ coreutils openssl ]} \
+      --run 'cd $(mktemp -d)'
+
+    wrapProgram $out/share/cockpit/motd/update-motd \
+      --prefix PATH : ${lib.makeBinPath [ gnused ]}
+
+    substituteInPlace $out/share/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
+      --replace /usr $out
+
+    runHook postFixup
+  '';
+
+  doCheck = true;
+  checkInputs = [
+    bashInteractive
+    cacert
+    dbus
+    glib-networking
+    openssh
+    python3Packages.pytest
+    python3Packages.vulture
+  ];
+  checkPhase = ''
+    export GIO_EXTRA_MODULES=$GIO_EXTRA_MODULES:${glib-networking}/lib/gio/modules
+    export G_DEBUG=fatal-criticals
+    export G_MESSAGES_DEBUG=cockpit-ws,cockpit-wrapper,cockpit-bridge
+    export PATH=$PATH:$(pwd)
+
+    cockpit-bridge --version
+    make pytest -j$NIX_BUILD_CORES || true
+    make check  -j$NIX_BUILD_CORES || true
+    test/static-code
+    npm run eslint
+    npm run stylelint || true
+  '';
+
+  passthru = {
+    tests = { inherit (nixosTests) cockpit; };
+    updateScript = nix-update-script {};
+  };
+
+  meta = with lib; {
+    description = "Web-based graphical interface for servers";
+    homepage = "https://cockpit-project.org/";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/codeium/package.nix b/nixpkgs/pkgs/by-name/co/codeium/package.nix
new file mode 100644
index 000000000000..38ad126e5ce9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/codeium/package.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib, fetchurl, gzip, autoPatchelfHook }:
+let
+
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+
+  plat = {
+    x86_64-linux = "linux_x64";
+    aarch64-linux = "linux_arm";
+    x86_64-darwin = "macos_x64";
+    aarch64-darwin = "macos_arm";
+
+  }.${system} or throwSystem;
+
+  hash = {
+    x86_64-linux = "sha256-9EGoJ5DoGgVfbhCDeTvn1D7misJEj9jPwuiOK7z95Ts=";
+    aarch64-linux = "sha256-lO0YOSiO8AUrkbV+3Uyvg6p3bdAcTze3La2g5IcK1f0=";
+    x86_64-darwin = "sha256-WjvC3pt8Gd4q+BzrOhyGeYwZIbv2m5O3pSXe1N7Najw=";
+    aarch64-darwin = "sha256-IRm5m/Jaf4pmAzx+MXwmHLejo6Gv2OL56R1IEr/NlZU=";
+  }.${system} or throwSystem;
+
+  bin = "$out/bin/codeium_language_server";
+
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "codeium";
+  version = "1.2.104";
+  src = fetchurl {
+    name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
+    url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";
+    inherit hash;
+  };
+
+  nativeBuildInputs = [ gzip ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    gzip -dc $src > ${bin}
+    chmod +x ${bin}
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = rec {
+    description = "Codeium language server";
+    longDescription = ''
+      Codeium proprietary language server, patched for Nix(OS) compatibility.
+      bin/language_server_x must be symlinked into the plugin directory, replacing the existing binary.
+      For example:
+      ```shell
+      ln -s "$(which codeium_language_server)" /home/a/.local/share/JetBrains/Rider2023.1/codeium/662505c9b23342478d971f66a530cd102ae35df7/language_server_linux_x64
+      ```
+    '';
+    homepage = "https://codeium.com/";
+    downloadPage = homepage;
+    changelog = homepage;
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ anpin ];
+    mainProgram = "codeium";
+    platforms = [ "aarch64-darwin" "aarch64-linux" "x86_64-linux" "x86_64-darwin" ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/co/codeium/update.sh b/nixpkgs/pkgs/by-name/co/codeium/update.sh
new file mode 100755
index 000000000000..268886b576a0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/codeium/update.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused gawk nix-prefetch jq
+
+set -euo pipefail
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+NIX_DRV="$ROOT/package.nix"
+if [ ! -f "$NIX_DRV" ]; then
+  echo "ERROR: cannot find package.nix in $ROOT"
+  exit 1
+fi
+
+fetch_arch() {
+  VER="$1"; ARCH="$2"
+  URL="https://github.com/Exafunction/codeium/releases/download/language-server-v${VER}/language_server_${ARCH}.gz"
+  nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")"
+}
+
+replace_hash() {
+  sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
+}
+
+CODEIUM_VER=$(curl -s "https://api.github.com/repos/Exafunction/codeium/releases/latest" | jq -r .tag_name | grep -oP '\d+\.\d+\.\d+' )
+
+CODEIUM_LINUX_X64_HASH=$(fetch_arch "$CODEIUM_VER" "linux_x64")
+CODEIUM_LINUX_AARCH64_HASH=$(fetch_arch "$CODEIUM_VER" "linux_arm")
+CODEIUM_DARWIN_X64_HASH=$(fetch_arch "$CODEIUM_VER" "macos_x64")
+CODEIUM_DARWIN_AARCH64_HASH=$(fetch_arch "$CODEIUM_VER" "macos_arm")
+
+sed -i "s/version = \".*\"/version = \"$CODEIUM_VER\"/" "$NIX_DRV"
+
+replace_hash "x86_64-linux" "$CODEIUM_LINUX_X64_HASH"
+replace_hash "aarch64-linux" "$CODEIUM_LINUX_AARCH64_HASH"
+replace_hash "x86_64-darwin" "$CODEIUM_DARWIN_X64_HASH"
+replace_hash "aarch64-darwin" "$CODEIUM_DARWIN_AARCH64_HASH"
diff --git a/nixpkgs/pkgs/by-name/co/codespelunker/package.nix b/nixpkgs/pkgs/by-name/co/codespelunker/package.nix
new file mode 100644
index 000000000000..28d031d2b036
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/codespelunker/package.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "codespelunker";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "boyter";
+    repo = "cs";
+    rev = "v${version}";
+    hash = "sha256-FZf3aRozpXWTRDrNDRxb1dGBXiLVEYOUd8a/hqzThps=";
+  };
+
+  vendorHash = null;
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A command code search tool";
+    homepage = "https://github.com/boyter/cs";
+    license = with licenses; [ mit unlicense ];
+    maintainers = with maintainers; [ viraptor ];
+    mainProgram = "cs";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/colorized-logs/package.nix b/nixpkgs/pkgs/by-name/co/colorized-logs/package.nix
new file mode 100644
index 000000000000..9913d0d765ba
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/colorized-logs/package.nix
@@ -0,0 +1,30 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, stdenv
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "colorized-logs";
+  version = "2.6";
+
+  src = fetchFromGitHub {
+    owner = "kilobyte";
+    repo = "colorized-logs";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-QiZeIYeIWA3C7wYi2G2EItdW+jLjVrCbIYllur/RtY8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = {
+    description = "Tools for logs with ANSI color";
+    homepage = "https://github.com/kilobyte/colorized-logs";
+    changelog = "https://github.com/kilobyte/colorized-logs/blob/v${finalAttrs.version}/ChangeLog";
+    license = with lib.licenses; [ mit ];
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ CobaltCause ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/co/comic-mandown/package.nix b/nixpkgs/pkgs/by-name/co/comic-mandown/package.nix
new file mode 100644
index 000000000000..1e08eb28cb45
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/comic-mandown/package.nix
@@ -0,0 +1,17 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+
+, withGUI ? true
+}:
+let
+  mandown' = python3Packages.mandown.overrideAttrs (prev: {
+    propagatedBuildInputs = prev.propagatedBuildInputs ++ lib.optionals withGUI prev.passthru.optional-dependencies.gui;
+  });
+  mandownApp = python3Packages.toPythonApplication mandown';
+in
+mandownApp // {
+  meta = mandownApp.meta // {
+    mainProgram = "mandown";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/composefs/package.nix b/nixpkgs/pkgs/by-name/co/composefs/package.nix
new file mode 100644
index 000000000000..3908d14ef56e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/composefs/package.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, autoreconfHook
+, pandoc
+, pkg-config
+, openssl
+, fuse3
+, yajl
+, libcap
+, libseccomp
+, python3
+, which
+, valgrind
+, erofs-utils
+, fsverity-utils
+, nix-update-script
+, testers
+
+, fuseSupport ? lib.meta.availableOn stdenv.hostPlatform fuse3
+, yajlSupport ? lib.meta.availableOn stdenv.hostPlatform yajl
+, enableValgrindCheck ? false
+, installExperimentalTools ? false
+}:
+# https://github.com/containers/composefs/issues/204
+assert installExperimentalTools -> (!stdenv.hostPlatform.isMusl);
+stdenv.mkDerivation (finalAttrs: {
+  pname = "composefs";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "composefs";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OjayMhLc3otqQjHsbLN8nm9D9yGOifBcrSLixjnJmvE=";
+  };
+
+  strictDeps = true;
+  outputs = [ "out" "lib" "dev" ];
+
+  postPatch = lib.optionalString installExperimentalTools ''
+    sed -i "s/noinst_PROGRAMS +\?=/bin_PROGRAMS +=/g" tools/Makefile.am
+  '';
+
+  configureFlags = lib.optionals enableValgrindCheck [
+    (lib.enableFeature true "valgrind-test")
+  ];
+
+  nativeBuildInputs = [ autoreconfHook pandoc pkg-config ];
+  buildInputs = [ openssl ]
+    ++ lib.optional fuseSupport fuse3
+    ++ lib.optional yajlSupport yajl
+    ++ lib.filter (lib.meta.availableOn stdenv.hostPlatform) (
+    [
+      libcap
+      libseccomp
+    ]
+  );
+
+  # yajl is required to read the test json files
+  doCheck = true;
+  nativeCheckInputs = [ python3 which ]
+    ++ lib.optional enableValgrindCheck valgrind
+    ++ lib.optional fuseSupport fuse3
+    ++ lib.filter (lib.meta.availableOn stdenv.buildPlatform) [ erofs-utils fsverity-utils ];
+
+  preCheck = ''
+    patchShebangs --build tests/*dir tests/*.sh
+    substituteInPlace tests/*.sh \
+      --replace " /tmp" " $TMPDIR" \
+      --replace " /var/tmp" " $TMPDIR"
+  '' + lib.optionalString (stdenv.hostPlatform.isMusl || !yajlSupport) ''
+    # test relies on `composefs-from-json` tool
+    # MUSL: https://github.com/containers/composefs/issues/204
+    substituteInPlace tests/Makefile \
+      --replace " check-checksums" ""
+  '' + lib.optionalString (stdenv.hostPlatform.isMusl || enableValgrindCheck) ''
+    # seccomp sandbox breaks these tests
+    # MUSL: https://github.com/containers/composefs/issues/206
+    substituteInPlace tests/test-checksums.sh \
+      --replace "composefs-from-json" "composefs-from-json --no-sandbox"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+  };
+
+  meta = {
+    description = "A file system for mounting container images";
+    homepage = "https://github.com/containers/composefs";
+    changelog = "https://github.com/containers/composefs/releases/tag/v${finalAttrs.version}";
+    license = with lib.licenses; [ gpl3Plus lgpl21Plus ];
+    maintainers = with lib.maintainers; [ kiskae ];
+    mainProgram = "mkcomposefs";
+    pkgConfigModules = [ "composefs" ];
+    platforms = lib.platforms.unix;
+    badPlatforms = lib.platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix b/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix
new file mode 100644
index 000000000000..c75254a27b15
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, intltool, pkg-config,
+gtk3, connman, openconnect, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "connman-gtk";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jgke";
+    repo = "connman-gtk";
+    rev = "v${version}";
+    sha256 = "09k0hx5hxpbykvslv12l2fq9pxdwpd311mxj038hbqzjghcyidyr";
+  };
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    intltool
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    openconnect
+    connman
+  ];
+
+  preConfigure = ''
+    # m4/intltool.m4 is an invalid symbolic link
+    rm m4/intltool.m4
+    ln -s ${intltool}/share/aclocal/intltool.m4 m4/
+    ./autogen.sh
+  '';
+
+  meta = with lib; {
+    description = "GTK GUI for Connman";
+    homepage = "https://github.com/jgke/connman-gtk";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix b/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix
new file mode 100644
index 000000000000..9d638c48000a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, pkg-config, dbus, json_c, ncurses, connman }:
+
+stdenv.mkDerivation {
+  pname = "connman-ncurses";
+  version = "2015-07-21";
+
+  src = fetchFromGitHub {
+    owner = "eurogiciel-oss";
+    repo = "connman-json-client";
+    rev = "3c34b2ee62d2e188090d20e7ed2fd94bab9c47f2";
+    sha256 = "1831r0776fv481g8kgy1dkl750pzv47835dw11sslq2k6mm6i9p1";
+  };
+
+  patches = [
+    # Fix build with json-c 0.14
+    (fetchpatch {
+      url = "https://github.com/void-linux/void-packages/raw/5830ce60e922b7dced8157ededda8c995adb3bb9/srcpkgs/connman-ncurses/patches/lowercase-boolean.patch";
+      extraPrefix = "";
+      sha256 = "uK83DeRyXS2Y0ZZpTYvYNh/1ZM2QQ7QpajiBztaEuSM=";
+    })
+  ];
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ dbus ncurses json_c connman ];
+
+  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp -va connman_ncurses "$out/bin/"
+  '';
+
+  meta = with lib; {
+    description = "Simple ncurses UI for connman";
+    homepage = "https://github.com/eurogiciel-oss/connman-json-client";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/connman-notify/package.nix b/nixpkgs/pkgs/by-name/co/connman-notify/package.nix
new file mode 100644
index 000000000000..cbf500913038
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman-notify/package.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitLab, python3Packages, glib, gobject-introspection, wrapGAppsHook }:
+
+python3Packages.buildPythonApplication {
+  pname = "connman-notify";
+  version = "2019-10-05";
+
+  src = fetchFromGitLab {
+    owner = "wavexx";
+    repo = "connman-notify";
+    rev = "24b10a51721b54d932f4cd61ef2756423768c015";
+    sha256 = "1k5b5y6114yna2cm0cq82xilicran63hrhlklgv7k3p89057xh8j";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+
+  buildInputs = [ glib ];
+
+  pythonPath = with python3Packages; [ dbus-python pygobject3 ];
+
+  strictDeps = false;
+
+  installPhase = ''
+    install -D -t $out/bin connman-notify
+    install -D -t $out/share/doc README.rst
+  '';
+
+  meta = with lib; {
+    description = "Desktop notification integration for connman";
+    homepage = "https://gitlab.com/wavexx/connman-notify";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/connman/create-libppp-compat.h.patch b/nixpkgs/pkgs/by-name/co/connman/create-libppp-compat.h.patch
new file mode 100644
index 000000000000..dde8a174ca2a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman/create-libppp-compat.h.patch
@@ -0,0 +1,132 @@
+new file mode 100644
+index 000000000..eee1d09d6
+--- /dev/null
++++ b/scripts/libppp-compat.h
+@@ -0,0 +1,127 @@
++/* Copyright (C) Eivind Naess, eivnaes@yahoo.com */
++/* SPDX-License-Identifier: GPL-2.0-or-later */
++
++#ifndef __LIBPPP_COMPAT_H__
++#define __LIBPPP_COMPAT_H__
++
++/* Define USE_EAPTLS compile with EAP TLS support against older pppd headers,
++ * pppd >= 2.5.0 use PPP_WITH_EAPTLS and is defined in pppdconf.h */
++#define USE_EAPTLS 1
++
++/* Define INET6 to compile with IPv6 support against older pppd headers,
++ * pppd >= 2.5.0 use PPP_WITH_IPV6CP and is defined in pppdconf.h */
++#define INET6 1
++
++/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++ * this silly macro magic is to work around that. */
++#undef VERSION
++#include <pppd/pppd.h>
++
++#ifndef PPPD_VERSION
++#define PPPD_VERSION VERSION
++#endif
++
++#include <pppd/fsm.h>
++#include <pppd/ccp.h>
++#include <pppd/eui64.h>
++#include <pppd/ipcp.h>
++#include <pppd/ipv6cp.h>
++#include <pppd/eap.h>
++#include <pppd/upap.h>
++
++#ifdef HAVE_PPPD_CHAP_H
++#include <pppd/chap.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_NEW_H
++#include <pppd/chap-new.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_MS_H
++#include <pppd/chap_ms.h>
++#endif
++
++#ifndef PPP_PROTO_CHAP
++#define PPP_PROTO_CHAP 0xc223
++#endif 
++
++#ifndef PPP_PROTO_EAP
++#define PPP_PROTO_EAP  0xc227
++#endif
++
++
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++
++static inline bool
++debug_on (void)
++{
++	return debug;
++}
++
++static inline const char
++*ppp_ipparam (void)
++{
++	return ipparam;
++}
++
++static inline int
++ppp_ifunit (void)
++{
++	return ifunit;
++}
++
++static inline const char *
++ppp_ifname (void)
++{
++	return ifname;
++}
++
++static inline int
++ppp_get_mtu (int idx)
++{
++	return netif_get_mtu(idx);
++}
++
++typedef enum ppp_notify
++{
++    NF_PID_CHANGE,
++    NF_PHASE_CHANGE,
++    NF_EXIT,
++    NF_SIGNALED,
++    NF_IP_UP,
++    NF_IP_DOWN,
++    NF_IPV6_UP,
++    NF_IPV6_DOWN,
++    NF_AUTH_UP,
++    NF_LINK_DOWN,
++    NF_FORK,
++    NF_MAX_NOTIFY
++} ppp_notify_t;
++
++typedef void (ppp_notify_fn) (void *ctx, int arg);
++
++static inline void
++ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx)
++{
++	struct notifier **list[NF_MAX_NOTIFY] = {
++		[NF_PID_CHANGE  ] = &pidchange,
++		[NF_PHASE_CHANGE] = &phasechange,
++		[NF_EXIT        ] = &exitnotify,
++		[NF_SIGNALED    ] = &sigreceived,
++		[NF_IP_UP       ] = &ip_up_notifier,
++		[NF_IP_DOWN     ] = &ip_down_notifier,
++		[NF_IPV6_UP     ] = &ipv6_up_notifier,
++		[NF_IPV6_DOWN   ] = &ipv6_down_notifier,
++		[NF_AUTH_UP     ] = &auth_up_notifier,
++		[NF_LINK_DOWN   ] = &link_down_notifier,
++		[NF_FORK        ] = &fork_notifier,
++	};
++
++	struct notifier **notify = list[type];
++	if (notify) {
++		add_notifier(notify, func, ctx);
++	}
++}
++
++#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */
++#endif /* #if__LIBPPP_COMPAT_H__ */
diff --git a/nixpkgs/pkgs/by-name/co/connman/package.nix b/nixpkgs/pkgs/by-name/co/connman/package.nix
new file mode 100644
index 000000000000..a90fb1ffd727
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman/package.nix
@@ -0,0 +1,176 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, dbus
+, file
+, glib
+, gnutls
+, iptables
+, libmnl
+, libnftnl # for nftables
+, nixosTests
+, openconnect
+, openvpn
+, pkg-config
+, polkit
+, ppp
+, pptp
+, readline
+, vpnc
+, dnsType ? "internal" # or "systemd-resolved"
+, enableBluetooth ? true
+, enableClient ? true
+, enableDatafiles ? true
+, enableDundee ? true
+, enableEthernet ? true
+, enableGadget ? true
+, enableHh2serialGps ? false
+, enableIospm ? false
+, enableL2tp ? false
+, enableLoopback ? true
+, enableNeard ? true
+, enableNetworkManager ? null
+, enableNetworkManagerCompatibility ?
+  if enableNetworkManager == null
+  then false
+  else lib.warn "enableNetworkManager option is deprecated; use enableNetworkManagerCompatibility instead" enableNetworkManager
+, enableOfono ? true
+, enableOpenconnect ? true
+, enableOpenvpn ? true
+, enablePacrunner ? true
+, enablePolkit ? true
+, enablePptp ? true
+, enableStats ? true
+, enableTist ? false
+, enableTools ? true
+, enableVpnc ? true
+, enableWifi ? true
+, enableWireguard ? true
+, enableWispr ? true
+, firewallType ? "iptables" # or "nftables"
+}:
+
+let
+  inherit (lib)
+    enableFeature
+    enableFeatureAs
+    optionals
+    withFeatureAs;
+in
+assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ];
+assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
+stdenv.mkDerivation (finalAttrs: {
+  pname = "connman";
+  version = "1.42";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/network/connman/connman-${finalAttrs.version}.tar.xz";
+    hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo=";
+  };
+
+  patches = [
+    # simply the middle section of upstream commit a48864a2e5d2a725dfc6eef567108bc13b43857f
+    # dist tarball is broken, hence this patch as a workaround
+    ./create-libppp-compat.h.patch
+  ] ++ optionals stdenv.hostPlatform.isMusl [
+    # Fix Musl build by avoiding a Glibc-only API.
+    (fetchurl {
+      url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
+      hash = "sha256-7Q1bp8rD/gGVYUqnIXqjr9vypR8jlC926p3KYWl9kLw=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    file
+    pkg-config
+  ];
+
+  buildInputs = [
+    glib
+    dbus
+    libmnl
+    gnutls
+    readline
+  ]
+  ++ optionals (firewallType == "iptables") [ iptables ]
+  ++ optionals (firewallType == "nftables") [ libnftnl ]
+  ++ optionals (enableOpenconnect) [ openconnect ]
+  ++ optionals (enablePolkit) [ polkit ]
+  ++ optionals (enablePptp) [ pptp ppp ]
+  ;
+
+  postPatch = ''
+    sed -i "s@/usr/bin/file@file@g" ./configure
+  '';
+
+  configureFlags = [
+    # directories flags
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+  ] ++ [
+    # production build flags
+    (enableFeature false "maintainer-mode")
+    (enableFeatureAs true "session-policy-local" "builtin")
+    # for building and running tests
+    # (enableFeature true "tests") # installs the tests, we don't want that
+    (enableFeature true "tools")
+    (enableFeature enableLoopback "loopback")
+    (enableFeature enableEthernet "ethernet")
+    (enableFeature enableWireguard "wireguard")
+    (enableFeature enableGadget "gadget")
+    (enableFeature enableWifi "wifi")
+    # enable IWD support for wifi as it doesn't require any new dependencies and
+    # it's easier for the NixOS module to use only one connman package when IWD
+    # is requested
+    (enableFeature enableWifi "iwd")
+    (enableFeature enableBluetooth "bluetooth")
+    (enableFeature enableOfono "ofono")
+    (enableFeature enableDundee "dundee")
+    (enableFeature enablePacrunner "pacrunner")
+    (enableFeature enableNeard "neard")
+    (enableFeature enableWispr "wispr")
+    (enableFeature enableTools "tools")
+    (enableFeature enableStats "stats")
+    (enableFeature enableClient "client")
+    (enableFeature enableDatafiles "datafiles")
+    (enableFeature enablePolkit "polkit")
+    (enableFeature enablePptp "pptp")
+    (enableFeature enableWireguard "wireguard")
+    (enableFeature enableNetworkManagerCompatibility "nmcompat")
+    (enableFeature enableHh2serialGps "hh2serial-gps")
+    (enableFeature enableL2tp "l2tp")
+    (enableFeature enableIospm "iospm")
+    (enableFeature enableTist "tist")
+  ] ++ [
+    (enableFeatureAs enableOpenconnect "openconnect" "builtin")
+    (enableFeatureAs enableOpenvpn "openvpn" "builtin")
+    (enableFeatureAs enableVpnc "vpnc" "builtin")
+  ] ++ [
+    (withFeatureAs true "dbusconfdir" "${placeholder "out"}/share")
+    (withFeatureAs true "dbusdatadir" "${placeholder "out"}/share")
+    (withFeatureAs true "tmpfilesdir" "${placeholder "out"}/tmpfiles.d")
+    (withFeatureAs true "systemdunitdir" "${placeholder "out"}/systemd/system")
+    (withFeatureAs true "dns-backend" "${dnsType}")
+    (withFeatureAs true "firewall" "${firewallType}")
+    (withFeatureAs enableOpenconnect "openconnect" "${openconnect}/sbin/openconnect")
+    (withFeatureAs enableOpenvpn "openvpn" "${openvpn}/sbin/openvpn")
+    (withFeatureAs enableVpnc "vpnc" "${vpnc}/sbin/vpnc")
+    (withFeatureAs enablePptp "pptp" "${pptp}/sbin/pptp")
+  ];
+
+  doCheck = true;
+
+  passthru.tests.connman = nixosTests.connman;
+
+  meta = {
+    description = "A daemon for managing internet connections";
+    homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/about/";
+    license = lib.licenses.gpl2Only;
+    mainProgram = "connmanctl";
+    maintainers = with lib.maintainers; [ eclairevoyant AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix b/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix
new file mode 100644
index 000000000000..86e5a62fb8de
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, connman, dmenu }:
+
+stdenv.mkDerivation {
+  pname = "connman_dmenu";
+  version = "unstable-2015-09-29";
+
+  src = fetchFromGitHub {
+    owner = "march-linux";
+    repo = "connman_dmenu";
+    rev = "cc89fec40b574b0d234afeb70ea3c94626ca3f5c";
+    sha256 = "061fi83pai4n19l9d7wq6wwj2d7cixwkhkh742c5ibmw1wb274yk";
+  };
+
+  buildInputs = [ connman dmenu ];
+
+  dontBuild = true;
+
+  # remove root requirement, see: https://github.com/march-linux/connman_dmenu/issues/3
+  postPatch = ''
+    sed -i '89,92d' connman_dmenu
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp connman_dmenu $out/bin/
+  '';
+
+  meta = {
+    description = "A dmenu wrapper for connmann";
+    homepage = "https://github.com/march-linux/connman_dmenu";
+    license = lib.licenses.free;
+    maintainers = [ lib.maintainers.magnetophon ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/controku/package.nix b/nixpkgs/pkgs/by-name/co/controku/package.nix
new file mode 100644
index 000000000000..a52d2e326464
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/controku/package.nix
@@ -0,0 +1,4 @@
+{ python3Packages
+}:
+
+with python3Packages; toPythonApplication (controku.override { buildApplication = true; })
diff --git a/nixpkgs/pkgs/by-name/co/convco/package.nix b/nixpkgs/pkgs/by-name/co/convco/package.nix
new file mode 100644
index 000000000000..4112246c743c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/convco/package.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, libiconv
+, openssl
+, pkg-config
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "convco";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "convco";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-qf04mtxBqZy9kpFsqz8lVtyUzNtCYE8cNiVJVQ+sCn0=";
+  };
+
+  cargoHash = "sha256-A1z8ccdsaBC9gY4rD/0NnuQHm7x4eVlMPBvkMKGHK54=";
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
+
+  meta = with lib; {
+    description = "A Conventional commit cli";
+    homepage = "https://github.com/convco/convco";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ hoverbear cafkafk ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/costa/package.nix b/nixpkgs/pkgs/by-name/co/costa/package.nix
new file mode 100644
index 000000000000..3dacce655055
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/costa/package.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, mpi
+, scalapack
+, llvmPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "COSTA";
+  version = "2.2.2";
+
+  src = fetchFromGitHub {
+    owner = "eth-cscs";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-jiAyZXC7wiuEnOLsQFFLxhN3AsGXN09q/gHC2Hrb2gg=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ scalapack ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
+
+  propagatedBuildInputs = [ mpi ];
+
+  cmakeFlags = [
+    "-DCOSTA_SCALAPACK=CUSTOM"
+    "-DSCALAPACK_ROOT=${scalapack}"
+  ];
+
+
+  meta = with lib; {
+    description = "Distributed Communication-Optimal Shuffle and Transpose Algorithm";
+    homepage = "https://github.com/eth-cscs/COSTA";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/cowsql/package.nix b/nixpkgs/pkgs/by-name/co/cowsql/package.nix
new file mode 100644
index 000000000000..c7b7b97e9792
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/cowsql/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libuv
+, raft-cowsql
+, sqlite
+, incus
+, gitUpdater
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cowsql";
+  version = "1.15.3";
+
+  src = fetchFromGitHub {
+    owner = "cowsql";
+    repo = "cowsql";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-+za3pIcV4BhoImKvJlKatCK372wL4OyPbApQvGxGGGk=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    libuv
+    raft-cowsql.dev
+    sqlite
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  outputs = [ "dev" "out" ];
+
+  passthru = {
+    tests = {
+      inherit incus;
+    };
+
+    updateScript = gitUpdater {
+      rev-prefix = "v";
+    };
+  };
+
+  meta = with lib; {
+    description = "Embeddable, replicated and fault tolerant SQL engine";
+    homepage = "https://github.com/cowsql/cowsql";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ adamcstephens ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix b/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix
new file mode 100644
index 000000000000..5e15b860db3c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gtk3, ncurses
+, libcpuid, pciutils, procps, wrapGAppsHook, nasm, makeWrapper
+, opencl-headers, ocl-icd
+, vulkan-headers, vulkan-loader, glfw
+, libXdmcp, pcre, util-linux
+, libselinux, libsepol
+, libthai, libdatrie, libxkbcommon, libepoxy
+, dbus, at-spi2-core
+, libXtst
+}:
+
+# Known issues:
+# - The daemon can't be started from the GUI, because pkexec requires a shell
+#   registered in /etc/shells. The nix's bash is not in there when running
+#   cpu-x from nixpkgs.
+
+stdenv.mkDerivation rec {
+  pname = "cpu-x";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "X0rg";
+    repo = "CPU-X";
+    rev = "v${version}";
+    sha256 = "sha256-mykN+E2ghp2+a06WLYXg9oaQQ2SJDyxIVQSUM00zrCo=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook nasm makeWrapper ];
+  buildInputs = [
+    gtk3 ncurses libcpuid pciutils procps
+    vulkan-headers vulkan-loader glfw
+    opencl-headers ocl-icd
+    libXdmcp pcre util-linux
+    libselinux libsepol
+    libthai libdatrie libxkbcommon libepoxy
+    dbus at-spi2-core
+    libXtst
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/cpu-x \
+      --prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} \
+      --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+  '';
+
+  meta = with lib; {
+    description = "Free software that gathers information on CPU, motherboard and more";
+    homepage = "https://thetumultuousunicornofdarkness.github.io/CPU-X";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ viraptor ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cr/create-react-app/package.nix b/nixpkgs/pkgs/by-name/cr/create-react-app/package.nix
new file mode 100644
index 000000000000..7ce48825da75
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cr/create-react-app/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "create-react-app";
+  version = "5.0.1";
+
+  src = fetchFromGitHub {
+    owner = "facebook";
+    repo = "create-react-app";
+    rev = "v${version}";
+    hash = "sha256-nUvJRxBZ98ogSkbw8ciFYtZRQNFD6pLThoEjeDMcGm0=";
+  };
+
+  npmDepsHash = "sha256-diGu53lJi+Fs7pTAQGCXoDtP7YyKZLIN/2Wo+e1Mzc4=";
+
+  env.PUPPETEER_SKIP_DOWNLOAD = true;
+
+  npmWorkspace = "packages/create-react-app";
+
+  dontNpmBuild = true;
+
+  meta = {
+    changelog = "https://github.com/facebook/create-react-app/blob/${src.rev}/CHANGELOG.md";
+    description = "Create React apps with no build configuration";
+    homepage = "https://github.com/facebook/create-react-app";
+    license = lib.licenses.mit;
+    mainProgram = "create-react-app";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ct/ctx/0001-fix-detections.diff b/nixpkgs/pkgs/by-name/ct/ctx/0001-fix-detections.diff
new file mode 100644
index 000000000000..d2580d0fde1d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ct/ctx/0001-fix-detections.diff
@@ -0,0 +1,67 @@
+diff -Naur --no-dereference ctx-source-old/configure.sh ctx-source-new/configure.sh
+--- ctx-source-old/configure.sh	1969-12-31 21:00:01.000000000 -0300
++++ ctx-source-new/configure.sh	2023-09-27 19:26:05.403569888 -0300
+@@ -42,15 +42,18 @@
+ ENABLE_SWITCH_DISPATCH=1
+ 
+ pkg-config sdl2    && HAVE_SDL=1
+-pkg-config babl    && HAVE_BABL=1
++
++pkg-config babl-0.1 && { HAVE_BABL=1; BABL_NAME=babl-0.1; }
++if [ $HAVE_BABL  != 1 ]; then
++    pkg-config babl && { HAVE_BABL=1; BABL_NAME=babl; }
++fi
++
+ pkg-config libcurl && HAVE_LIBCURL=1
+ pkg-config alsa    && HAVE_ALSA=1
+ pkg-config libdrm  && HAVE_KMS=1
+ #pkg-config harfbuzz && HAVE_HARFBUZZ=1
+ 
+-
+-
+-ARCH=`uname -m`
++: "${ARCH:="$(uname -m)"}"
+ 
+ case "$ARCH" in
+    "x86_64")  HAVE_SIMD=1 ;;
+@@ -224,8 +227,8 @@
+ if [ $HAVE_BABL  = 1 ];then
+   echo "#define CTX_BABL 1 " >> local.conf
+   echo "#define CTX_ENABLE_CM 1 " >> local.conf
+-  echo "CTX_CFLAGS+= `pkg-config babl  --cflags`" >> build.conf
+-  echo "CTX_LIBS+= `pkg-config babl  --libs` " >> build.conf
++  echo "CTX_CFLAGS+= `pkg-config "${BABL_NAME}" --cflags`" >> build.conf
++  echo "CTX_LIBS+= `pkg-config "${BABL_NAME}" --libs` " >> build.conf
+ else
+   echo "#define CTX_BABL 0 " >> local.conf
+   echo "#define CTX_ENABLE_CM 0 " >> local.conf
+@@ -335,7 +338,7 @@
+ #echo "Generating build.deps"
+ #make build.deps 2>/dev/null
+ 
+-echo -n "configuration summary, architecture $(arch)"
++echo -n "configuration summary, architecture $ARCH"
+ [ $HAVE_SIMD = 1 ]  && echo " SIMD multi-pass"
+ echo ""
+ echo "Backends:"
+diff -Naur --no-dereference ctx-source-old/Makefile ctx-source-new/Makefile
+--- ctx-source-old/Makefile	1969-12-31 21:00:01.000000000 -0300
++++ ctx-source-new/Makefile	2023-09-27 19:37:23.779830320 -0300
+@@ -206,8 +206,8 @@
+ libctx.a: itk.o deps.o $(CTX_OBJS) build.conf Makefile
+ 	$(AR) rcs $@ $(CTX_OBJS) deps.o itk.o
+ libctx.so: $(CTX_OBJS) deps.o itk.o build.conf Makefile
+-	$(LD) -shared $(LIBS) $(CTX_OBJS) deps.o itk.o $(CTX_LIBS) -o $@
+-	#$(LD) --retain-symbols-file=symbols -shared $(LIBS) $? $(CTX_LIBS)  -o $@
++	$(CCC) -shared $(LIBS) $(CTX_OBJS) deps.o itk.o $(CTX_LIBS) -o $@
++	#$(CCC) --retain-symbols-file=symbols -shared $(LIBS) $? $(CTX_LIBS)  -o $@
+ 
+ ctx: main.c ctx.h  build.conf Makefile $(TERMINAL_OBJS) $(MEDIA_HANDLERS_OBJS) libctx.a
+ 	$(CCC) main.c $(TERMINAL_OBJS) $(MEDIA_HANDLERS_OBJS) -o $@ $(CFLAGS) libctx.a $(LIBS) $(CTX_CFLAGS)  $(OFLAGS_LIGHT) -lpthread  $(CTX_LIBS)
+@@ -277,5 +277,5 @@
+ 	for a in `cat itk/css.h | tr ';' ' ' | tr ',' ' ' | tr ')' ' '|tr ':' ' ' | tr '{' ' ' | tr ' ' '\n' | grep 'SQZ_[a-z][0-9a-zA-Z_]*'| sort | uniq`;do b=`echo $$a|tail -c+5|tr '_' '-'`;echo "#define $$a `./squoze/squoze -33 $$b`u // \"$$b\"";done \
+ 		>> $@
+ 	echo '#endif' >> $@
+-static.inc: static/* static/*/* tools/gen_fs.sh
++static.inc: static/* tools/gen_fs.sh
+ 	./tools/gen_fs.sh static > $@
diff --git a/nixpkgs/pkgs/by-name/ct/ctx/package.nix b/nixpkgs/pkgs/by-name/ct/ctx/package.nix
new file mode 100644
index 000000000000..b329fd221247
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ct/ctx/package.nix
@@ -0,0 +1,82 @@
+{ lib
+, stdenv
+, fetchgit
+, SDL2
+, alsa-lib
+, babl
+, bash
+, curl
+, libdrm # Not documented
+, pkg-config
+, xxd
+, enableFb ? false
+, nixosTests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ctx";
+  version = "unstable-2023-09-03";
+
+  src = fetchgit {
+    name = "ctx-source"; # because of a dash starting the directory
+    url = "https://ctx.graphics/.git/";
+    rev = "1bac18c152eace3ca995b3c2b829a452085d46fb";
+    hash = "sha256-fOcQJ2XCeomdtAUmy0A+vU7Vt325OSwrb1+ccW+gZ38=";
+  };
+
+  patches = [
+    # Many problematic things fixed - it should be upstreamed somehow:
+    # - babl changed its name in pkg-config files
+    # - arch detection made optional
+    # - LD changed to CCC
+    # - remove inexistent reference to static/*/*
+    ./0001-fix-detections.diff
+  ];
+
+  postPatch = ''
+    patchShebangs ./tools/gen_fs.sh
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    xxd
+  ];
+
+  buildInputs = [
+    SDL2
+    alsa-lib
+    babl
+    bash # for ctx-audioplayer
+    curl
+    libdrm
+  ];
+
+  strictDeps = true;
+
+  env.ARCH = stdenv.hostPlatform.parsed.cpu.arch;
+
+  configureScript = "./configure.sh";
+  configureFlags = lib.optional enableFb "--enable-fb";
+  configurePlatforms = [];
+  dontAddPrefix = true;
+  dontDisableStatic = true;
+
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  passthru.tests.test = nixosTests.terminal-emulators.ctx;
+
+  meta = {
+    homepage = "https://ctx.graphics/";
+    description = "Vector graphics terminal";
+    longDescription = ''
+      ctx is an interactive 2D vector graphics, audio, text- canvas and
+      terminal, with escape sequences that enable a 2D vector drawing API using
+      a vector graphics protocol.
+    '';
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cy/cyme/package.nix b/nixpkgs/pkgs/by-name/cy/cyme/package.nix
new file mode 100644
index 000000000000..3e32c22d2e41
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cy/cyme/package.nix
@@ -0,0 +1,53 @@
+{
+  lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, stdenv
+, darwin
+, libusb1
+, udev
+, nix-update-script
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cyme";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "tuna-f1sh";
+    repo = "cyme";
+    rev = "v${version}";
+    hash = "sha256-UXh97pHJ9wa/xSslHLB7WVDwLKJYvLPgmPX8RvKrsTI=";
+  };
+
+  cargoHash = "sha256-hSd53K50Y4K/fYGfsT2fHUaipVSpeYN6/EOFlv4ocuE=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.DarwinTools
+  ];
+
+  buildInputs = [
+    libusb1
+  ] ++ lib.optionals stdenv.isLinux [
+    udev
+  ];
+
+  checkFlags = lib.optionals stdenv.isDarwin [
+    # system_profiler is not available in the sandbox
+    "--skip=test_run"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    homepage = "https://github.com/tuna-f1sh/cyme";
+    description = "A modern cross-platform lsusb";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ h7x4 ];
+    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
+    mainProgram = "cyme";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/db/dbus-cpp/package.nix b/nixpkgs/pkgs/by-name/db/dbus-cpp/package.nix
new file mode 100644
index 000000000000..2e834111c9d9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/db/dbus-cpp/package.nix
@@ -0,0 +1,127 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, gitUpdater
+, testers
+, boost
+, cmake
+, dbus
+, doxygen
+, graphviz
+, gtest
+, libxml2
+, lomiri
+, pkg-config
+, process-cpp
+, properties-cpp
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dbus-cpp";
+  version = "5.0.3";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/lib-cpp/dbus-cpp";
+    rev = finalAttrs.version;
+    hash = "sha256-t8SzPRUuKeEchT8vAsITf8MwbgHA+mR5C9CnkdVyX7s=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "doc"
+    "examples"
+  ];
+
+  patches = [
+    # Handle already-stolen dbus call better
+    # Remove when version > 5.0.3
+    (fetchpatch {
+      name = "0001-dbus-cpp-src-Dont-steal-a-pending-dbus-call-more-then-once.patch";
+      url = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/commit/9f3d1ff2b1c6c732285949c3dbb35e40cf55ea92.patch";
+      hash = "sha256-xzOCIJVsK2J+X9RsV930R9uw6h4UxqwSaNOgv8v4qQU=";
+    })
+
+    # Fix GCC13 compilation
+    # Remove when version > 5.0.3
+    (fetchpatch {
+      name = "0002-dbus-cpp-Add-missing-headers-for-GCC13.patch";
+      url = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/commit/c761b1eec084962dbe64d35d7f7b86dcbe57a3f7.patch";
+      hash = "sha256-/tKe3iHWxP9jWtpdgwwRynj8565u9LxCt4WXJDXzgX4=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace doc/CMakeLists.txt \
+      --replace 'DESTINATION share/''${CMAKE_PROJECT_NAME}/doc' 'DESTINATION ''${CMAKE_INSTALL_DOCDIR}'
+
+    # Warning on aarch64-linux breaks build due to -Werror
+    substituteInPlace CMakeLists.txt \
+      --replace '-Werror' ""
+
+    # pkg-config output patching hook expects prefix variable here
+    substituteInPlace data/dbus-cpp.pc.in \
+      --replace 'includedir=''${exec_prefix}' 'includedir=''${prefix}'
+  '' + lib.optionalString (!finalAttrs.doCheck) ''
+    sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    graphviz
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    lomiri.cmake-extras
+    dbus
+    libxml2
+    process-cpp
+    properties-cpp
+  ];
+
+  nativeCheckInputs = [
+    dbus
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DDBUS_CPP_ENABLE_DOC_GENERATION=ON"
+  ];
+
+  # Too flaky on ARM CI & for some amd64 users
+  doCheck = false;
+
+  # DBus, parallelism messes with communication
+  enableParallelChecking = false;
+
+  preFixup = ''
+    moveToOutput libexec/examples $examples
+  '';
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "A dbus-binding leveraging C++-11";
+    homepage = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    mainProgram = "dbus-cppc";
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "dbus-cpp"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/de/debianutils/package.nix b/nixpkgs/pkgs/by-name/de/debianutils/package.nix
new file mode 100644
index 000000000000..97623aaeef36
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/de/debianutils/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, autoreconfHook
+, perl
+, po4a
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "debianutils";
+  version = "5.13";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = "debianutils";
+    rev = "debian/${finalAttrs.version}";
+    hash = "sha256-h6swRil0sldRaZT7/LMEmV6Ah3zoppiHeGO3xTJlrac=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    perl
+    po4a
+  ];
+
+  strictDeps = true;
+
+  outputs = [ "out" "man" ];
+
+  meta = {
+    homepage = "https://packages.debian.org/sid/debianutils";
+    description = "Miscellaneous utilities specific to Debian";
+    longDescription = ''
+      This package provides a number of small utilities which are used primarily
+      by the installation scripts of Debian packages, although you may use them
+      directly.
+
+      The specific utilities included are: add-shell installkernel ischroot
+      remove-shell run-parts savelog tempfile which
+    '';
+    license = with lib.licenses; [ gpl2Plus publicDomain smail ];
+    mainProgram = "ischroot";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/de/decker/package.nix b/nixpkgs/pkgs/by-name/de/decker/package.nix
new file mode 100644
index 000000000000..84c08eaaa38d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/de/decker/package.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, SDL2
+, SDL2_image
+, unixtools
+, multimarkdown
+}:
+
+stdenv.mkDerivation rec {
+  pname = "decker";
+  version = "1.31";
+
+  src = fetchFromGitHub {
+    owner = "JohnEarnest";
+    repo = "Decker";
+    rev = "v${version}";
+    hash = "sha256-9utCIf7LO/ms46QqagkcXZ3BuvRuLa6nE78MgkbaEjA=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    multimarkdown
+    unixtools.xxd
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs ./scripts
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    make lilt
+    make decker
+    make docs
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm0755 ./c/build/lilt -t $out/bin
+    install -Dm0755 ./c/build/decker -t $out/bin
+    install -Dm0644 ./syntax/vim/ftdetect/lil.vim -t $out/share/vim-plugins/decker/ftdetect
+    install -Dm0644 ./syntax/vim/syntax/lil.vim -t $out/share/vim-plugins/decker/syntax
+
+    # Fixing the permissions of the installed files on the documentation.
+    chmod a-x ./docs/images/* \
+              ./docs/*.md \
+              ./examples/decks/*.deck \
+              ./examples/lilt/*.lil
+
+    # This example has a shebang so we'll leave it as an executable.
+    chmod a+x ./examples/lilt/podcasts.lil
+
+    mkdir -p $out/share/doc/decker
+    cp -r ./docs/*.html ./docs/images ./examples $out/share/doc/decker
+
+    runHook postInstall
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    make test
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://beyondloom.com/decker";
+    description = "Multimedia platform for creating and sharing interactive documents";
+    license = licenses.mit;
+    mainProgram = "decker";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ foo-dogsquared ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/di/dialog/package.nix b/nixpkgs/pkgs/by-name/di/dialog/package.nix
new file mode 100644
index 000000000000..23f75bb1c994
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/di/dialog/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, libtool
+, ncurses
+, enableShared ? !stdenv.isDarwin && !stdenv.hostPlatform.isStatic
+, unicodeSupport ? true
+, withLibrary ? true
+}:
+
+assert unicodeSupport -> ncurses.unicodeSupport;
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dialog";
+  version = "1.3-20231002";
+
+  src = fetchurl {
+    url = "https://invisible-island.net/archives/dialog/dialog-${finalAttrs.version}.tgz";
+    hash = "sha256-MVZAqwcZIl1cvKsTBYXAXweR/PBzBypf6UeZaaorgzs=";
+  };
+
+  nativeBuildInputs = lib.optionals withLibrary [
+    libtool
+  ];
+
+  buildInputs = [
+    ncurses
+  ];
+
+  strictDeps = true;
+
+  configureFlags = [
+    "--disable-rpath-hacks"
+    "--${if withLibrary then "with" else "without"}-libtool"
+    "--with-libtool-opts=${lib.optionalString enableShared "-shared"}"
+    "--with-ncurses${lib.optionalString unicodeSupport "w"}"
+  ];
+
+  installTargets = [
+    "install${lib.optionalString withLibrary "-full"}"
+  ];
+
+  meta = {
+    homepage = "https://invisible-island.net/dialog/dialog.html";
+    description = "Display dialog boxes from shell";
+    license = lib.licenses.lgpl21Plus;
+    mainProgram = "dialog";
+    maintainers = with lib.maintainers; [ AndersonTorres spacefrogg ];
+    inherit (ncurses.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/di/diesel-cli-ext/package.nix b/nixpkgs/pkgs/by-name/di/diesel-cli-ext/package.nix
new file mode 100644
index 000000000000..7b118b3ce7e0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/di/diesel-cli-ext/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchCrate
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "diesel-cli-ext";
+  version = "0.3.13";
+
+  src = fetchCrate {
+    pname = "diesel_cli_ext";
+    inherit version;
+    hash = "sha256-5AIzMxEcxL/vYWx3D/meA///Zo+1210HUMEE4dFBhkc=";
+  };
+
+  cargoHash = "sha256-Ya7RL3TuQjKkEkggK/ANChtVZRuTaooM+lE3KBZnvYU=";
+
+  meta = with lib; {
+    description = "Provides different tools for projects using the diesel_cli";
+    homepage = "https://crates.io/crates/diesel_cli_ext";
+    license = with licenses; [ asl20 mit ];
+    mainProgram = "diesel_ext";
+    maintainers = with maintainers; [ siph ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/dj/djent/package.nix b/nixpkgs/pkgs/by-name/dj/djent/package.nix
new file mode 100644
index 000000000000..3559410fbd29
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dj/djent/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, mpfr
+}:
+
+stdenv.mkDerivation rec {
+  pname = "djent";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "dj-on-github";
+    repo = "djent";
+    rev = "${version}";
+    hash = "sha256-inMh7l/6LlrVnIin+L+fj+4Lchk0Xvt09ngVrCuvphE=";
+  };
+
+  buildInputs = [ mpfr ];
+
+  preBuild = ''
+    sed -i s/gcc/${stdenv.cc.targetPrefix}gcc/g Makefile
+  ''
+  + lib.optionalString (!stdenv.hostPlatform.isx86_64) ''
+    sed -i s/-m64//g Makefile
+  '';
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D djent $out/bin/djent
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://www.deadhat.com/";
+    description = ''
+      A reimplementation of the Fourmilab/John Walker random number test program
+      ent with several improvements
+    '';
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ orichter thillux ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix b/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix
new file mode 100644
index 000000000000..63a46f1e6e50
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, bluez
+, dmenu
+, nix-update-script
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dmenu-bluetooth";
+  version = "unstable-2023-07-16";
+
+  src = fetchFromGitHub {
+    owner = "Layerex";
+    repo = "dmenu-bluetooth";
+    rev = "96e2e3e1dd7ea2d2ab0c20bf21746aba8d70cc46";
+    hash = "sha256-0G2PXWq9/JsLHnbOIJWSWWqfnBgOxaA8N2VyCbTUGmI=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D --target-directory=$out/bin/ ./dmenu-bluetooth
+
+    wrapProgram $out/bin/dmenu-bluetooth \
+      --prefix PATH ":" ${lib.makeBinPath [ dmenu bluez ] }
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A script that generates a dmenu menu that uses bluetoothctl to connect to bluetooth devices and display status info";
+    homepage = "https://github.com/Layerex/dmenu-bluetooth";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ ludovicopiero ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/do/doggo/package.nix b/nixpkgs/pkgs/by-name/do/doggo/package.nix
new file mode 100644
index 000000000000..cdd19bc37b90
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/doggo/package.nix
@@ -0,0 +1,43 @@
+{ buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, lib
+}:
+
+buildGoModule rec {
+  pname = "doggo";
+  version = "0.5.7";
+
+  src = fetchFromGitHub {
+    owner = "mr-karan";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-hzl7BE3vsE2G9O2nwN/gkqQTJ+9aDfNIjmpmgN1AYq8=";
+  };
+
+  vendorHash = "sha256-uonybBLABPj9CPtc+y82ajvQI7kubK+lKi4eLcZIUqA=";
+  nativeBuildInputs = [ installShellFiles ];
+  subPackages = [ "cmd/doggo" ];
+
+  ldflags = [
+    "-w -s"
+    "-X main.buildVersion=v${version}"
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd doggo \
+      --fish --name doggo.fish completions/doggo.fish \
+      --zsh --name _doggo completions/doggo.zsh
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mr-karan/doggo";
+    description = "Command-line DNS Client for Humans. Written in Golang";
+    longDescription = ''
+      doggo is a modern command-line DNS client (like dig) written in Golang.
+      It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well
+    '';
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ georgesalkhouri ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/do/dorion/package.nix b/nixpkgs/pkgs/by-name/do/dorion/package.nix
new file mode 100644
index 000000000000..2aaefe75a6c8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/dorion/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, glib-networking
+, gst_all_1
+, libappindicator
+, libayatana-appindicator
+, webkitgtk
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  name = "dorion";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "https://github.com/SpikeHD/Dorion/releases/download/v${finalAttrs.version }/Dorion_${finalAttrs.version}_amd64.deb";
+    hash = "sha256-FghJM34GMt8+4b6jsQQSsfmHIyua/pjRHKNErGyK/kw=";
+  };
+
+  unpackCmd = ''
+    dpkg -X $curSrc .
+  '';
+
+  runtimeDependencies = [
+    glib-networking
+    libappindicator
+    libayatana-appindicator
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib-networking
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    webkitgtk
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -pv $out
+    mv -v {bin,lib,share} $out
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/SpikeHD/Dorion";
+    description = "Tiny alternative Discord client";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "dorion";
+    maintainers = with lib.maintainers; [ ];
+    platforms = lib.intersectLists (lib.platforms.linux) (lib.platforms.x86_64);
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/do/dosbox-staging/package.nix b/nixpkgs/pkgs/by-name/do/dosbox-staging/package.nix
new file mode 100644
index 000000000000..fca2cf421044
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/dosbox-staging/package.nix
@@ -0,0 +1,133 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, SDL2
+, SDL2_image
+, SDL2_net
+, alsa-lib
+, copyDesktopItems
+, fluidsynth
+, glib
+, gtest
+, iir1
+, libGL
+, libGLU
+, libjack2
+, libmt32emu
+, libogg
+, libpng
+, libpulseaudio
+, libslirp
+, libsndfile
+, makeDesktopItem
+, makeWrapper
+, meson
+, ninja
+, opusfile
+, pkg-config
+, speexdsp
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dosbox-staging";
+  version = "0.80.1";
+
+  src = fetchFromGitHub {
+    owner = "dosbox-staging";
+    repo = "dosbox-staging";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc=";
+  };
+
+  patches = [
+    # Pull missind SDL2_net dependency:
+    #   https://github.com/dosbox-staging/dosbox-staging/pull/2358
+    (fetchpatch {
+      name = "sdl2-net.patch";
+      url = "https://github.com/dosbox-staging/dosbox-staging/commit/1b02f187a39263f4b0285323dcfe184bccd749c2.patch";
+      hash = "sha256-Ev97xApInu6r5wvI9Q7FhkSXqtMW/rwJj48fExvqnT0=";
+    })
+
+    # Pull missing SDL2_image dependency:
+    #   https://github.com/dosbox-staging/dosbox-staging/pull/2239
+    (fetchpatch {
+      name = "sdl2-image.patch";
+      url = "https://github.com/dosbox-staging/dosbox-staging/commit/ca8b7a906d29a3f8ce956c4af7dc829a6ac3e229.patch";
+      hash = "sha256-WtTVSWWSlfXrdPVsnlDe4P5K/Fnj4QsOzx3Wo/Kusmg=";
+      includes = [ "src/gui/meson.build" ];
+    })
+  ];
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    gtest
+    makeWrapper
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    fluidsynth
+    glib
+    iir1
+    libGL
+    libGLU
+    libjack2
+    libmt32emu
+    libogg
+    libpng
+    libpulseaudio
+    libslirp
+    libsndfile
+    opusfile
+    SDL2
+    SDL2_image
+    SDL2_net
+    speexdsp
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "dosbox-staging";
+      exec = "dosbox-staging";
+      icon = "dosbox-staging";
+      comment = "x86 dos emulator enhanced";
+      desktopName = "DosBox-Staging";
+      genericName = "DOS emulator";
+      categories = [ "Emulator" "Game" ];
+    })
+  ];
+
+  postFixup = ''
+    # Rename binary, add a wrapper, and copy manual to avoid conflict with
+    # original dosbox. Doing it this way allows us to work with frontends and
+    # launchers that expect the binary to be named dosbox, but get out of the
+    # way of vanilla dosbox if the user desires to install that as well.
+    mv $out/bin/dosbox $out/bin/dosbox-staging
+    makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
+
+    # Create a symlink to dosbox manual instead of copying it
+    pushd $out/share/man/man1/
+    ln -s dosbox.1.gz dosbox-staging.1.gz
+    popd
+  '';
+
+  meta = {
+    homepage = "https://dosbox-staging.github.io/";
+    description = "A modernized DOS emulator";
+    longDescription = ''
+      DOSBox Staging is an attempt to revitalize DOSBox's development
+      process. It's not a rewrite, but a continuation and improvement on the
+      existing DOSBox codebase while leveraging modern development tools and
+      practices.
+    '';
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ joshuafern AndersonTorres ];
+    platforms = lib.platforms.unix;
+    priority = 101;
+  };
+})
+# TODO: report upstream about not finding SDL2_net
diff --git a/nixpkgs/pkgs/by-name/do/doublecmd/package.nix b/nixpkgs/pkgs/by-name/do/doublecmd/package.nix
new file mode 100644
index 000000000000..6135efc73c5d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/doublecmd/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, dbus
+, fpc
+, getopt
+, glib
+, lazarus
+, libX11
+, libqt5pas
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "doublecmd";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "doublecmd";
+    repo = "doublecmd";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RKAIZNty+iXeMfsjDOlOyvngx4XU5CSEi0Wap21lFAI=";
+  };
+
+  nativeBuildInputs = [
+    fpc
+    getopt
+    lazarus
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dbus
+    glib
+    libX11
+    libqt5pas
+  ];
+
+  env.NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath finalAttrs.buildInputs}";
+
+  postPatch = ''
+    patchShebangs build.sh install/linux/install.sh
+    substituteInPlace build.sh \
+      --replace '$(which lazbuild)' '"${lazarus}/bin/lazbuild --lazarusdir=${lazarus}/share/lazarus"'
+    substituteInPlace install/linux/install.sh \
+      --replace '$DC_INSTALL_PREFIX/usr' '$DC_INSTALL_PREFIX'
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    export HOME=$(mktemp -d)
+    ./build.sh release qt5
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install/linux/install.sh -I $out
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://doublecmd.sourceforge.io/";
+    description = "Two-panel graphical file manager written in Pascal";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "doublecmd";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
+# TODO: deal with other platforms too
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk/package.nix b/nixpkgs/pkgs/by-name/dx/dxvk/package.nix
new file mode 100644
index 000000000000..88b7e5b104fb
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, pkgsCross
+, stdenv
+, bash
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs:
+  let
+    dxvk32 = if stdenv.isDarwin
+      then pkgsCross.mingw32.dxvk_1.override { enableMoltenVKCompat = true; }
+      else pkgsCross.mingw32.dxvk_2;
+    dxvk64 = if stdenv.isDarwin
+      then pkgsCross.mingwW64.dxvk_1.override { enableMoltenVKCompat = true; }
+      else pkgsCross.mingwW64.dxvk_2;
+  in
+  {
+    pname = "dxvk";
+    inherit (dxvk64) version;
+
+    outputs = [ "out" "bin" "lib" ];
+
+    dontUnpack = true;
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/bin $bin $lib
+      substitute ${./setup_dxvk.sh} $out/bin/setup_dxvk.sh \
+        --subst-var-by bash ${bash} \
+        --subst-var-by dxvk32 ${dxvk32} \
+        --subst-var-by dxvk64 ${dxvk64} \
+        --subst-var-by mcfgthreads32 "${pkgsCross.mingw32.windows.mcfgthreads_pre_gcc_13}" \
+        --subst-var-by mcfgthreads64 "${pkgsCross.mingwW64.windows.mcfgthreads_pre_gcc_13}"
+      chmod a+x $out/bin/setup_dxvk.sh
+      declare -A dxvks=( [x32]=${dxvk32} [x64]=${dxvk64} )
+      for arch in "''${!dxvks[@]}"; do
+        ln -s "''${dxvks[$arch]}/bin" $bin/$arch
+        ln -s "''${dxvks[$arch]}/lib" $lib/$arch
+      done
+    '';
+
+    meta = {
+      description = "Setup script for DXVK";
+      homepage = "https://github.com/doitsujin/dxvk";
+      changelog = "https://github.com/doitsujin/dxvk/releases";
+      maintainers = [ lib.maintainers.reckenrode ];
+      license = lib.licenses.zlib;
+      platforms = [ "x86_64-darwin" "i686-linux" "x86_64-linux" ];
+    };
+  })
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk/setup_dxvk.sh b/nixpkgs/pkgs/by-name/dx/dxvk/setup_dxvk.sh
new file mode 100644
index 000000000000..4926acd3ba89
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk/setup_dxvk.sh
@@ -0,0 +1,266 @@
+#!@bash@/bin/bash -e
+
+set -eu -o pipefail
+
+# shellcheck disable=SC2034
+{
+    dxvk32_dir=@dxvk32@/bin
+    dxvk64_dir=@dxvk64@/bin
+
+    mcfgthreads32_dir=@mcfgthreads32@/bin
+    mcfgthreads64_dir=@mcfgthreads64@/bin
+}
+
+## Defaults
+
+declare -A dlls=(
+    [d3d9]="dxvk/d3d9.dll"
+    [d3d10]="dxvk/d3d10.dll dxvk/d3d10_1.dll dxvk/d3d10core.dll"
+    [d3d11]="dxvk/d3d11.dll"
+    [dxgi]="dxvk/dxgi.dll"
+    [mcfgthreads]="mcfgthreads/mcfgthread-12.dll"
+)
+
+declare -A targets=([d3d9]=1 [d3d11]=1 [dxgi]=1 [mcfgthreads]=1)
+
+## Command-line Parsing
+
+usage() {
+    echo "DXVK @version@"
+    echo "Set up Wine prefix with DXVK DLLs"
+    echo
+    echo "USAGE"
+    echo "    $0 [install|uninstall] [OPTIONS]"
+    echo
+    echo "COMMANDS"
+    echo "    install                  Copy the DXVK DLLs into the prefix"
+    echo "    uninstall                Restore the backed up Wine DLLs in the prefix"
+    echo
+    echo "OPTIONS"
+    echo "    --with(out)-dxgi         Copy DXVK DXGI DLL into prefix (default: with DXGI)"
+    echo "    --with(out)-d3d10        Copy D3D10 DLLs into prefix (default: without D3D10)"
+    echo "    -s, --symlink            Symlink instead of copy"
+    echo "    -f, --force              Create a Wine prefix even if it does not exist"
+    echo "    -p, --prefix <PREFIX>    Wine prefix to manage (default: \$WINEPREFIX)"
+    exit 1
+}
+
+case "${1:-}" in
+    uninstall|install)
+        action=$1
+        shift
+        ;;
+    -h|--help)
+        usage
+        ;;
+    *)
+        if [ -n "${1:-}" ]; then
+            echo "Unrecognized command: $1"
+        fi
+        usage
+        ;;
+esac
+
+
+do_symlink=false
+do_makeprefix=false
+
+while [ -n "${1:-}" ]; do
+    case "$1" in
+        --with-dxgi)
+            targets[dxgi]=1
+            ;;
+        --without-dxgi)
+            unset "targets[dxgi]"
+            ;;
+        --with-d3d10)
+            targets[d3d10]=1
+            ;;
+        --without-d3d10)
+            unset "targets[d3d10]"
+            ;;
+        -s|--symlink)
+            do_symlink=true
+            ;;
+        --no-symlink)
+            do_symlink=false
+            ;;
+        -f|--force)
+            do_makeprefix=true
+            ;;
+        --no-force)
+            do_makeprefix=false
+            ;;
+        -p|--prefix)
+            shift
+            if [ -n "${1:-}" ]; then
+                WINEPREFIX=$1
+            else
+                echo "Required PREFIX missing"
+                usage
+            fi
+            ;;
+        -h|--help)
+            usage
+            ;;
+        *)
+            echo "Unrecognized option: $1"
+            usage
+            ;;
+    esac
+    shift
+done
+
+## Get information on the Wine environment
+
+export WINEPREFIX=${WINEPREFIX:-"$HOME/.wine"}
+
+# check wine prefix before invoking wine, so that we
+# don't accidentally create one if the user screws up
+if ! $do_makeprefix && [ -n "$WINEPREFIX" ] && ! [ -f "$WINEPREFIX/system.reg" ]; then
+    echo "$WINEPREFIX: Not a valid wine prefix." >&2
+    exit 1
+fi
+
+export WINEDEBUG=-all
+# disable mscoree and mshtml to avoid downloading
+# wine gecko and mono
+export WINEDLLOVERRIDES="mscoree,mshtml="
+
+wine="wine"
+wine64="wine64"
+wineboot="wineboot"
+
+# $PATH is the way for user to control where wine is located (including custom Wine versions).
+# Pure 64-bit Wine (non Wow64) requries skipping 32-bit steps.
+# In such case, wine64 and winebooot will be present, but wine binary will be missing,
+# however it can be present in other PATHs, so it shouldn't be used, to avoid versions mixing.
+wine_path=$(dirname "$(command -v $wineboot)")
+wow64=true
+if ! [ -f "$wine_path/$wine" ]; then
+   wine=$wine64
+   wow64=false
+fi
+
+# resolve 32-bit and 64-bit system32 path
+winever=$($wine --version | grep wine)
+if [ -z "$winever" ]; then
+    echo "$wine: Not a wine executable. Check your $wine." >&2
+    exit 1
+fi
+
+# ensure wine placeholder dlls are recreated
+# if they are missing
+$wineboot -u
+
+win64_sys_path=$($wine64 winepath -u 'C:\windows\system32' 2> /dev/null)
+win64_sys_path="${win64_sys_path/$'\r'/}"
+if $wow64; then
+  win32_sys_path=$($wine winepath -u 'C:\windows\system32' 2> /dev/null)
+  win32_sys_path="${win32_sys_path/$'\r'/}"
+fi
+
+if [ -z "${win32_sys_path:-}" ] && [ -z "${win64_sys_path:-}" ]; then
+  echo 'Failed to resolve C:\windows\system32.' >&2
+  exit 1
+fi
+
+## Utility functions
+
+install_file() {
+    $do_symlink && file_cmd="ln -sv" || file_cmd="install -m 755 -v"
+
+    srcfile=$1
+    dstfile=$2
+
+    if [ -f "${srcfile}.so" ]; then
+        srcfile="${srcfile}.so"
+    fi
+
+    if ! [ -f "${srcfile}" ]; then
+        echo "${srcfile}: File not found. Skipping." >&2
+        return 1
+    fi
+
+    if [ -n "$1" ]; then
+        if [ -f "${dstfile}" ] || [ -h "${dstfile}" ]; then
+            if ! [ -f "${dstfile}.old" ]; then
+                mv -v "${dstfile}" "${dstfile}.old"
+            else
+                rm -v "${dstfile}"
+            fi
+        fi
+        $file_cmd "${srcfile}" "${dstfile}"
+    else
+        echo "${dstfile}: File not found in wine prefix" >&2
+        return 1
+    fi
+}
+
+uninstall_file() {
+    srcfile=$1
+    dstfile=$2
+
+    if [ -f "${srcfile}.so" ]; then
+        srcfile="${srcfile}.so"
+    fi
+
+    if ! [ -f "${srcfile}" ]; then
+        echo "${srcfile}: File not found. Skipping." >&2
+        return 1
+    fi
+
+    if ! [ -f "${dstfile}" ] && ! [ -h "${dstfile}" ]; then
+        echo "${dstfile}: File not found. Skipping." >&2
+        return 1
+    fi
+
+    if [ -f "${dstfile}.old" ]; then
+        rm -v "${dstfile}"
+        mv -v "${dstfile}.old" "${dstfile}"
+        return 0
+    else
+        return 1
+    fi
+}
+
+install_override() {
+    dll=$(basename "$1")
+    if ! $wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /d native /f >/dev/null 2>&1; then
+        echo -e "Failed to add override for $dll"
+        exit 1
+    fi
+}
+
+uninstall_override() {
+    dll=$(basename "$1")
+    if ! $wine reg delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /f > /dev/null 2>&1; then
+        echo "Failed to remove override for $dll"
+    fi
+}
+
+## Perform the requested command
+
+declare -A paths
+
+for target in "${!targets[@]}"; do
+    [ "${targets[$target]}" -eq 1 ] || continue
+    for dll in ${dlls[$target]}; do
+        dllname=$(basename "$dll")
+        basedir=$(dirname "$dll")
+
+        if [ -n "${win32_sys_path:-}" ]; then
+            basedir32=${basedir}32_dir
+            paths["${!basedir32}/$dllname"]="$win32_sys_path/$dllname"
+        fi
+        if [ -n "${win64_sys_path:-}" ]; then
+            basedir64=${basedir}64_dir
+            paths["${!basedir64}/$dllname"]="$win64_sys_path/$dllname"
+        fi
+    done
+done
+
+for srcpath in "${!paths[@]}"; do
+    "${action}_file" "$srcpath" "${paths["$srcpath"]}"
+    "${action}_override" "$(basename "$srcpath" .dll)"
+done
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch
new file mode 100644
index 000000000000..99833a020cda
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch
@@ -0,0 +1,48 @@
+diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp
+index 09f3559a..215787f9 100644
+--- a/src/d3d11/d3d11_device.cpp
++++ b/src/d3d11/d3d11_device.cpp
+@@ -801,8 +801,12 @@ namespace dxvk {
+     InitReturnPtr(ppGeometryShader);
+     D3D11CommonShader module;
+
+-    if (!m_dxvkDevice->features().extTransformFeedback.transformFeedback)
+-      return DXGI_ERROR_INVALID_CALL;
++    if (!m_dxvkDevice->features().extTransformFeedback.transformFeedback) {
++        Logger::err(
++                 "D3D11: CreateGeometryShaderWithStreamOutput:"
++                 "\n  Transform feedback not supported by device");
++        return S_OK;
++    }
+
+     // Zero-init some counterss so that we can increment
+     // them while walking over the stream output entries
+@@ -1920,7 +1924,7 @@ namespace dxvk {
+     DxvkDeviceFeatures supported = adapter->features();
+     DxvkDeviceFeatures enabled   = {};
+
+-    enabled.core.features.geometryShader                          = VK_TRUE;
++    enabled.core.features.geometryShader                          = supported.core.features.geometryShader;
+     enabled.core.features.robustBufferAccess                      = VK_TRUE;
+     enabled.core.features.shaderStorageImageWriteWithoutFormat    = VK_TRUE;
+     enabled.core.features.depthBounds                             = supported.core.features.depthBounds;
+@@ -1951,7 +1955,7 @@ namespace dxvk {
+       enabled.core.features.sampleRateShading                     = VK_TRUE;
+       enabled.core.features.samplerAnisotropy                     = supported.core.features.samplerAnisotropy;
+       enabled.core.features.shaderClipDistance                    = VK_TRUE;
+-      enabled.core.features.shaderCullDistance                    = VK_TRUE;
++      enabled.core.features.shaderCullDistance                    = supported.core.features.shaderCullDistance;
+       enabled.core.features.textureCompressionBC                  = VK_TRUE;
+       enabled.extDepthClipEnable.depthClipEnable                  = supported.extDepthClipEnable.depthClipEnable;
+       enabled.extHostQueryReset.hostQueryReset                    = VK_TRUE;
+@@ -1971,8 +1975,8 @@ namespace dxvk {
+       enabled.core.features.logicOp                               = supported.core.features.logicOp;
+       enabled.core.features.shaderImageGatherExtended             = VK_TRUE;
+       enabled.core.features.variableMultisampleRate               = supported.core.features.variableMultisampleRate;
+-      enabled.extTransformFeedback.transformFeedback              = VK_TRUE;
+-      enabled.extTransformFeedback.geometryStreams                = VK_TRUE;
++      enabled.extTransformFeedback.transformFeedback              = supported.extTransformFeedback.transformFeedback;
++      enabled.extTransformFeedback.geometryStreams                = supported.extTransformFeedback.geometryStreams;
+     }
+
+     if (featureLevel >= D3D_FEATURE_LEVEL_10_1) {
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch
new file mode 100644
index 000000000000..c008099407c5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch
@@ -0,0 +1,186 @@
+diff --git a/src/util/thread.h b/src/util/thread.h
+index 28aeca8a..db5c9913 100644
+--- a/src/util/thread.h
++++ b/src/util/thread.h
+@@ -149,178 +149,8 @@ namespace dxvk {
+     }
+   }
+ 
+-
+-  /**
+-   * \brief SRW-based mutex implementation
+-   *
+-   * Drop-in replacement for \c std::mutex that uses Win32
+-   * SRW locks, which are implemented with \c futex in wine.
+-   */
+-  class mutex {
+-
+-  public:
+-
+-    using native_handle_type = PSRWLOCK;
+-
+-    mutex() { }
+-
+-    mutex(const mutex&) = delete;
+-    mutex& operator = (const mutex&) = delete;
+-
+-    void lock() {
+-      AcquireSRWLockExclusive(&m_lock);
+-    }
+-
+-    void unlock() {
+-      ReleaseSRWLockExclusive(&m_lock);
+-    }
+-
+-    bool try_lock() {
+-      return TryAcquireSRWLockExclusive(&m_lock);
+-    }
+-
+-    native_handle_type native_handle() {
+-      return &m_lock;
+-    }
+-
+-  private:
+-
+-    SRWLOCK m_lock = SRWLOCK_INIT;
+-
+-  };
+-
+-
+-  /**
+-   * \brief Recursive mutex implementation
+-   *
+-   * Drop-in replacement for \c std::recursive_mutex that
+-   * uses Win32 critical sections.
+-   */
+-  class recursive_mutex {
+-
+-  public:
+-
+-    using native_handle_type = PCRITICAL_SECTION;
+-
+-    recursive_mutex() {
+-      InitializeCriticalSection(&m_lock);
+-    }
+-
+-    ~recursive_mutex() {
+-      DeleteCriticalSection(&m_lock);
+-    }
+-
+-    recursive_mutex(const recursive_mutex&) = delete;
+-    recursive_mutex& operator = (const recursive_mutex&) = delete;
+-
+-    void lock() {
+-      EnterCriticalSection(&m_lock);
+-    }
+-
+-    void unlock() {
+-      LeaveCriticalSection(&m_lock);
+-    }
+-
+-    bool try_lock() {
+-      return TryEnterCriticalSection(&m_lock);
+-    }
+-
+-    native_handle_type native_handle() {
+-      return &m_lock;
+-    }
+-
+-  private:
+-
+-    CRITICAL_SECTION m_lock;
+-
+-  };
+-
+-
+-  /**
+-   * \brief SRW-based condition variable implementation
+-   *
+-   * Drop-in replacement for \c std::condition_variable that
+-   * uses Win32 condition variables on SRW locks.
+-   */
+-  class condition_variable {
+-
+-  public:
+-
+-    using native_handle_type = PCONDITION_VARIABLE;
+-
+-    condition_variable() {
+-      InitializeConditionVariable(&m_cond);
+-    }
+-
+-    condition_variable(condition_variable&) = delete;
+-
+-    condition_variable& operator = (condition_variable&) = delete;
+-
+-    void notify_one() {
+-      WakeConditionVariable(&m_cond);
+-    }
+-
+-    void notify_all() {
+-      WakeAllConditionVariable(&m_cond);
+-    }
+-
+-    void wait(std::unique_lock<dxvk::mutex>& lock) {
+-      auto srw = lock.mutex()->native_handle();
+-      SleepConditionVariableSRW(&m_cond, srw, INFINITE, 0);
+-    }
+-
+-    template<typename Predicate>
+-    void wait(std::unique_lock<dxvk::mutex>& lock, Predicate pred) {
+-      while (!pred())
+-        wait(lock);
+-    }
+-
+-    template<typename Clock, typename Duration>
+-    std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
+-      auto now = Clock::now();
+-
+-      return (now < time)
+-        ? wait_for(lock, now - time)
+-        : std::cv_status::timeout;
+-    }
+-
+-    template<typename Clock, typename Duration, typename Predicate>
+-    bool wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time, Predicate pred) {
+-      if (pred())
+-        return true;
+-
+-      auto now = Clock::now();
+-      return now < time && wait_for(lock, now - time, pred);
+-    }
+-
+-    template<typename Rep, typename Period>
+-    std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
+-      auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(timeout);
+-      auto srw = lock.mutex()->native_handle();
+-
+-      return SleepConditionVariableSRW(&m_cond, srw, ms.count(), 0)
+-        ? std::cv_status::no_timeout
+-        : std::cv_status::timeout;
+-    }
+-
+-    template<typename Rep, typename Period, typename Predicate>
+-    bool wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout, Predicate pred) {
+-      bool result = pred();
+-
+-      if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
+-        result = pred();
+-
+-      return result;
+-    }
+-
+-    native_handle_type native_handle() {
+-      return &m_cond;
+-    }
+-
+-  private:
+-
+-    CONDITION_VARIABLE m_cond;
+-
+-  };
++  using mutex = std::mutex;
++  using recursive_mutex = std::recursive_mutex;
++  using condition_variable = std::condition_variable;
+ 
+ }
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk_1/package.nix b/nixpkgs/pkgs/by-name/dx/dxvk_1/package.nix
new file mode 100644
index 000000000000..44a39eeaba25
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk_1/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glslang
+, meson
+, ninja
+, windows
+, pkgsBuildHost
+, enableMoltenVKCompat ? false
+}:
+
+let
+  isCross = stdenv.hostPlatform != stdenv.targetPlatform;
+in
+stdenv.mkDerivation (finalAttrs:  {
+  pname = "dxvk";
+  version = "1.10.3";
+
+  src = fetchFromGitHub {
+    owner = "doitsujin";
+    repo = "dxvk";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-T93ZylxzJGprrP+j6axZwl2d3hJowMCUOKNjIyNzkmE=";
+  };
+
+  # These patches are required when using DXVK with Wine on Darwin.
+  patches = lib.optionals enableMoltenVKCompat [
+    # Patch DXVK to work with MoltenVK even though it doesn’t support some required features.
+    # Some games work poorly (particularly Unreal Engine 4 games), but others work pretty well.
+    ./darwin-dxvk-compat.patch
+    # Use synchronization primitives from the C++ standard library to avoid deadlocks on Darwin.
+    # See: https://www.reddit.com/r/macgaming/comments/t8liua/comment/hzsuce9/
+    ./darwin-thread-primitives.patch
+  ];
+
+  nativeBuildInputs = [ glslang meson ninja ];
+  buildInputs = [ windows.pthreads ];
+
+  mesonFlags =
+    let
+      arch = if stdenv.is32bit then "32" else "64";
+    in
+    [
+      "--buildtype" "release"
+      "--prefix" "${placeholder "out"}"
+    ]
+    ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ];
+
+  meta = {
+    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    homepage = "https://github.com/doitsujin/dxvk";
+    changelog = "https://github.com/doitsujin/dxvk/releases";
+    maintainers = [ lib.maintainers.reckenrode ];
+    license = lib.licenses.zlib;
+    platforms = lib.platforms.windows;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk_2/package.nix b/nixpkgs/pkgs/by-name/dx/dxvk_2/package.nix
new file mode 100644
index 000000000000..e1fa64ffee05
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dx/dxvk_2/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkgsBuildHost
+, glslang
+, meson
+, ninja
+, windows
+, spirv-headers
+, vulkan-headers
+, SDL2
+, glfw
+, gitUpdater
+, sdl2Support ? true
+, glfwSupport ? false
+}:
+
+# SDL2 and GLFW support are mutually exclusive.
+assert !sdl2Support || !glfwSupport;
+
+let
+  isCross = stdenv.hostPlatform != stdenv.targetPlatform;
+  isWindows = stdenv.hostPlatform.uname.system == "Windows";
+in
+stdenv.mkDerivation (finalAttrs:  {
+  pname = "dxvk";
+  version = "2.3";
+
+  src = fetchFromGitHub {
+    owner = "doitsujin";
+    repo = "dxvk";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RU+B0XfphD5HHW/vSzqHLUaGS3E31d5sOLp3lMmrCB8=";
+    fetchSubmodules = true; # Needed for the DirectX headers and libdisplay-info
+  };
+
+  postPatch = ''
+    substituteInPlace "subprojects/libdisplay-info/tool/gen-search-table.py" \
+      --replace "/usr/bin/env python3" "${lib.getBin pkgsBuildHost.python3}/bin/python3"
+  '';
+
+  nativeBuildInputs = [ glslang meson ninja ];
+  buildInputs = [ spirv-headers vulkan-headers ]
+    ++ lib.optionals (!isWindows && sdl2Support) [ SDL2 ]
+    ++ lib.optionals (!isWindows && glfwSupport) [ glfw ]
+    ++ lib.optionals isWindows [ windows.pthreads ];
+
+  # Build with the Vulkan SDK in nixpkgs.
+  preConfigure = ''
+    rm -rf include/spirv/include include/vulkan/include
+    mkdir -p include/spirv/include include/vulkan/include
+  '';
+
+  mesonFlags =
+    let
+      arch = if stdenv.is32bit then "32" else "64";
+    in
+    [
+      "--buildtype" "release"
+      "--prefix" "${placeholder "out"}"
+    ]
+    ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ]
+    ++ lib.optional glfwSupport "-Ddxvk_native_wsi=glfw";
+
+  doCheck = !isCross;
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    homepage = "https://github.com/doitsujin/dxvk";
+    changelog = "https://github.com/doitsujin/dxvk/releases";
+    maintainers = [ lib.maintainers.reckenrode ];
+    license = lib.licenses.zlib;
+    platforms = lib.platforms.windows ++ lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/dy/dyalog/dyalogscript.patch b/nixpkgs/pkgs/by-name/dy/dyalog/dyalogscript.patch
new file mode 100644
index 000000000000..a65878b7adec
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dy/dyalog/dyalogscript.patch
@@ -0,0 +1,8 @@
+--- a/scriptbin/dyalogscript
++++ b/scriptbin/dyalogscript
+@@ -5,1 +5,1 @@
+-INSTALLDIR="/opt/mdyalog/18.2/64/unicode"
++INSTALLDIR="@installdir@"
+@@ -40,1 +40,1 @@
+-: ${SCRIPTDIR:=$INSTALLDIR}
++SCRIPTDIR="@scriptdir@"
diff --git a/nixpkgs/pkgs/by-name/dy/dyalog/mapl.patch b/nixpkgs/pkgs/by-name/dy/dyalog/mapl.patch
new file mode 100644
index 000000000000..32424bea124e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dy/dyalog/mapl.patch
@@ -0,0 +1,31 @@
+diff --git a/mapl b/mapl
+index c9d3727..de24c77 100755
+--- a/mapl
++++ b/mapl
+@@ -20,26 +20,8 @@ SHORTVERSION=182U64
+ LONGVERSION="18.2 64-bit Unicode"
+ REL="`echo "${LONGVERSION}" | sed 's/ .*$//'`"
+ 
+-# Find the Dyalog installation directory
+-if [ "$(uname)" = Linux ]; then
+-	# this script location, canonical.
+-	THIS="$(readlink -f $0)"
+-else
+-	# this script location.
+-	THIS="$0"
+-fi
+-export DYALOG=$(cd $(dirname $THIS) && pwd)
+-
+ export APL_LANGUAGE_BAR_FILE=${DYALOG}/languagebar.json
+ 
+-if [ "$(uname)" = Linux ]; then
+-	if [ "x" = "x${LD_LIBRARY_PATH}" ]; then
+-		export LD_LIBRARY_PATH="${DYALOG}"
+-	else
+-		export LD_LIBRARY_PATH="${DYALOG}:${LD_LIBRARY_PATH}"
+-	fi
+-fi
+-
+ # Setup the configuration directory
+ MYCONFIGDIR=${HOME}/.dyalog
+ if [ ! -d "${MYCONFIGDIR}" ] ; then
diff --git a/nixpkgs/pkgs/by-name/dy/dyalog/package.nix b/nixpkgs/pkgs/by-name/dy/dyalog/package.nix
new file mode 100644
index 000000000000..c8786d5d6baa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dy/dyalog/package.nix
@@ -0,0 +1,225 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+
+, config
+, acceptLicense ? config.dyalog.acceptLicense or false
+
+, autoPatchelfHook
+, dpkg
+, makeWrapper
+
+, copyDesktopItems
+, makeDesktopItem
+
+, glib
+, ncurses5
+
+, dotnet-sdk_6
+, dotnetSupport ? false
+
+, alsa-lib
+, gtk2
+, libXdamage
+, libXtst
+, libXScrnSaver
+, nss
+, htmlRendererSupport ? false
+
+, R
+, rPackages
+, rSupport ? false
+
+, unixODBC
+, sqaplSupport ? false
+
+, zeroFootprintRideSupport ? false
+
+, enableDocs ? false
+}:
+
+let
+  dyalogHome = "$out/lib/dyalog";
+
+  rscproxy = rPackages.buildRPackage {
+    name = "rscproxy";
+    src = fetchFromGitHub {
+      owner = "Dyalog";
+      repo = "rscproxy";
+      rev = "31de3323fb8596ff5ecbf4bacd030e542cfd8133";
+      hash = "sha256-SVoBoAWUmQ+jWaTG7hdmyRq6By4RnmmgWZXoua19/Kg=";
+    };
+  };
+
+  makeWrapperArgs = [
+    "--set DYALOG ${dyalogHome}"
+    # also needs to be set when the `-script` flag is used
+    "--add-flags DYALOG=${dyalogHome}"
+    # needed for default user commands to work
+    "--add-flags SESSION_FILE=${dyalogHome}/default.dse"
+  ]
+  ++ lib.optionals dotnetSupport [
+    # needs to be set to run .NET Bridge
+    "--set DOTNET_ROOT ${dotnet-sdk_6}"
+    # .NET Bridge files are runtime dependencies, but cannot be patchelf'd
+    "--prefix LD_LIBRARY_PATH : ${dyalogHome}"
+  ]
+  ++ lib.optionals rSupport [
+    # RConnect resolves R from PATH
+    "--prefix PATH : ${R}/bin"
+    # RConnect uses `ldd` to find `libR.so`
+    "--prefix LD_LIBRARY_PATH : ${R}/lib/R/lib"
+    # RConnect uses `rscproxy` to communicate with R
+    "--prefix R_LIBS_SITE : ${rscproxy}/library"
+  ];
+
+  licenseUrl = "https://www.dyalog.com/uploads/documents/Developer_Software_Licence.pdf";
+
+  licenseDisclaimer = ''
+    Dyalog is a licenced software. Dyalog licences do not include a licence to distribute Dyalog with your work.
+    For non-commercial purposes, a Basic Licence is granted when you accept the conditions and download a free copy of Dyalog.
+
+    More details about the license can be found here: ${licenseUrl}
+
+    If you agree to these terms, you can either override this package:
+    `dyalog.override { acceptLicense = true; }`
+
+    or you can set the following nixpkgs config option:
+    `config.dyalog.acceptLicense = true;`
+  '';
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dyalog";
+  version = "18.2.45405";
+  shortVersion = lib.versions.majorMinor finalAttrs.version;
+
+  src =
+    assert !acceptLicense -> throw licenseDisclaimer;
+    fetchurl {
+      url = "https://download.dyalog.com/download.php?file=${finalAttrs.shortVersion}/linux_64_${finalAttrs.version}_unicode.x86_64.deb";
+      sha256 = "sha256-pA/WGTA6YvwG4MgqbiPBLKSKPtLGQM7BzK6Bmyz5pmM=";
+    };
+
+  outputs = [ "out" ] ++ lib.optional enableDocs "doc";
+
+  postUnpack = ''
+    sourceRoot=$sourceRoot/opt/mdyalog/${finalAttrs.shortVersion}/64/unicode
+  '';
+
+  patches = [ ./dyalogscript.patch ./mapl.patch ];
+
+  postPatch = lib.optionalString dotnetSupport ''
+    # Patch to use .NET 6.0 instead of .NET Core 3.1 (can be removed when Dyalog 19.0 releases)
+    substituteInPlace Dyalog.Net.Bridge.*.json --replace "3.1" "6.0"
+  '';
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    copyDesktopItems
+    dpkg
+    makeWrapper
+  ];
+
+  buildInputs = [
+    glib # Used by Conga and .NET Bridge
+    ncurses5 # Used by the dyalog binary
+  ]
+  ++ lib.optionals htmlRendererSupport [
+    alsa-lib
+    gtk2
+    libXdamage
+    libXtst
+    libXScrnSaver
+    nss
+  ]
+  ++ lib.optionals sqaplSupport [
+    unixODBC
+  ];
+
+  # See which files are not really important: `https://github.com/Dyalog/DyalogDocker/blob/master/rmfiles.sh`
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p ${dyalogHome}
+    cp -r aplfmt aplkeys apltrans fonts Library PublicCACerts SALT StartupSession ${dyalogHome}
+    cp aplkeys.sh default.dse dyalog dyalog.rt dyalog.dcfg.template dyalog.ver.dcfg.template languagebar.json mapl startup.dyalog ${dyalogHome}
+
+    mkdir ${dyalogHome}/lib
+    cp lib/{conga34_64.so,dyalog64.so,libconga34ssl64.so} ${dyalogHome}/lib
+
+    # Only keep the most useful workspaces
+    mkdir ${dyalogHome}/ws
+    cp ws/{conga,dfns,isolate,loaddata,salt,sharpplot,util}.dws ${dyalogHome}/ws
+  ''
+  + lib.optionalString dotnetSupport ''
+    cp libnethost.so Dyalog.Net.Bridge.* ${dyalogHome}
+  ''
+  + lib.optionalString htmlRendererSupport ''
+    cp -r locales swiftshader ${dyalogHome}
+    cp libcef.so libEGL.so libGLESv2.so chrome-sandbox natives_blob.bin snapshot_blob.bin icudtl.dat v8_context_snapshot.bin *.pak ${dyalogHome}
+    cp lib/htmlrenderer.so ${dyalogHome}/lib
+  ''
+  + lib.optionalString rSupport ''
+    cp ws/rconnect.dws ${dyalogHome}/ws
+  ''
+  + lib.optionalString sqaplSupport ''
+    cp lib/cxdya64u64u.so ${dyalogHome}/lib
+    cp ws/sqapl.dws ${dyalogHome}/ws
+    cp odbc.ini.sample sqapl.err sqapl.ini ${dyalogHome}
+  ''
+  + lib.optionalString zeroFootprintRideSupport ''
+    cp -r RIDEapp ${dyalogHome}
+  ''
+  + lib.optionalString enableDocs ''
+    mkdir -p $doc/share/doc/dyalog
+    cp -r help/* $doc/share/doc/dyalog
+    ln -s $doc/share/doc/dyalog ${dyalogHome}/help
+  ''
+  + ''
+    install -Dm644 dyalog.svg $out/share/icons/hicolor/scalable/apps/dyalog.svg
+
+    makeWrapper ${dyalogHome}/dyalog $out/bin/dyalog ${lib.concatStringsSep " " makeWrapperArgs}
+    makeWrapper ${dyalogHome}/mapl $out/bin/mapl ${lib.concatStringsSep " " makeWrapperArgs}
+
+    install -Dm755 scriptbin/dyalogscript $out/bin/dyalogscript
+    substituteInPlace $out/bin/dyalogscript \
+        --subst-var-by installdir ${dyalogHome} \
+        --subst-var-by scriptdir $out/bin
+
+    runHook postInstall
+  '';
+
+  preFixup = lib.optionalString htmlRendererSupport ''
+    # `libudev.so` is a runtime dependency of CEF
+    patchelf ${dyalogHome}/libcef.so --add-needed libudev.so
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "dyalog";
+      desktopName = "Dyalog";
+      exec = finalAttrs.meta.mainProgram;
+      comment = finalAttrs.meta.description;
+      icon = "dyalog";
+      categories = [ "Development" ];
+      genericName = "APL interpreter";
+      terminal = true;
+    })
+  ];
+
+  meta = {
+    changelog = "https://dyalog.com/dyalog/dyalog-versions/${lib.replaceStrings [ "." ] [ "" ] finalAttrs.shortVersion}.htm";
+    description = "The Dyalog APL interpreter";
+    homepage = "https://www.dyalog.com";
+    license = {
+      fullName = "Dyalog License";
+      url = licenseUrl;
+      free = false;
+    };
+    mainProgram = "dyalog";
+    maintainers = with lib.maintainers; [ tomasajt markus1189 ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ec/ecc/package.nix b/nixpkgs/pkgs/by-name/ec/ecc/package.nix
new file mode 100644
index 000000000000..733e7a1f3cc4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ec/ecc/package.nix
@@ -0,0 +1,124 @@
+{ lib
+, makeWrapper
+, fetchFromGitHub
+, rustPackages
+, pkg-config
+, elfutils
+, zlib
+}:
+let
+  inherit (rustPackages.rustc) llvmPackages;
+  inherit (rustPackages) rustPlatform;
+  bpftool = llvmPackages.stdenv.mkDerivation {
+    pname = "bpftool";
+    version = "unstable-2023-03-11";
+
+    # this fork specialized for some functions
+    # and has eventually been embedded into the ecc binary
+    src = fetchFromGitHub {
+      owner = "eunomia-bpf";
+      repo = "bpftool";
+      rev = "05940344f5db18d0cb1bc1c42e628f132bc93123";
+      hash = "sha256-g2gjixfuGwVnFlqCMGLWVPbtKOSpQI+vZwIZciXFPTc=";
+      fetchSubmodules = true;
+    };
+
+    buildInputs = [
+      llvmPackages.libllvm
+      elfutils
+      zlib
+    ];
+
+    buildPhase = ''
+      make -C src
+    '';
+
+    installPhase = ''
+      # We don't use the default `make install` because we are looking to create a
+      # directory structure compatible with `build.rs` of `ecc`.
+      mkdir -p $out/src/libbpf
+      # some headers are required
+      cp -r src/libbpf/include $out/src/libbpf
+      cp src/bpftool $out/src
+    '';
+  };
+
+  vmlinux-headers = fetchFromGitHub {
+    owner = "eunomia-bpf";
+    repo = "vmlinux";
+    rev = "933f83becb45f5586ed5fd089e60d382aeefb409";
+    hash = "sha256-CVEmKkzdFNLKCbcbeSIoM5QjYVLQglpz6gy7+ZFPgCY=";
+  };
+
+in
+rustPlatform.buildRustPackage rec {
+  pname = "ecc";
+  version = "1.0.11";
+
+  src = fetchFromGitHub {
+    owner = "eunomia-bpf";
+    repo = "eunomia-bpf";
+    rev = "v${version}";
+    hash = "sha256-UiwS+osyC3gtbQH0bWNsx1p3xYr993/FAZ5d5NKnaBM=";
+  };
+
+  sourceRoot = "${src.name}/compiler/cmd";
+
+  cargoHash = "sha256-j2HPSmU/JARfw2mE1IiXFT/dcdxxnp+agC2DN0Kc5nw=";
+
+  nativeBuildInputs = [
+    pkg-config
+    makeWrapper
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [
+    elfutils
+    zlib
+  ];
+
+  CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER = "gcc";
+
+  preBuild = ''
+    # `SANDBOX` defined by upstream to disable build-time network access
+    export SANDBOX=1
+    # specify dependencies' location
+    export VMLINUX_DIR=${vmlinux-headers}
+    export BPFTOOL_DIR=${bpftool}
+  '';
+
+  preCheck = ''
+    export HOME=$NIX_BUILD_TOP
+  '';
+
+  checkFlags = [
+    # requires network access
+    "--skip=bpf_compiler::tests::test_generate_custom_btf"
+
+    # FIXME: requires dynamic link `libclang` or clang binary which are not found in check env
+    "--skip=bpf_compiler::tests::test_compile_bpf"
+    "--skip=bpf_compiler::tests::test_export_multi_and_pack"
+    "--skip=document_parser::test::test_parse_empty"
+    "--skip=document_parser::test::test_parse_maps"
+    "--skip=document_parser::test::test_parse_progss"
+    "--skip=document_parser::test::test_parse_variables"
+  ];
+
+  passthru = {
+    inherit bpftool;
+  };
+
+  postFixup = ''
+    wrapProgram $out/bin/ecc-rs \
+      --prefix LIBCLANG_PATH : ${llvmPackages.libclang.lib}/lib \
+      --prefix PATH : ${lib.makeBinPath (with llvmPackages; [clang bintools-unwrapped])}
+  '';
+
+  meta = with lib; {
+    homepage = "https://eunomia.dev";
+    description = "the eBPF compile toolchain for eunomia-bpf";
+    maintainers = with maintainers; [ oluceps ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ec/ecmtools/package.nix b/nixpkgs/pkgs/by-name/ec/ecmtools/package.nix
new file mode 100644
index 000000000000..ecb9f6eb999f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ec/ecmtools/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ecm-tools";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "alucryd";
+    repo = "ecm-tools";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-DCxrSTUO+e350zI10D8vpIswxqdfAyQfnY4iz17pfuc=";
+  };
+
+  dontConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install --directory --mode=755 $out/bin
+    install --mode=755 bin2ecm $out/bin
+    pushd $out/bin
+    ln -s bin2ecm ecm2bin
+    popd
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A utility to uncompress ECM files to BIN CD format";
+    homepage = "https://github.com/alucryd/ecm-tools";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "bin2ecm";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ek/eksctl/package.nix b/nixpkgs/pkgs/by-name/ek/eksctl/package.nix
new file mode 100644
index 000000000000..91f98463a85c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ek/eksctl/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "eksctl";
+  version = "0.161.0";
+
+  src = fetchFromGitHub {
+    owner = "weaveworks";
+    repo = pname;
+    rev = version;
+    hash = "sha256-hlHwzZ0U3G6IGJjeHZPlO2+thJ1UKxHhRb28EQ39pZk=";
+  };
+
+  vendorHash = "sha256-9rT2zkgwxDQlxTWF1zHpYOOI7uK5Q/GYFWIrKgP2GaQ=";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/eksctl" ];
+
+  tags = [ "netgo" "release" ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/weaveworks/eksctl/pkg/version.gitCommit=${src.rev}"
+    "-X github.com/weaveworks/eksctl/pkg/version.buildDate=19700101-00:00:00"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd eksctl \
+      --bash <($out/bin/eksctl completion bash) \
+      --fish <($out/bin/eksctl completion fish) \
+      --zsh  <($out/bin/eksctl completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A CLI for Amazon EKS";
+    homepage = "https://github.com/weaveworks/eksctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ xrelkd Chili-Man ];
+    mainProgram = "eksctl";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/el/elvish/package.nix b/nixpkgs/pkgs/by-name/el/elvish/package.nix
new file mode 100644
index 000000000000..0069dad4f0c6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/el/elvish/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, callPackage
+}:
+
+let
+  pname = "elvish";
+  version = "0.19.2";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "elves";
+    repo = "elvish";
+    rev = "v${version}";
+    hash = "sha256-eCPJXCgmMvrJ2yVqYgXHXJWb6Ec0sutc91LNs4yRBYk=";
+  };
+
+  vendorHash = "sha256-VMI20IP1jVkUK3rJm35szaFDfZGEEingUEL/xfVJ1cc=";
+
+  subPackages = [ "cmd/elvish" ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X src.elv.sh/pkg/buildinfo.Version==${version}"
+  ];
+
+  strictDeps = true;
+
+  doCheck = false;
+
+  passthru = {
+    shellPath = "/bin/elvish";
+    tests = {
+      expectVersion = callPackage ./tests/expect-version.nix { };
+    };
+  };
+
+  meta = {
+    homepage = "https://elv.sh/";
+    description = "A friendly and expressive command shell";
+    longDescription = ''
+      Elvish is a friendly interactive shell and an expressive programming
+      language. It runs on Linux, BSDs, macOS and Windows. Despite its pre-1.0
+      status, it is already suitable for most daily interactive use.
+    '';
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.elv b/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.elv
new file mode 100644
index 000000000000..72f8c081f61b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.elv
@@ -0,0 +1,8 @@
+fn expect {|key expected|
+  var actual = $buildinfo[$key]
+  if (not-eq $actual $expected) {
+    fail '$buildinfo['$key']: expected '(to-string $expected)', got '(to-string $actual)
+  }
+}
+
+expect version @version@
diff --git a/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.nix b/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.nix
new file mode 100644
index 000000000000..406f2131199d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/el/elvish/tests/expect-version.nix
@@ -0,0 +1,25 @@
+{ lib
+, stdenv
+, elvish
+, substituteAll
+}:
+
+stdenv.mkDerivation {
+  pname = "elvish-simple-test";
+  inherit (elvish) version;
+
+  nativeBuildInputs = [ elvish ];
+
+  dontInstall = true;
+
+  buildCommand = ''
+    elvish ${substituteAll {
+      src = ./expect-version.elv;
+      inherit (elvish) version;
+    }}
+
+    touch $out
+  '';
+
+  meta.timeout = 10;
+}
diff --git a/nixpkgs/pkgs/by-name/en/engage/package.nix b/nixpkgs/pkgs/by-name/en/engage/package.nix
new file mode 100644
index 000000000000..ccfc963ab665
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/en/engage/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, installShellFiles
+, rustPlatform
+, fetchgit
+}:
+
+let
+  pname = "engage";
+  version = "0.2.0";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  # fetchFromGitLab doesn't work on GitLab's end for unknown reasons
+  src = fetchgit {
+    url = "https://or.computer.surgery/charles/${pname}";
+    rev = "v${version}";
+    hash = "sha256-niXh63xTpXSp9Wqwfi8hUBKJSClOUSvB+TPCTaqHfZk=";
+  };
+
+  cargoHash = "sha256-CKe0nb5JHi5+1UlVOl01Q3qSXQLlpEBdat/IzRKfaz0=";
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  postInstall = "installShellCompletion --cmd ${pname} "
+    + builtins.concatStringsSep
+      " "
+      (builtins.map
+        (shell: "--${shell} <($out/bin/${pname} completions ${shell})")
+        [
+          "bash"
+          "fish"
+          "zsh"
+        ]
+      );
+
+  meta = {
+    description = "A task runner with DAG-based parallelism";
+    homepage = "https://or.computer.surgery/charles/engage";
+    changelog = "https://or.computer.surgery/charles/engage/-/blob/v${version}/CHANGELOG.md";
+    license = with lib.licenses; [ asl20 mit ];
+    maintainers = with lib.maintainers; [ CobaltCause ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/es/esbuild-config/package.nix b/nixpkgs/pkgs/by-name/es/esbuild-config/package.nix
new file mode 100644
index 000000000000..d68db5c89a47
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/es/esbuild-config/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "esbuild-config";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "bpierre";
+    repo = "esbuild-config";
+    rev = "v${version}";
+    hash = "sha256-u3LgecKfgPSN5xMyqBjeAn4/XswM3iEGbZ+JGrVF1Co=";
+  };
+
+  cargoHash = "sha256-Z7uYOjMNxsEmsEXDOIr1zIq4nCgHvHIqpRnRH037b8g=";
+
+  # Cargo.lock is outdated
+  postConfigure = ''
+    cargo metadata --offline
+  '';
+
+  meta = with lib; {
+    description = "Config files for esbuild";
+    homepage = "https://github.com/bpierre/esbuild-config";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "esbuild-config";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/eu/eudev/package.nix b/nixpkgs/pkgs/by-name/eu/eudev/package.nix
new file mode 100644
index 000000000000..abac72290ca5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/eu/eudev/package.nix
@@ -0,0 +1,85 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gperf
+, kmod
+, pkg-config
+, util-linux
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "eudev";
+  version = "3.2.14";
+
+  src = fetchFromGitHub {
+    owner = "eudev-project";
+    repo = "eudev";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-v/szzqrBedQPRGYkZ0lV9rslCH//uqGp4PHEF0/51Lg=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gperf
+    pkg-config
+  ];
+
+  buildInputs = [
+    kmod
+    util-linux
+  ];
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--sysconfdir=/etc"
+  ];
+
+  makeFlags = [
+    "hwdb_bin=/var/lib/udev/hwdb.bin"
+    "udevrulesdir=/etc/udev/rules.d"
+  ];
+
+  preInstall = ''
+    # Disable install-exec-hook target, as it conflicts with our move-sbin
+    # setup-hook
+
+    sed -i 's;$(MAKE) $(AM_MAKEFLAGS) install-exec-hook;$(MAKE) $(AM_MAKEFLAGS);g' src/udev/Makefile
+  '';
+
+  installFlags = [
+    "localstatedir=$(TMPDIR)/var"
+    "sysconfdir=$(out)/etc"
+    "udevconfdir=$(out)/etc/udev"
+    "udevhwdbbin=$(out)/var/lib/udev/hwdb.bin"
+    "udevhwdbdir=$(out)/var/lib/udev/hwdb.d"
+    "udevrulesdir=$(out)/var/lib/udev/rules.d"
+  ];
+
+  meta = {
+    homepage = "https://github.com/eudev-project/eudev";
+    description = "A fork of udev with the aim of isolating it from init";
+    longDescription = ''
+      eudev is a standalone dynamic and persistent device naming support (aka
+      userspace devfs) daemon that runs independently from the init
+      system. eudev strives to remain init system and linux distribution
+      neutral. It is currently used as the devfs manager for more than a dozen
+      different linux distributions.
+
+      This git repo is a fork of systemd repository with the aim of isolating
+      udev from any particular flavor of system initialization. In this case,
+      the isolation is from systemd.
+
+      This is a project started by Gentoo developers and testing was initially
+      being done mostly on OpenRC. We welcome contribution from others using a
+      variety of system initializations to ensure eudev remains system
+      initialization and distribution neutral. On 2021-08-20 Gentoo decided to
+      abandon eudev and a new project was established on 2021-09-14 by Alpine,
+      Devuan and Gentoo contributors.
+    '';
+    changelog = "https://github.com/eudev-project/eudev/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ raskin AndersonTorres ];
+    inherit (kmod.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ez/eza/package.nix b/nixpkgs/pkgs/by-name/ez/eza/package.nix
new file mode 100644
index 000000000000..804446d6fe7a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ez/eza/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, gitSupport ? true
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, cmake
+, pandoc
+, pkg-config
+, zlib
+, darwin
+, libiconv
+, installShellFiles
+  # once eza upstream gets support for setting up a compatibilty symlink for exa, we should change
+  # the handling here from postInstall to passing the required argument to the builder.
+, exaAlias ? true
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "eza";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner = "eza-community";
+    repo = "eza";
+    rev = "v${version}";
+    hash = "sha256-52vBN/EdO0R2Lt/Iv33Odl437I8kgUhxXwtUuiaAcAU=";
+  };
+
+  cargoHash = "sha256-j6FsI6FpBXtaNcVDY84UBcqifXuJxBRW5Gdln8pq7Iw=";
+
+  nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
+  buildInputs = [ zlib ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
+
+  buildNoDefaultFeatures = true;
+  buildFeatures = lib.optional gitSupport "git";
+
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    pandoc --standalone -f markdown -t man man/eza.1.md > man/eza.1
+    pandoc --standalone -f markdown -t man man/eza_colors.5.md > man/eza_colors.5
+    pandoc --standalone -f markdown -t man man/eza_colors-explanation.5.md > man/eza_colors-explanation.5
+    installManPage man/eza.1 man/eza_colors.5 man/eza_colors-explanation.5
+    installShellCompletion \
+      --bash completions/bash/eza \
+      --fish completions/fish/eza.fish \
+      --zsh completions/zsh/_eza
+  '' + lib.optionalString exaAlias ''
+    ln -s eza $out/bin/exa
+  '';
+
+  meta = with lib; {
+    description = "A modern, maintained replacement for ls";
+    longDescription = ''
+      eza is a modern replacement for ls. It uses colours for information by
+      default, helping you distinguish between many types of files, such as
+      whether you are the owner, or in the owning group. It also has extra
+      features not present in the original ls, such as viewing the Git status
+      for a directory, or recursing into directories with a tree view. eza is
+      written in Rust, so it’s small, fast, and portable.
+    '';
+    homepage = "https://github.com/eza-community/eza";
+    changelog = "https://github.com/eza-community/eza/releases/tag/v${version}";
+    license = licenses.mit;
+    mainProgram = "eza";
+    maintainers = with maintainers; [ cafkafk _9glenda ];
+    platforms = platforms.unix ++ platforms.windows;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fa/fantomas/package.nix b/nixpkgs/pkgs/by-name/fa/fantomas/package.nix
new file mode 100644
index 000000000000..c698e6edef6c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fa/fantomas/package.nix
@@ -0,0 +1,17 @@
+{ buildDotnetGlobalTool, lib }:
+
+buildDotnetGlobalTool {
+  pname = "fantomas";
+  version = "6.2.2";
+
+  nugetSha256 = "sha256-r5F44iwAV3QSeh3TyGTVhrN2oL4A68eD5dKiz/VnwdI=";
+
+  meta = with lib; {
+    description = "F# source code formatter";
+    homepage = "https://github.com/fsprojects/fantomas";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mikaelfangel ];
+    mainProgram = "fantomas";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fi/firewalk/package.nix b/nixpkgs/pkgs/by-name/fi/firewalk/package.nix
new file mode 100644
index 000000000000..8909a61062c7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fi/firewalk/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, fetchurl
+, libnet
+, libpcap
+, libdnet
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "firewalk";
+  version = "5.0";
+
+  src = fetchurl {
+    url = "https://salsa.debian.org/pkg-security-team/firewalk/-/archive/upstream/${finalAttrs.version}/firewalk-upstream-${finalAttrs.version}.tar.gz";
+    hash = "sha256-f0sHzcH3faeg7epfpWXbgaHrRWaWBKMEqLdy38+svGo=";
+  };
+
+  buildInputs = [ libnet libpcap libdnet ];
+
+  meta = with lib; {
+    description = "Gateway ACL scanner";
+    homepage = "http://packetfactory.openwall.net/projects/firewalk/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ tochiaha ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/fl/fleng/package.nix b/nixpkgs/pkgs/by-name/fl/fleng/package.nix
new file mode 100644
index 000000000000..cf41894b2fc7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fl/fleng/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fleng";
+  version = "17";
+
+  src = fetchurl {
+    url = "http://www.call-with-current-continuation.org/fleng/fleng-${finalAttrs.version}.tgz";
+    hash = "sha256-mZ0JDt1wDWUUvK5FNvGRkz1BEunmZAzHAuhURA1P89Q=";
+  };
+
+  doCheck = true;
+
+  meta = {
+    homepage = "http://www.call-with-current-continuation.org/fleng/fleng.html";
+    description = "A low level concurrent logic programming language descended from Prolog";
+    license = lib.licenses.publicDomain;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
+# TODO: bootstrap
diff --git a/nixpkgs/pkgs/by-name/fl/flip/package.nix b/nixpkgs/pkgs/by-name/fl/flip/package.nix
new file mode 100644
index 000000000000..f7957c0990b0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fl/flip/package.nix
@@ -0,0 +1,32 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  cmake
+}:
+
+stdenv.mkDerivation {
+  pname = "flip";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "NVlabs";
+    repo = "flip";
+    rev = "8303adb2060d69423d040453995f4ad1a030a1cc";
+    hash = "sha256-jSB79qOtnW/cjApIDcLRqGabnzCIwS7saA+aF1TcyV0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "A tool for visualizing and communicating the errors in rendered images.";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ zmitchell ];
+    mainProgram = "flip";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fm/fm-tune/package.nix b/nixpkgs/pkgs/by-name/fm/fm-tune/package.nix
new file mode 100644
index 000000000000..59c61dc4ed5b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fm/fm-tune/package.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, liquid-dsp, soapysdr }:
+
+stdenv.mkDerivation rec {
+  pname = "fm-tune";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "viraptor";
+    repo = "fm_tune";
+    rev = version;
+    sha256 = "pwL2G1Ni1Ixw/N0diSoGGIoVrtmF92mWZ5i57OOvkX4=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ liquid-dsp soapysdr ];
+
+  meta = with lib; {
+    description = "Find initial calibration offset for SDR devices";
+    longDescription = ''
+      fm_tune finds the initial offset for calibrating an SDR device. This is
+      based a given FM radio station frequency. The offset given by this tool is
+      not precise, but can be useful as a starting point for other tools which
+      cannot correct for very large errors.
+    '';
+    homepage = "https://github.com/viraptor/fm_tune";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ viraptor ];
+    mainProgram = "fm_tune";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fo/fortune-kind/package.nix b/nixpkgs/pkgs/by-name/fo/fortune-kind/package.nix
new file mode 100644
index 000000000000..c3e76a5f0c61
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fo/fortune-kind/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+, libiconv
+, makeBinaryWrapper
+, installShellFiles
+, fortuneAlias ? true
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fortune-kind";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "cafkafk";
+    repo = "fortune-kind";
+    rev = "v${version}";
+    hash = "sha256-bpQ1cPsgKgOU3stnUwGrMnY9RZGZnuoR6B05LyARtVY=";
+  };
+
+  cargoHash = "sha256-2hL4vbbfvzJk73cvMU+eau+UHDFtokt4v8GBXyNkjbw=";
+
+  nativeBuildInputs = [ makeBinaryWrapper installShellFiles ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
+
+  buildNoDefaultFeatures = true;
+
+  MAN_OUT = "./man";
+
+  preBuild = ''
+    mkdir -p "./$MAN_OUT";
+  '';
+
+  preInstall = ''
+    installManPage man/fortune-kind.1
+    installShellCompletion \
+      --fish man/fortune-kind.fish \
+      --bash man/fortune-kind.bash \
+      --zsh  man/_fortune-kind
+    mkdir -p $out
+    cp -r $src/fortunes $out/fortunes;
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/fortune-kind \
+      --prefix FORTUNE_DIR : "$out/fortunes"
+  ''+ lib.optionalString fortuneAlias ''
+    ln -s fortune-kind $out/bin/fortune
+  '';
+
+  meta = with lib; {
+    description = "A kinder, curated fortune, written in rust";
+    longDescription = ''
+      Historically, contributions to fortune-mod have had a less-than ideal
+      quality control process, and as such, many of the fortunes that a user may
+      receive from the program read more like cryptic inside jokes, or at the
+      very worst, locker-room banter. One of the major goals of fortune-kind is
+      defining and applying a somewhat more rigorous moderation and editing
+      process to the fortune adoption workflow.
+    '';
+    homepage = "https://github.com/cafkafk/fortune-kind";
+    changelog = "https://github.com/cafkafk/fortune-kind/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    mainProgram = "fortune-kind";
+    maintainers = with maintainers; [ cafkafk ];
+    platforms = platforms.unix ++ platforms.windows;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fr/freecell-solver/package.nix b/nixpkgs/pkgs/by-name/fr/freecell-solver/package.nix
new file mode 100644
index 000000000000..f3aeca90068f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fr/freecell-solver/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, cmocka
+, gmp
+, gperf
+, libtap
+, ninja
+, perl
+, pkg-config
+, python3
+, rinutils
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "freecell-solver";
+  version = "6.8.0";
+
+  src = fetchurl {
+    url = "https://fc-solve.shlomifish.org/downloads/fc-solve/freecell-solver-${finalAttrs.version}.tar.xz";
+    hash = "sha256-lfeKSxXS+jQCcf5PzFNUBlloGRuiLbDUDoGykbjVPTI=";
+  };
+
+  outputs = [ "out" "dev" "doc" "man" ];
+
+  pythonPath = with python3.pkgs; [
+    cffi
+    pysol-cards
+    random2
+    six
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    cmocka
+    gperf
+    ninja
+    perl
+    pkg-config
+    python3
+  ]
+  ++ (with perl.pkgs; TaskFreecellSolverTesting.buildInputs ++ [
+    GamesSolitaireVerify
+    HTMLTemplate
+    Moo
+    PathTiny
+    StringShellQuote
+    TaskFreecellSolverTesting
+    TemplateToolkit
+    TextTemplate
+  ])
+  ++ [ python3.pkgs.wrapPython ]
+  ++ finalAttrs.pythonPath;
+
+  buildInputs = [
+    gmp
+    libtap
+    rinutils
+  ];
+
+  strictDeps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "FCS_WITH_TEST_SUITE" false) # needs freecell-solver
+    (lib.cmakeBool "BUILD_STATIC_LIBRARY" false)
+  ];
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/bin" "$out $pythonPath"
+  '';
+
+  meta = {
+    homepage = "https://fc-solve.shlomifish.org/";
+    description = "A FreeCell automatic solver";
+    longDescription = ''
+      FreeCell Solver is a program that automatically solves layouts of Freecell
+      and similar variants of Card Solitaire such as Eight Off, Forecell, and
+      Seahaven Towers, as well as Simple Simon boards.
+    '';
+    license = lib.licenses.mit;
+    mainProgram = "fc-solve";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ga/game-rs/package.nix b/nixpkgs/pkgs/by-name/ga/game-rs/package.nix
new file mode 100644
index 000000000000..127e06f7129e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ga/game-rs/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, steam-run
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "game-rs";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "amanse";
+    repo = "game-rs";
+    rev = "v${version}";
+    hash = "sha256-M9/hFItoCL8fSrc0dFNn43unqkIaD179OGUdbXL6/Rs=";
+  };
+
+  cargoHash = "sha256-aq58sFK4/Zd8S4dOWjag+g5PmTeaVAK3FS3fW/YlCLs=";
+
+  buildFeatures = [ "nixos" ];
+
+  propagatedBuildInputs = [ steam-run ];
+
+  meta = with lib; {
+    description = "Minimal CLI game launcher for linux";
+    homepage = "https://github.com/amanse/game-rs";
+    changelog = "https://github.com/Amanse/game-rs/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ amanse ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ga/gash-utils/package.nix b/nixpkgs/pkgs/by-name/ga/gash-utils/package.nix
new file mode 100644
index 000000000000..bea8d6730e77
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ga/gash-utils/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, makeWrapper
+, pkg-config
+, gash
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gash-utils";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "mirror://savannah/gash/gash-utils-${finalAttrs.version}.tar.gz";
+    hash = "sha256-5qrlpvQP34xfhzD2bD+MMEe94A+M2XWV9arSRElZ1KM=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    guile # buildPlatform's guile is needed at build time
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    gash
+    guile
+  ];
+
+  postInstall = ''
+    for f in $out/bin/*; do
+      wrapProgram $f \
+        --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
+        --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Core POSIX utilities written in Guile Scheme";
+    homepage = "https://savannah.nongnu.org/projects/gash/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ wegank ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ga/gash/package.nix b/nixpkgs/pkgs/by-name/ga/gash/package.nix
new file mode 100644
index 000000000000..49dca7962907
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ga/gash/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gash";
+  version = "0.3.0";
+
+  src = fetchurl {
+    url = "mirror://savannah/gash/gash-${finalAttrs.version}.tar.gz";
+    hash = "sha256-VGrsaRBo1nfFjd/BVpXbn4CGFuGfpzMi1Ppno8iXwqk=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    guile # buildPlatform's guile is needed at build time
+    pkg-config
+  ];
+
+  buildInputs = [
+    guile
+  ];
+
+  meta = with lib; {
+    description = "POSIX-compatible shell written in Guile Scheme";
+    homepage = "https://savannah.nongnu.org/projects/gash/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ wegank ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/gb/gbar/package.nix b/nixpkgs/pkgs/by-name/gb/gbar/package.nix
new file mode 100644
index 000000000000..faa930e9aee8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gb/gbar/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, cmake
+, pkg-config
+, libdbusmenu-gtk3
+, gtk-layer-shell
+, stb
+, wayland-protocols
+, wayland-scanner
+, bluez
+, gtk3
+, libpulseaudio
+, wayland
+}:
+
+stdenv.mkDerivation {
+  pname = "gbar";
+  version = "unstable-2023-09-21";
+
+  src = fetchFromGitHub {
+    owner = "scorpion-26";
+    repo = "gBar";
+    rev = "96485f408efe411f281fa27dceb6d86399ec7804";
+    hash = "sha256-4zPvo0JBQOV1qn2X2iI8/JWYEQjFf9sDEICIWSCeaWk=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    wayland
+    wayland-protocols
+    wayland-scanner
+    bluez
+    gtk3
+    gtk-layer-shell
+    libpulseaudio
+    stb
+    libdbusmenu-gtk3
+  ];
+
+  meta = with lib; {
+    description = "Blazingly fast status bar written with GTK";
+    homepage = "https://github.com/scorpion-26/gBar";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ocfox ];
+    mainProgram = "gBar";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ge/geopard/Cargo.lock b/nixpkgs/pkgs/by-name/ge/geopard/Cargo.lock
new file mode 100644
index 000000000000..42ebac5c5af2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ge/geopard/Cargo.lock
@@ -0,0 +1,1590 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+[[package]]
+name = "async-channel"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "futures-core",
+]
+
+[[package]]
+name = "async-fs"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+dependencies = [
+ "async-lock",
+ "autocfg",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+dependencies = [
+ "async-lock",
+ "autocfg",
+ "concurrent-queue",
+ "futures-lite",
+ "libc",
+ "log",
+ "parking",
+ "polling",
+ "slab",
+ "socket2",
+ "waker-fn",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-native-tls"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e9e7a929bd34c68a82d58a4de7f86fffdaf97fb2af850162a7bb19dd7269b33"
+dependencies = [
+ "async-std",
+ "native-tls",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "async-net"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
+dependencies = [
+ "async-io",
+ "autocfg",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-channel",
+ "async-lock",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-task"
+version = "4.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+
+[[package]]
+name = "async-trait"
+version = "0.1.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "095183a3539c7c7649b2beb87c2d3f0591f3a7fed07761cc546d244e27e0238c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "blocking"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+dependencies = [
+ "async-channel",
+ "async-lock",
+ "async-task",
+ "atomic-waker",
+ "fastrand",
+ "futures-lite",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "cairo-rs"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-expr"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
+
+[[package]]
+name = "futures-lite"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
+
+[[package]]
+name = "futures-task"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
+
+[[package]]
+name = "futures-util"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf"
+dependencies = [
+ "bitflags",
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk4"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5042053ee765aeef08d9d7e3f0f1e36a4d37f1659b3f93ad3d6997515dbb64a"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk4-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk4-sys"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14f0fb00507af1e9299681dd09965f720e2b5ea95536d49a5681e8994ef10c7a"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gemini"
+version = "0.1.0"
+dependencies = [
+ "async-native-tls",
+ "async-net",
+ "futures",
+ "log",
+ "once_cell",
+ "regex",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "geopard"
+version = "1.4.0"
+dependencies = [
+ "anyhow",
+ "async-fs",
+ "async-native-tls",
+ "async-net",
+ "async-trait",
+ "env_logger",
+ "futures",
+ "gemini",
+ "gtk4",
+ "libadwaita",
+ "log",
+ "once_cell",
+ "serde",
+ "thiserror",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "gio"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65acfc24267314eee46f49e0a531e08fd6c3025040d1cfb4a7cd8e41c5e06116"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a78b6a0901e258cb03c761ca94c84d519427ede489cae12cd5ba0d7d584e69e9"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55e93d79ed130f0f0b58bc0aa29fb0e40c9dfd63997fec51f8adf780d1520bc4"
+dependencies = [
+ "anyhow",
+ "heck",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72a0985cf568e18cf63b443c9a14f4bdaa947fed7437476000dba84926a20b25"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "graphene-rs"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256"
+dependencies = [
+ "glib",
+ "graphene-sys",
+ "libc",
+]
+
+[[package]]
+name = "graphene-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gsk4"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fa9cd285a72a95124b65c069a9cb1b8fb8e310be71783404c39fccf3bf7774c"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "gdk4",
+ "glib",
+ "graphene-rs",
+ "gsk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gsk4-sys"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a445ae1e50cbf181a1d5c61b920a7e7e8657b96e0ecdbbf8911a86fad462a32"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk4-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk4"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e47dca53cb1a8ae3006e869b5711ae7370180db537f6d98e3bcaf23fabfd911f"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "graphene-rs",
+ "gsk4",
+ "gtk4-macros",
+ "gtk4-sys",
+ "libc",
+ "once_cell",
+ "pango",
+]
+
+[[package]]
+name = "gtk4-macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "gtk4-sys"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65463dc801460e498d5e7ffa6e9ae2cfbed7d05fabd1ca5a8d024adbc89eeda6"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
+dependencies = [
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libadwaita"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c4efd2020a4fcedbad2c4a97de97bf6045e5dc49d61d5a5d0cfd753db60700"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libadwaita-sys",
+ "libc",
+ "once_cell",
+ "pango",
+]
+
+[[package]]
+name = "libadwaita-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0727b85b4fe2b1bed5ac90df6343de15cbf8118bfb96d7c3cc1512681a4b34ac"
+dependencies = [
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "openssl"
+version = "0.10.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "pango"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc"
+dependencies = [
+ "bitflags",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "polling"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "libc",
+ "log",
+ "wepoll-ffi",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.36.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+dependencies = [
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
+
+[[package]]
+name = "serde"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+
+[[package]]
+name = "toml_edit"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a1eb0622d28f4b9c90adc4ea4b2b46b47663fde9ac5fafcb14a1369d5508825"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775c11906edafc97bc378816b94585fbd9a054eabaf86fdd0ced94af449efab7"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wepoll-ffi"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+
+[[package]]
+name = "winnow"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c95fb4ff192527911dd18eb138ac30908e7165b8944e528b6af93aa4c842d345"
+dependencies = [
+ "memchr",
+]
diff --git a/nixpkgs/pkgs/by-name/ge/geopard/package.nix b/nixpkgs/pkgs/by-name/ge/geopard/package.nix
new file mode 100644
index 000000000000..2ed0b1aacdef
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ge/geopard/package.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, cargo
+, rustc
+, fetchFromGitHub
+, glib
+, gtk4
+, libadwaita
+, rustPlatform
+, openssl
+, pkg-config
+, lib
+, wrapGAppsHook4
+, meson
+, ninja
+, gdk-pixbuf
+, cmake
+, desktop-file-utils
+, gettext
+, blueprint-compiler
+, appstream-glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "geopard";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "ranfdev";
+    repo = pname;
+    rev = version;
+    hash = "sha256-elHxtFEGkdhEPHxuJtcMYwWnvo6vDaHiOyN51EOzym0=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+  };
+
+  nativeBuildInputs = [
+    openssl
+    gettext
+    glib # for glib-compile-schemas
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+    cmake
+    blueprint-compiler
+    desktop-file-utils
+    appstream-glib
+    blueprint-compiler
+    cargo
+    rustc
+    rustPlatform.cargoSetupHook
+  ];
+
+  buildInputs = [
+    desktop-file-utils
+    gdk-pixbuf
+    glib
+    gtk4
+    libadwaita
+    openssl
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ranfdev/Geopard";
+    description = "Colorful, adaptive gemini browser";
+    maintainers = with maintainers; [ jfvillablanca ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    mainProgram = "geopard";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ge/germinal/package.nix b/nixpkgs/pkgs/by-name/ge/germinal/package.nix
new file mode 100644
index 000000000000..4d7409bf4a43
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ge/germinal/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, appstream-glib
+, autoreconfHook
+, dbus
+, pango
+, pcre2
+, pkg-config
+, tmux
+, vte
+, wrapGAppsHook
+, nixosTests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "germinal";
+  version = "26";
+
+  src = fetchFromGitHub {
+    owner = "Keruspe";
+    repo = "Germinal";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-HUi+skF4bJj5CY2cNTOC4tl7jhvpXYKqBx2rqKzjlo0=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    appstream-glib
+    dbus
+    pango
+    pcre2
+    vte
+  ];
+
+  configureFlags = [
+    "--with-dbusservicesdir=${placeholder "out"}/etc/dbus-1/system-services/"
+  ];
+
+  dontWrapGApps = true;
+
+  fixupPhase = ''
+    runHook preFixup
+    wrapProgram $out/bin/germinal \
+     --prefix PATH ":" "${lib.makeBinPath [ tmux ]}" \
+      "''${gappsWrapperArgs[@]}"
+    runHook postFixup
+  '';
+
+  passthru.tests.test = nixosTests.terminal-emulators.germinal;
+
+  meta = {
+    description = "A minimal terminal emulator";
+    homepage = "https://github.com/Keruspe/Germinal";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "germinal";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ge/geticons/package.nix b/nixpkgs/pkgs/by-name/ge/geticons/package.nix
new file mode 100644
index 000000000000..f3afda0f136d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ge/geticons/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromSourcehut
+, gitUpdater
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "geticons";
+  version = "1.2.2";
+
+  src = fetchFromSourcehut {
+    owner = "~zethra";
+    repo = pname;
+    rev = version;
+    hash = "sha256-HEnUfOLeRTi2dRRqjDPVwVVHo/GN9wE28x5qv3qOpCY=";
+  };
+
+  cargoHash = "sha256-Znwni7uMnG9cpZbztUMY1j73K+XrDLv5zyNEZDoxWg4=";
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "CLI utility to get icons for apps on your system or other generic icons by name";
+    homepage = "https://git.sr.ht/~zethra/geticons";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ Madouura ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gh/gh-screensaver/package.nix b/nixpkgs/pkgs/by-name/gh/gh-screensaver/package.nix
new file mode 100644
index 000000000000..b5466c791333
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gh/gh-screensaver/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gh-screensaver";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "vilmibm";
+    repo = "gh-screensaver";
+    rev = "v${version}";
+    hash = "sha256-MqwaqXGP4E+46vpgftZ9bttmMyENuojBnS6bWacmYLE=";
+  };
+
+  vendorHash = "sha256-o9B6Q07GP/CFekG3av01boZA7FdZg4x8CsLC3lwhn2A=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "gh extension with animated terminal screensavers";
+    homepage = "https://github.com/vilmibm/gh-screensaver";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    mainProgram = "gh-screensaver";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gh/ghunt/package.nix b/nixpkgs/pkgs/by-name/gh/ghunt/package.nix
new file mode 100644
index 000000000000..ff4e7340409f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gh/ghunt/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ghunt";
+  version = "2.0.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "mxrch";
+    repo = "ghunt";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7awLKX+1fVbufg3++lUUCZg4p07c2yGeefiPFcE1Ij4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    alive-progress
+    autoslot
+    beautifulsoup4
+    beautifultable
+    geopy
+    httpx
+    humanize
+    imagehash
+    inflection
+    jsonpickle
+    pillow
+    protobuf
+    python-dateutil
+    rich
+    trio
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ghunt"
+  ];
+
+  meta = with lib; {
+    description = "Offensive Google framework";
+    homepage = "https://github.com/mxrch/ghunt";
+    changelog = "https://github.com/mxrch/GHunt/releases/tag/v${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/gickup/package.nix b/nixpkgs/pkgs/by-name/gi/gickup/package.nix
new file mode 100644
index 000000000000..19ec2d3c912d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/gickup/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nix-update-script
+}:
+
+buildGoModule rec {
+  pname = "gickup";
+  version = "0.10.21";
+
+  src = fetchFromGitHub {
+    owner = "cooperspencer";
+    repo = "gickup";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-o8uLdkk0aZWIj+mKsp/XGKcwpV0rGFcZnmV4MuHKlUg=";
+  };
+
+  vendorHash = "sha256-NAYkQsCt32mtHFXZC0g3OrlrOceUaeGH4bKWF7B08po=";
+
+  ldflags = ["-X main.version=${version}"];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Tool to backup repositories";
+    homepage = "https://github.com/cooperspencer/gickup";
+    changelog = "https://github.com/cooperspencer/gickup/releases/tag/v${version}";
+    maintainers = with lib.maintainers; [ adamcstephens ];
+    mainProgram = "gickup";
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/girouette/package.nix b/nixpkgs/pkgs/by-name/gi/girouette/package.nix
new file mode 100644
index 000000000000..2c2a733c3117
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/girouette/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, dbus
+, openssl
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "girouette";
+  version = "0.7.4";
+
+  src = fetchFromGitHub {
+    owner = "gourlaysama";
+    repo = "girouette";
+    rev = "v${version}";
+    hash = "sha256-CROd44lCCXlWF8X/9HyjtTjSlCUFkyke+BjkD4uUqXo=";
+  };
+
+  cargoHash = "sha256-AkagcIewHGPBYrITzI1YNPSJIN13bViDU6tbC+IeakY=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  meta = with lib; {
+    description = "Show the weather in the terminal, in style";
+    homepage = "https://github.com/gourlaysama/girouette";
+    changelog = "https://github.com/gourlaysama/girouette/blob/${src.rev}/CHANGELOG.md";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ linuxissuper cafkafk ];
+    mainProgram = "girouette";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/git-get/package.nix b/nixpkgs/pkgs/by-name/gi/git-get/package.nix
new file mode 100644
index 000000000000..8cd852c5d757
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/git-get/package.nix
@@ -0,0 +1,52 @@
+{ lib, fetchFromGitHub, git, buildGoModule }:
+
+let config-module = "git-get/pkg/cfg";
+in
+buildGoModule rec {
+  pname = "git-get";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "grdl";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-v98Ff7io7j1LLzciHNWJBU3LcdSr+lhwYrvON7QjyCI=";
+    # populate values that require us to use git. By doing this in postFetch we
+    # can delete .git afterwards and maintain better reproducibility of the src.
+    leaveDotGit = true;
+    postFetch = ''
+      git -C $out rev-parse HEAD > $out/COMMIT
+      # in format of 0000-00-00T00:00:00Z
+      date -u -d "@$(git -C $out log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
+
+  vendorHash = "sha256-C+XOjMDMFneKJNeBh0KWPx8yM7XiiIpTlc2daSfhZhY=";
+
+  doCheck = false;
+
+  # ldflags based on metadata from git and source
+  preBuild = ''
+    ldflags+=" -X ${config-module}.commit=$(cat COMMIT)"
+    ldflags+=" -X ${config-module}.date=$(cat SOURCE_DATE_EPOCH)"
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X ${config-module}.version=v${version}"
+  ];
+
+  preInstall = ''
+    mv "$GOPATH/bin/get" "$GOPATH/bin/git-get"
+    mv "$GOPATH/bin/list" "$GOPATH/bin/git-list"
+  '';
+
+  meta = with lib; {
+    description = "A better way to clone, organize and manage multiple git repositories";
+    homepage = "https://github.com/grdl/git-get";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sumnerevans ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/gitmoji-cli/package.nix b/nixpkgs/pkgs/by-name/gi/gitmoji-cli/package.nix
new file mode 100644
index 000000000000..a6f23e10bce0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/gitmoji-cli/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gitmoji-cli";
+  version = "8.5.0";
+
+  src = fetchFromGitHub {
+    owner = "carloscuesta";
+    repo = "gitmoji-cli";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-ZM6jOi0FnomkIZeK6ln1Z0d6R5cjav67qyly3yqR1HQ=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-HSAWFVOTlXlG7N5591hpfPAYaSrP413upW5u/HN9X2o=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror $offlineCache
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/gitmoji-cli"
+    cp -r lib node_modules "$out/lib/node_modules/gitmoji-cli"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/gitmoji" \
+      --add-flags "$out/lib/node_modules/gitmoji-cli/lib/cli.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Gitmoji client for using emojis on commit messages";
+    homepage = "https://github.com/carloscuesta/gitmoji-cli";
+    license = lib.licenses.mit;
+    mainProgram = "gitmoji";
+    maintainers = with lib.maintainers; [ nequissimus ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/gm/gmic/package.nix b/nixpkgs/pkgs/by-name/gm/gmic/package.nix
new file mode 100644
index 000000000000..d505faa8f4b6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gm/gmic/package.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, cimg
+, cmake
+, common-updater-scripts
+, coreutils
+, curl
+, fftw
+, gmic-qt
+, gnugrep
+, gnused
+, graphicsmagick
+, jq
+, libjpeg
+, libpng
+, libtiff
+, ninja
+, opencv
+, openexr
+, pkg-config
+, writeShellScript
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gmic";
+  version = "3.3.1";
+
+  outputs = [ "out" "lib" "dev" "man" ];
+
+  src = fetchFromGitHub {
+    owner = "GreycLab";
+    repo = "gmic";
+    rev = "v.${finalAttrs.version}";
+    hash = "sha256-HagGabJ1jkg5SkMlr0Y5rGFw64jPW8QLuR0I2idM1N0=";
+  };
+
+  # TODO: build this from source
+  # Reference: src/Makefile, directive gmic_stdlib.h
+  gmic_stdlib = fetchurl {
+    name = "gmic_stdlib.h";
+    url = "http://gmic.eu/gmic_stdlib${lib.replaceStrings ["."] [""] finalAttrs.version}.h";
+    hash = "sha256-7JzFU4HvAtC5Nz5vusKCnJ8VMuKfSi1yFmjj0Hh+vA4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cimg
+    fftw
+    graphicsmagick
+    libjpeg
+    libpng
+    libtiff
+    opencv
+    openexr
+    zlib
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_LIB_STATIC" false)
+    (lib.cmakeBool "ENABLE_CURL" false)
+    (lib.cmakeBool "ENABLE_DYNAMIC_LINKING" true)
+    (lib.cmakeBool "USE_SYSTEM_CIMG" true)
+  ];
+
+  postPatch = ''
+    cp -r ${finalAttrs.gmic_stdlib} src/gmic_stdlib.h
+
+    # CMake build files were moved to subdirectory.
+    mv resources/CMakeLists.txt resources/cmake .
+  ''
+  + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace CMakeLists.txt \
+      --replace "LD_LIBRARY_PATH" "DYLD_LIBRARY_PATH"
+  '';
+
+  passthru = {
+    tests = {
+      # Needs to update them all in lockstep.
+      inherit cimg gmic-qt;
+    };
+
+    updateScript = writeShellScript "gmic-update-script" ''
+      set -o errexit
+      PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused jq ]}
+
+      latestVersion=$(curl 'https://gmic.eu/files/source/' \
+                       | grep -E 'gmic_[^"]+\.tar\.gz' \
+                       | sed -E 's/.+<a href="gmic_([^"]+)\.tar\.gz".+/\1/g' \
+                       | sort --numeric-sort --reverse | head -n1)
+
+      if [[ "${finalAttrs.version}" = "$latestVersion" ]]; then
+          echo "The new version same as the old version."
+          exit 0
+      fi
+
+      for component in src gmic_stdlib; do
+          # The script will not perform an update when the version attribute is
+          # up to date from previous platform run; we need to clear it before
+          # each run
+          update-source-version "--source-key=$component" "gmic" 0 "${lib.fakeHash}"
+          update-source-version "--source-key=$component" "gmic" $latestVersion
+      done
+    '';
+  };
+
+  meta = {
+    homepage = "https://gmic.eu/";
+    description = "Open and full-featured framework for image processing";
+    license = lib.licenses.cecill21;
+    maintainers = [
+      lib.maintainers.AndersonTorres
+      lib.maintainers.lilyinstarlight
+    ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/go/go-camo/package.nix b/nixpkgs/pkgs/by-name/go/go-camo/package.nix
new file mode 100644
index 000000000000..a7761f341c0b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/go/go-camo/package.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-camo";
+  version = "2.4.4";
+
+  src = fetchFromGitHub {
+    owner = "cactus";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-27kAVuFJaGKt7q9E2tchAD6kSukO4xkhU+1JTPfT3Qk=";
+  };
+
+  vendorHash = "sha256-LVQnQ8Tpkzpc6aUsUgwz2xTttccHynJPsQKvWGiRAIU=";
+
+  ldflags = [ "-s" "-w" "-X=main.ServerVersion=${version}" ];
+
+  preCheck = ''
+    # requires network access
+    rm pkg/camo/proxy_{,filter_}test.go
+  '';
+
+  meta = with lib; {
+    description = "A camo server is a special type of image proxy that proxies non-secure images over SSL/TLS";
+    homepage = "https://github.com/cactus/go-camo";
+    changelog = "https://github.com/cactus/go-camo/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ viraptor ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/go/goat/package.nix b/nixpkgs/pkgs/by-name/go/goat/package.nix
new file mode 100644
index 000000000000..7dfc18719103
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/go/goat/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+buildGoModule {
+  pname = "goat";
+  version = "unstable-2022-08-15"; # Upstream currently isn't doing tags/releases.
+
+  src = fetchFromGitHub {
+    owner = "blampe";
+    repo = "goat";
+    rev = "07bb911fe3106cc3c1d1097318a9fffe816b59fe";
+    hash = "sha256-gSSDp9Q2hGH85dkE7RoER5ig+Cz1oSOD0FNRBeTZM4U=";
+  };
+
+  vendorHash = "sha256-24YllmSUzRcqWbJ8NLyhsJaoGG2+yE8/eXX6teJ1nV8=";
+
+  meta = with lib; {
+    description = "Go ASCII Tool. Render ASCII art as SVG diagrams";
+    homepage = "https://github.com/blampe/goat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ katexochen ];
+    mainProgram = "goat";
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gr/grimblast/package.nix b/nixpkgs/pkgs/by-name/gr/grimblast/package.nix
new file mode 100644
index 000000000000..c997f6205ef4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gr/grimblast/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, makeWrapper
+, scdoc
+, coreutils
+, grim
+, hyprland
+, hyprpicker
+, jq
+, libnotify
+, slurp
+, wl-clipboard
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "grimblast";
+  version = "unstable-2023-10-03";
+
+  src = fetchFromGitHub {
+    owner = "hyprwm";
+    repo = "contrib";
+    rev = "2e3f8ac2a3f1334fd2e211b07ed76b4215bb0542";
+    hash = "sha256-rb954Rc+IyUiiXoIuQOJRp0//zH/WeMYZ3yJ5CccODA=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    scdoc
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/grimblast";
+
+  postInstall = ''
+    wrapProgram $out/bin/grimblast --prefix PATH ':' \
+      "${lib.makeBinPath [
+        coreutils
+        grim
+        hyprland
+        hyprpicker
+        jq
+        libnotify
+        slurp
+        wl-clipboard
+      ]}"
+  '';
+
+  meta = with lib; {
+    description = "A helper for screenshots within Hyprland, based on grimshot";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ donovanglover ];
+    mainProgram = "grimblast";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/gr/grun/package.nix b/nixpkgs/pkgs/by-name/gr/grun/package.nix
new file mode 100644
index 000000000000..aef41add611d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gr/grun/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk2
+, pkg-config
+, autoreconfHook
+}:
+
+stdenv.mkDerivation {
+  pname = "grun";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "lrgc";
+    repo = "grun";
+    rev = "release_0_9_3";
+    hash = "sha256-VbvX0wrgMIPmPnu3aQdtQ6H0X3umi8aJ42QvmmeMrJ0=";
+  };
+
+  buildInputs = [
+    gtk2
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  meta = {
+    description = "An application launcher written in C and using GTK for the interface";
+    homepage = "https://github.com/lrgc/grun";
+    platforms = lib.platforms.linux;
+    license = with lib.licenses; [ gpl2Only ];
+    maintainers = with lib.maintainers; [ _3JlOy-PYCCKUi ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/gu/guile-avahi/package.nix b/nixpkgs/pkgs/by-name/gu/guile-avahi/package.nix
new file mode 100644
index 000000000000..3ad6ff9dd2c3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-avahi/package.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, lib
+, fetchgit
+, avahi
+, gmp
+, autoreconfHook
+, pkg-config
+, texinfo
+, guile
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-avahi";
+  version = "0.4.1";
+
+  src = fetchgit {
+    url = "git://git.sv.gnu.org/guile-avahi.git";
+    rev = "v${version}";
+    hash = "sha256-Yr+OiqaGv6DgsjxSoc4sAjy4OO/D+Q50vdSTPEeIrV8=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook guile pkg-config texinfo ];
+  buildInputs = [ guile ];
+  propagatedBuildInputs = [ avahi gmp ];
+
+  doCheck = true;
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-unused-function";
+
+  meta = with lib; {
+    description = "Bindings to Avahi for GNU Guile";
+    homepage = "https://www.nongnu.org/guile-avahi/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/gu/guile-disarchive/package.nix b/nixpkgs/pkgs/by-name/gu/guile-disarchive/package.nix
new file mode 100644
index 000000000000..a81157db614e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-disarchive/package.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, fetchurl
+, guile
+, autoreconfHook
+, guile-gcrypt
+, guile-lzma
+, guile-quickcheck
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-disarchive";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://files.ngyro.com/disarchive/disarchive-${version}.tar.gz";
+    hash = "sha256-Agt7v5HTpaskXuYmMdGDRIolaqCHUpwd/CfbZCe9Ups=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    guile
+    pkg-config
+  ];
+
+  buildInputs = [
+    guile
+    zlib
+  ];
+
+  propagatedBuildInputs = [
+    guile-gcrypt
+    guile-lzma
+  ];
+
+  nativeCheckInputs = [ guile-quickcheck ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "Disassemble software into data and metadata";
+    homepage = "https://ngyro.com/software/disarchive.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-goblins/package.nix b/nixpkgs/pkgs/by-name/gu/guile-goblins/package.nix
new file mode 100644
index 000000000000..5b1b5a797927
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-goblins/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, guile-fibers
+, guile-gcrypt
+, texinfo
+, pkg-config
+}:
+stdenv.mkDerivation rec {
+  pname = "guile-goblins";
+  version = "0.11.0";
+
+  src = fetchurl {
+    url = "https://spritely.institute/files/releases/guile-goblins/guile-goblins-${version}.tar.gz";
+    hash = "sha256-1FD35xvayqC04oPdgts08DJl6PVnhc9K/Dr+NYtxhMU=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ guile pkg-config texinfo ];
+  buildInputs = [ guile guile-fibers guile-gcrypt ];
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+  # tests hang on darwin, and fail randomly on aarch64-linux on ofborg
+  doCheck = !stdenv.isDarwin && !stdenv.isAarch64;
+
+  meta = with lib; {
+    description = "Spritely Goblins for Guile";
+    homepage = "https://spritely.institute/goblins/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ offsetcyan ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-lzlib/package.nix b/nixpkgs/pkgs/by-name/gu/guile-lzlib/package.nix
new file mode 100644
index 000000000000..f60a03b6da90
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-lzlib/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, guile
+, pkg-config
+, texinfo
+, lzlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-lzlib";
+  version = "0.0.2";
+
+  src = fetchurl {
+    url = "https://notabug.org/guile-lzlib/guile-lzlib/archive/${version}.tar.gz";
+    hash = "sha256-hiPbd9RH57n/v8vCiDkOcGprGomxFx2u1gh0z+x+T4c=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ autoreconfHook guile pkg-config texinfo ];
+  propagatedBuildInputs = [ guile lzlib ];
+
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+  # tests fail on darwin
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "A GNU Guile library providing bindings to lzlib";
+    homepage = "https://notabug.org/guile-lzlib/guile-lzlib";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-lzma/package.nix b/nixpkgs/pkgs/by-name/gu/guile-lzma/package.nix
new file mode 100644
index 000000000000..66dddeb88ff7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-lzma/package.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, lib
+, fetchurl
+, xz
+, pkg-config
+, guile
+, scheme-bytestructures
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-lzma";
+  version = "0.1.1";
+
+  src = fetchurl {
+    url = "https://files.ngyro.com/guile-lzma/guile-lzma-${version}.tar.gz";
+    hash = "sha256-K4ZoltZy7U05AI9LUzZ1DXiXVgoGZ4Nl9cWnK9L8zl4=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [
+    guile
+    pkg-config
+  ];
+  buildInputs = [ guile ];
+  propagatedBuildInputs = [ xz ];
+  propagatedNativeBuildInputs = [ scheme-bytestructures ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://ngyro.com/software/guile-lzma.html";
+    description = "Guile wrapper for lzma library";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-quickcheck/package.nix b/nixpkgs/pkgs/by-name/gu/guile-quickcheck/package.nix
new file mode 100644
index 000000000000..0a7a0c836a64
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-quickcheck/package.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, lib
+, fetchurl
+, pkg-config
+, guile
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-quickcheck";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url = "https://files.ngyro.com/guile-quickcheck/guile-quickcheck-${version}.tar.gz";
+    hash = "sha256-y5msW+mbQ7YeucRS2VNUPokOKoP8g6ysKJ2UMWiIvA4=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ guile pkg-config ];
+  buildInputs = [ guile ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    homepage = "https://ngyro.com/software/guile-quickcheck.html";
+    description = "Guile library providing tools for randomized, property-based testing";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-semver/package.nix b/nixpkgs/pkgs/by-name/gu/guile-semver/package.nix
new file mode 100644
index 000000000000..ac2a95b09f1a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-semver/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, pkg-config
+, texinfo
+, guile
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-semver";
+  version = "0.1.1";
+
+  src = fetchurl {
+    url = "https://files.ngyro.com/guile-semver/${pname}-${version}.tar.gz";
+    hash = "sha256-T3kJGTdf6yBKjqLtqSopHZu03kyOscZ3Z4RYmoYlN4E=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook guile pkg-config texinfo ];
+  buildInputs = [ guile ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description =
+      "A GNU Guile library implementing Semantic Versioning 2.0.0";
+    homepage = "https://ngyro.com/software/guile-semver.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-zlib/package.nix b/nixpkgs/pkgs/by-name/gu/guile-zlib/package.nix
new file mode 100644
index 000000000000..a7559ebfbba5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-zlib/package.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, lib
+, fetchFromGitea
+, autoreconfHook
+, pkg-config
+, guile
+, texinfo
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-zlib";
+  version = "0.1.0";
+
+  src = fetchFromGitea {
+    domain = "notabug.org";
+    owner = "guile-zlib";
+    repo = "guile-zlib";
+    rev = "v${version}";
+    hash = "sha256-+5tdp4WcnVuhfMwkr8t3Jd6/U539X5Ys9Pgzy79F4cY=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook guile pkg-config texinfo ];
+  buildInputs = [ guile ];
+  propagatedBuildInputs = [ zlib ];
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description =
+      "Guile-zlib is a GNU Guile library providing bindings to zlib";
+    homepage = "https://notabug.org/guile-zlib/guile-zlib";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gu/guile-zstd/package.nix b/nixpkgs/pkgs/by-name/gu/guile-zstd/package.nix
new file mode 100644
index 000000000000..6bb4451fa228
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gu/guile-zstd/package.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, fetchFromGitea
+, autoreconfHook
+, pkg-config
+, guile
+, texinfo
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-zstd";
+  version = "0.1.1";
+
+  src = fetchFromGitea {
+    domain = "notabug.org";
+    owner = "guile-zstd";
+    repo = "guile-zstd";
+    rev = "v${version}";
+    hash = "sha256-IAyDoqb7qHAy666hxs6CCZrFnfwwV8AaR92XlQQ6FLE=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook guile pkg-config texinfo ];
+  buildInputs = [ guile ];
+  propagatedBuildInputs = [ zstd ];
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "A GNU Guile library providing bindings to zstd";
+    homepage = "https://notabug.org/guile-zstd/guile-zstd";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ foo-dogsquared ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ha/ha-mqtt-discoverable-cli/package.nix b/nixpkgs/pkgs/by-name/ha/ha-mqtt-discoverable-cli/package.nix
new file mode 100644
index 000000000000..2087a5f41038
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ha/ha-mqtt-discoverable-cli/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ha-mqtt-discoverable-cli";
+  version = "0.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "unixorn";
+    repo = "ha-mqtt-discoverable-cli";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-miFlrBmxVuIJjpsyYnbQt+QAGSrS4sHlJpCmxouM2Wc=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    ha-mqtt-discoverable
+  ];
+
+  # Project has no real tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ha_mqtt_discoverable_cli"
+  ];
+
+  meta = with lib; {
+    description = "CLI for creating Home Assistant compatible MQTT entities that will be automatically discovered";
+    homepage = "https://github.com/unixorn/ha-mqtt-discoverable-cli";
+    changelog = "https://github.com/unixorn/ha-mqtt-discoverable-cli/releases/tag/v0.2.1";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "hmd";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ha/haunt/package.nix b/nixpkgs/pkgs/by-name/ha/haunt/package.nix
new file mode 100644
index 000000000000..989fce392b28
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ha/haunt/package.nix
@@ -0,0 +1,89 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, callPackage
+, guile
+, guile-commonmark
+, guile-reader
+, makeWrapper
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "haunt";
+  version = "0.2.6";
+
+  src = fetchurl {
+    url = "https://files.dthompson.us/haunt/haunt-${finalAttrs.version}.tar.gz";
+    hash = "sha256-vPKLQ9hDJdimEAXwIBGgRRlefM8/77xFQoI+0J/lkNs=";
+  };
+
+  # Symbol not found: inotify_init
+  patches = [
+    (fetchpatch {
+      url = "https://git.dthompson.us/haunt.git/patch/?id=ab0b722b0719e3370a21359e4d511af9c4f14e60";
+      hash = "sha256-TPNJKGlbDkV9RpdN274qMLoN3HlwfH/yHpxlpqOPw58=";
+    })
+    (fetchpatch {
+      url = "https://git.dthompson.us/haunt.git/patch/?id=7d0b71f6a3f0e714da5a5c43e52408e27f44c383";
+      hash = "sha256-CW/h8CqsALKDuKRoN1bd/WEtFTvFj0VxtgmpatyrLm8=";
+    })
+    (fetchpatch {
+      url = "https://git.dthompson.us/haunt.git/patch/?id=1a91f3d0568fc095d8b0875c6553ef15b76efa4c";
+      hash = "sha256-+3wUlTuzbyGibAsCiYWKvzPqUrFs7VwdhnADjnPuWIY=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    guile
+    guile-commonmark
+    guile-reader
+  ];
+
+  # Test suite is non-determinisitic in later versions
+  doCheck = false;
+
+  postInstall = ''
+    wrapProgram $out/bin/haunt \
+      --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
+      --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
+  '';
+
+  passthru = {
+    tests = {
+      expectVersion = callPackage ./tests/001-test-version.nix { };
+    };
+  };
+
+  meta = {
+    homepage = "https://dthompson.us/projects/haunt.html";
+    description = "Guile-based static site generator";
+    longDescription = ''
+      Haunt is a simple, functional, hackable static site generator that gives
+      authors the ability to treat websites as Scheme programs.
+
+      By giving authors the full expressive power of Scheme, they are able to
+      control every aspect of the site generation process. Haunt provides a
+      simple, functional build system that can be easily extended for this
+      purpose.
+
+      Haunt has no opinion about what markup language authors should use to
+      write posts, though it comes with support for the popular Markdown
+      format. Likewise, Haunt has no opinion about how authors structure their
+      sites. Though it comes with support for building simple blogs or Atom
+      feeds, authors should feel empowered to tweak, replace, or create builders
+      to do things that aren't provided out-of-the-box.
+    '';
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres AluisioASG ];
+    inherit (guile.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ha/haunt/tests/001-test-version.nix b/nixpkgs/pkgs/by-name/ha/haunt/tests/001-test-version.nix
new file mode 100644
index 000000000000..726a7ac95713
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ha/haunt/tests/001-test-version.nix
@@ -0,0 +1,21 @@
+{ lib
+, stdenv
+, haunt
+}:
+
+stdenv.mkDerivation {
+  pname = "haunt-test-version";
+  inherit (haunt) version;
+
+  nativeBuildInputs = [ haunt ];
+
+  dontInstall = true;
+
+  buildCommand = ''
+    haunt --version
+
+    touch $out
+  '';
+
+  meta.timeout = 10;
+}
diff --git a/nixpkgs/pkgs/by-name/ha/havoc/package.nix b/nixpkgs/pkgs/by-name/ha/havoc/package.nix
new file mode 100644
index 000000000000..ed9f77ec5656
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ha/havoc/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libxkbcommon
+, pkg-config
+, wayland
+, wayland-protocols
+, wayland-scanner
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "havoc";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "ii8";
+    repo = "havoc";
+    rev = finalAttrs.version;
+    hash = "sha256-jvGm2gFdMS61otETF7gOEpYn6IuLfqI95IpEVfIv+C4=";
+  };
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
+  nativeBuildInputs = [
+    wayland-protocols
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    libxkbcommon
+    wayland
+  ];
+
+  dontConfigure = true;
+
+  installFlags = [ "PREFIX=$$out" ];
+
+  postInstall = ''
+    install -Dm 644 havoc.cfg -t $out/etc/havoc/
+    install -Dm 644 README.md -t $out/share/doc/havoc-${finalAttrs.version}/
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://github.com/ii8/havoc";
+    description = "A minimal terminal emulator for Wayland";
+    license = with lib.licenses; [ mit publicDomain ];
+    mainProgram = "havoc";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (wayland.meta) platforms;
+    broken = stdenv.isDarwin; # fatal error: 'sys/epoll.h' file not found
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/he/headphones-toolbox/package.nix b/nixpkgs/pkgs/by-name/he/headphones-toolbox/package.nix
new file mode 100644
index 000000000000..9f520d7c4875
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/headphones-toolbox/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, dpkg
+, fetchurl
+, autoPatchelfHook
+, webkitgtk
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  name = "headphones-toolbox";
+  version = "0.0.5";
+
+  src = fetchurl {
+    url = "https://github.com/ploopyco/headphones-toolbox/releases/download/app-v${finalAttrs.version}/ploopy-headphones-toolbox_${finalAttrs.version}_amd64.deb";
+    hash = "sha256-lWjmpybGcL3sbBng8zCTUtwYhlrQ6cCrKkhiu+g9MsE=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    webkitgtk
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mv usr/bin $out
+    mv usr/lib $out
+    mv usr/share $out
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A UI for configuring Ploopy Headphones";
+    homepage = "https://github.com/ploopyco/headphones-toolbox/";
+    maintainers = with maintainers; [ knarkzel nyanbinary ];
+    license = licenses.gpl3Only;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "headphones-toolbox";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/he/hello/package.nix b/nixpkgs/pkgs/by-name/he/hello/package.nix
new file mode 100644
index 000000000000..f1b056faf640
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/hello/package.nix
@@ -0,0 +1,46 @@
+{ callPackage
+, lib
+, stdenv
+, fetchurl
+, nixos
+, testers
+, hello
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hello";
+  version = "2.12.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/hello/hello-${finalAttrs.version}.tar.gz";
+    sha256 = "sha256-jZkUKv2SV28wsM18tCqNxoCZmLxdYH2Idh9RLibH2yA=";
+  };
+
+  doCheck = true;
+
+  passthru.tests = {
+    version = testers.testVersion { package = hello; };
+
+    invariant-under-noXlibs =
+      testers.testEqualDerivation
+        "hello must not be rebuilt when environment.noXlibs is set."
+        hello
+        (nixos { environment.noXlibs = true; }).pkgs.hello;
+  };
+
+  passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
+
+  meta = with lib; {
+    description = "A program that produces a familiar, friendly greeting";
+    longDescription = ''
+      GNU Hello is a program that prints "Hello, world!" when you run it.
+      It is fully customizable.
+    '';
+    homepage = "https://www.gnu.org/software/hello/manual/";
+    changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${finalAttrs.version}";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.eelco ];
+    mainProgram = "hello";
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/he/hello/test.nix b/nixpkgs/pkgs/by-name/he/hello/test.nix
new file mode 100644
index 000000000000..7acded2a16f2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/hello/test.nix
@@ -0,0 +1,8 @@
+{ runCommand, hello }:
+
+runCommand "hello-test-run" {
+  nativeBuildInputs = [ hello ];
+} ''
+  diff -U3 --color=auto <(hello) <(echo 'Hello, world!')
+  touch $out
+''
diff --git a/nixpkgs/pkgs/by-name/he/hexbinhex/package.nix b/nixpkgs/pkgs/by-name/he/hexbinhex/package.nix
new file mode 100644
index 000000000000..8386ee9128dd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/hexbinhex/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "hexbinhex";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "dj-on-github";
+    repo = "hexbinhex";
+    rev = "v${version}";
+    hash = "sha256-nfOmiF+t5QtAl1I7CSz26C9SGo7ZkdSziO2eiHbk6pA=";
+  };
+
+  preBuild = ''
+    substituteInPlace Makefile --replace '/usr/local' $out
+    mkdir -p $out/bin
+  ''
+  +
+  lib.optionalString (!stdenv.hostPlatform.isx86_64) ''
+    sed -i s/-m64//g Makefile
+  '';
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://github.com/dj-on-github/hexbinhex";
+    description = ''
+      Six utility programs to convert between hex, binary, ascii-binary
+      and the oddball NIST format for 90B testing.
+    '';
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ orichter thillux ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/hi/hifile/package.nix b/nixpkgs/pkgs/by-name/hi/hifile/package.nix
new file mode 100644
index 000000000000..bf2bda5100dc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hi/hifile/package.nix
@@ -0,0 +1,41 @@
+{ lib, appimageTools, fetchurl }:
+
+let
+  version = "0.9.9.5";
+  pname = "hifile";
+
+  src = fetchurl {
+    url = "https://www.hifile.app/files/HiFile-${version}.AppImage";
+    hash = "sha256-Ks/NLPm5loo9q8pT0LdtfcrC38203beNE74sbEpyuJM=";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit pname version src;
+  };
+
+in
+appimageTools.wrapType2 rec {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${pname}-${version} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/HiFile.desktop $out/share/applications/HiFile.desktop
+    install -m 444 -D ${appimageContents}/HiFile.png $out/share/icons/hicolor/512x512/apps/HiFile.png
+    substituteInPlace $out/share/applications/HiFile.desktop \
+      --replace 'Exec=HiFile' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "Dual-pane graphical file manager for Windows, macOS and Linux";
+    longDescription = ''
+      HiFile is the next evolution of file managers. Its mission is to increase your productivity whenever you work with files or folders. It aims to be better in every way - more convenient, more versatile, more efficient, more elegant, more customizable, and more fun.
+    '';
+    homepage = "https://www.hifile.app/";
+    downloadPage = "https://www.hifile.app/download";
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ ymstnt ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ho/homeassistant-satellite/package.nix b/nixpkgs/pkgs/by-name/ho/homeassistant-satellite/package.nix
new file mode 100644
index 000000000000..26f90237f521
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ho/homeassistant-satellite/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "homeassistant-satellite";
+  version = "2.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "synesthesiam";
+    repo = "homeassistant-satellite";
+    rev = "v${version}";
+    hash = "sha256-iosutOpkpt0JJIMyALuQSDLj4jk57ITShVyPYlQgMFg=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiohttp
+  ];
+
+  passthru.optional-dependencies = {
+    pulseaudio = with python3.pkgs; [
+      pasimple
+      pulsectl
+    ];
+    silerovad = with python3.pkgs; [
+      numpy
+      onnxruntime
+    ];
+    webrtc = with python3.pkgs; [
+      webrtc-noise-gain
+    ];
+  };
+
+  pythonImportsCheck = [
+    "homeassistant_satellite"
+  ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    changelog = "https://github.com/synesthesiam/homeassistant-satellite/blob/v${version}/CHANGELOG.md";
+    description = "Streaming audio satellite for Home Assistant";
+    homepage = "https://github.com/synesthesiam/homeassistant-satellite";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+    mainProgram = "homeassistant-satellite";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/hy/hyperlink/package.nix b/nixpkgs/pkgs/by-name/hy/hyperlink/package.nix
new file mode 100644
index 000000000000..2d2ac51f30fe
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hy/hyperlink/package.nix
@@ -0,0 +1,26 @@
+{ rustPlatform
+, lib
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hyperlink";
+  version = "0.1.31";
+
+  src = fetchFromGitHub {
+    owner = "untitaker";
+    repo = "hyperlink";
+    rev = version;
+    hash = "sha256-ZmNw4NmDD0VWwnmNjxsA4y5gzVbTzshZLRYzaNJ4iGw=";
+  };
+
+  cargoHash = "sha256-5j1Ziwk5uQNIKCRMZpJP4qR0tcyUUvT8i/KZbXq3WzI=";
+
+  meta = with lib; {
+    description = "Very fast link checker for CI";
+    homepage = "https://github.com/untitaker/hyperlink";
+    license = licenses.mit;
+    maintainers = [ maintainers.rossabaker ];
+    mainProgram = "hyperlink";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/hy/hyprkeys/package.nix b/nixpkgs/pkgs/by-name/hy/hyprkeys/package.nix
new file mode 100644
index 000000000000..e4ae721ed5e1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hy/hyprkeys/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "hyprkeys";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "hyprland-community";
+    repo = "Hyprkeys";
+    rev = "v${version}";
+    hash = "sha256-u2NTSth9gminIEcbxgGm/2HHyzuwf/YPNQV4VzR14Kk=";
+  };
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
+  ];
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  vendorHash = "sha256-JFvC9V0xS8SZSdLsOtpyTrFzXjYAOaPQaJHdcnJzK3s=";
+
+  postInstall = ''
+    installShellCompletion --cmd hyprkeys \
+      --bash <($out/bin/hyprkeys completion bash) \
+      --fish <($out/bin/hyprkeys completion fish) \
+      --zsh <($out/bin/hyprkeys completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A simple, scriptable keybind retrieval utility for Hyprland";
+    homepage = "https://github.com/hyprland-community/Hyprkeys";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ NotAShelf donovanglover ];
+    mainProgram = "hyprkeys";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/i3/i3bar-river/package.nix b/nixpkgs/pkgs/by-name/i3/i3bar-river/package.nix
new file mode 100644
index 000000000000..e891fe01f31a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/i3/i3bar-river/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, pango
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3bar-river";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "MaxVerevkin";
+    repo = "i3bar-river";
+    rev = "v${version}";
+    hash = "sha256-c5R5V5J1ETBl6JAdNDSxa94OeMyqbTAUmJHJCo1B+WQ=";
+  };
+
+  cargoHash = "sha256-D/WKv8rhb/ZGuVEZDp83PZxJydHbnZUQp+kVNlMBUCs=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ pango ];
+
+  meta = with lib; {
+    description = "A port of i3bar for river";
+    homepage = "https://github.com/MaxVerevkin/i3bar-river";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ nicegamer7 ];
+    mainProgram = "i3bar-river";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ic/icewm/package.nix b/nixpkgs/pkgs/by-name/ic/icewm/package.nix
new file mode 100644
index 000000000000..4df2536516f3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ic/icewm/package.nix
@@ -0,0 +1,125 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, expat
+, flac
+, fontconfig
+, freetype
+, fribidi
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+, gettext
+, giflib
+, glib
+, imlib2
+, libICE
+, libSM
+, libX11
+, libXcomposite
+, libXdamage
+, libXdmcp
+, libXext
+, libXfixes
+, libXft
+, libXinerama
+, libXpm
+, libXrandr
+, libjpeg
+, libogg
+, libpng
+, libpthreadstubs
+, libsndfile
+, libtiff
+, libxcb
+, mkfontdir
+, pcre2
+, perl
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "icewm";
+  version = "3.4.3";
+
+  src = fetchFromGitHub {
+    owner = "ice-wm";
+    repo = "icewm";
+    rev = finalAttrs.version;
+    hash = "sha256-SgSbcWNib2BXyTOBDI1J2TzXhnXoRH0GK3rJvyLID7w=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    perl
+    pkg-config
+  ];
+
+  buildInputs = [
+    expat
+    flac
+    fontconfig
+    freetype
+    fribidi
+    gdk-pixbuf
+    gdk-pixbuf-xlib
+    gettext
+    giflib
+    glib
+    imlib2
+    libICE
+    libSM
+    libX11
+    libXcomposite
+    libXdamage
+    libXdmcp
+    libXext
+    libXfixes
+    libXft
+    libXinerama
+    libXpm
+    libXrandr
+    libjpeg
+    libogg
+    libpng
+    libpthreadstubs
+    libsndfile
+    libtiff
+    libxcb
+    mkfontdir
+    pcre2
+  ];
+
+  cmakeFlags = [
+    "-DPREFIX=$out"
+    "-DCFGDIR=/etc/icewm"
+  ];
+
+  # install legacy themes
+  postInstall = ''
+    cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} \
+      $out/share/icewm/themes/
+  '';
+
+  meta = with lib; {
+    homepage = "https://ice-wm.org/";
+    description = "A simple, lightweight X window manager";
+    longDescription = ''
+      IceWM is a window manager for the X Window System. The goal of IceWM is
+      speed, simplicity, and not getting in the user’s way. It comes with a
+      taskbar with pager, global and per-window keybindings and a dynamic menu
+      system. Application windows can be managed by keyboard and mouse. Windows
+      can be iconified to the taskbar, to the tray, to the desktop or be made
+      hidden. They are controllable by a quick switch window (Alt+Tab) and in a
+      window list. A handful of configurable focus models are menu-selectable.
+      Setups with multiple monitors are supported by RandR and Xinerama. IceWM
+      is very configurable, themeable and well documented. It includes an
+      optional external background wallpaper manager with transparency support,
+      a simple session manager and a system tray.
+    '';
+    license = licenses.lgpl2Only;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/if/ifrextractor-rs/Cargo.lock b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/Cargo.lock
new file mode 100644
index 000000000000..5818fd6e1fa3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/Cargo.lock
@@ -0,0 +1,32 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ifrextractor"
+version = "1.5.1"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "nom"
+version = "4.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
diff --git a/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix
new file mode 100644
index 000000000000..48ab01d352fa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ifrextractor-rs";
+  version = "1.5.1";
+
+  src = fetchFromGitHub {
+    owner = "LongSoft";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-zpoOThjkL2Hu/ytxdqWcr2GXzN4Cm8hph7PJhSF5BlU=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  meta = with lib; {
+    description = "Rust utility to extract UEFI IFR data into human-readable text";
+    homepage = "https://github.com/LongSoft/IFRExtractor-RS";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ jiegec ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/im/imhex/package.nix b/nixpkgs/pkgs/by-name/im/imhex/package.nix
new file mode 100644
index 000000000000..2f1a6b927df2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/im/imhex/package.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, cmake
+, llvm
+, fetchFromGitHub
+, mbedtls
+, gtk3
+, pkg-config
+, capstone
+, dbus
+, libGLU
+, glfw3
+, file
+, perl
+, python3
+, jansson
+, curl
+, fmt_8
+, nlohmann_json
+, yara
+, rsync
+}:
+
+let
+  # FIXME: unstable, stable needs #252945 (details in #258964)
+  # Next version bump should be stabilized
+  version = "unstable-2023-10-01";
+  patterns_version = "1.31.0";
+
+  patterns_src = fetchFromGitHub {
+    owner = "WerWolv";
+    repo = "ImHex-Patterns";
+    rev = "ImHex-v${patterns_version}";
+    hash = "sha256-lTTXu9RxoD582lXWI789gNcWvJmxmBIlBRIiyY3DseM=";
+  };
+
+in
+stdenv.mkDerivation rec {
+  pname = "imhex";
+  inherit version;
+
+  src = fetchFromGitHub {
+    fetchSubmodules = true;
+    owner = "WerWolv";
+    repo = pname;
+    rev = "a62ede784018f9d5aaf40587f71a1271429ab50b";
+    hash = "sha256-L3ncmM7Ro60DvOF/Y0fjo2Smlw2LL8cPa8H6yVGdGAk=";
+  };
+
+  nativeBuildInputs = [ cmake llvm python3 perl pkg-config rsync ];
+
+  buildInputs = [
+    capstone
+    curl
+    dbus
+    file
+    fmt_8
+    glfw3
+    gtk3
+    jansson
+    libGLU
+    mbedtls
+    nlohmann_json
+    yara
+  ];
+
+  cmakeFlags = [
+    "-DIMHEX_OFFLINE_BUILD=ON"
+    "-DUSE_SYSTEM_CAPSTONE=ON"
+    "-DUSE_SYSTEM_CURL=ON"
+    "-DUSE_SYSTEM_FMT=ON"
+    "-DUSE_SYSTEM_LLVM=ON"
+    "-DUSE_SYSTEM_NLOHMANN_JSON=ON"
+    "-DUSE_SYSTEM_YARA=ON"
+  ];
+
+  # rsync is used here so we can not copy the _schema.json files
+  postInstall = ''
+    mkdir -p $out/share/imhex
+    rsync -av --exclude="*_schema.json" ${patterns_src}/{constants,encodings,includes,magic,patterns} $out/share/imhex
+  '';
+
+  meta = with lib; {
+    description = "Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM";
+    homepage = "https://github.com/WerWolv/ImHex";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ luis kashw2 cafkafk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix b/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix
new file mode 100644
index 000000000000..0cf8ef3e17ab
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, appimageTools
+, fetchurl
+}:
+appimageTools.wrapType2 rec {
+  pname = "immersed-vr";
+  version = "9.6";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://web.archive.org/web/20231011083250/https://static.immersed.com/dl/Immersed-x86_64.AppImage";
+    hash = "sha256-iA0SQlPktETFXEqCbSoWV9NaWVahkPa6qO4Cfju0aBQ=";
+  };
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+  '';
+
+  extraPkgs = pkgs: with pkgs; [
+    libthai
+  ];
+
+  meta = with lib; {
+    description = "A VR coworking platform";
+    homepage = "https://immersed.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ haruki7049 ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/im/impression/package.nix b/nixpkgs/pkgs/by-name/im/impression/package.nix
new file mode 100644
index 000000000000..5a196f3b41fb
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/im/impression/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, blueprint-compiler
+, cargo
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, wrapGAppsHook4
+, cairo
+, dbus
+, gdk-pixbuf
+, glib
+, gtk4
+, libadwaita
+, pango
+}:
+
+stdenv.mkDerivation rec {
+  pname = "impression";
+  version = "2.1";
+
+  src = fetchFromGitLab {
+    owner = "adhami3310";
+    repo = "Impression";
+    rev = "v${version}";
+    hash = "sha256-Pq1Pz/uNBsk4UdtCwA5gmZoS+kiDrCbpum4ABW7oocA=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-eIfDuz4ewTzmLDKShro3VkoXAZEUOKu133eD/z75jjY=";
+  };
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    cargo
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    cairo
+    dbus
+    gdk-pixbuf
+    glib
+    gtk4
+    libadwaita
+    pango
+  ];
+
+  meta = {
+    description = "Straight-forward and modern application to create bootable drives";
+    homepage = "https://gitlab.com/adhami3310/Impression";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "impression";
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/in/incus-unwrapped/package.nix b/nixpkgs/pkgs/by-name/in/incus-unwrapped/package.nix
new file mode 100644
index 000000000000..dd23b6c0a3b8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/in/incus-unwrapped/package.nix
@@ -0,0 +1,97 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, acl
+, cowsql
+, hwdata
+, libcap
+, lxc
+, pkg-config
+, sqlite
+, udev
+, installShellFiles
+, gitUpdater
+}:
+
+buildGoModule rec {
+  pname = "incus-unwrapped";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "lxc";
+    repo = "incus";
+    rev = "refs/tags/incus-${version}";
+    hash = "sha256-DCNMhfSzIpu5Pdg2TiFQ7GgLEScqt/Xqm2X+VSdeaME=";
+  };
+
+  vendorHash = "sha256-Pk0/SfGCqXdXvNHbokSV8ajFHeOv0+Et0JytRCoBLU4=";
+
+  postPatch = ''
+    substituteInPlace internal/usbid/load.go \
+      --replace "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
+  '';
+
+  excludedPackages = [
+    "cmd/incus-agent"
+    "cmd/incus-migrate"
+    "cmd/lxd-to-incus"
+  ];
+
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
+
+  buildInputs = [
+    lxc
+    acl
+    libcap
+    cowsql.dev
+    sqlite
+    udev.dev
+  ];
+
+  ldflags = [ "-s" "-w" ];
+  tags = [ "libsqlite3" ];
+
+  preBuild = ''
+    # required for go-cowsql.
+    export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
+  '';
+
+  postBuild = ''
+    make incus-agent incus-migrate
+  '';
+
+  preCheck =
+    let skippedTests = [
+      "TestValidateConfig"
+      "TestConvertNetworkConfig"
+      "TestConvertStorageConfig"
+      "TestSnapshotCommon"
+      "TestContainerTestSuite"
+    ]; in
+    ''
+      # Disable tests requiring local operations
+      buildFlagsArray+=("-run" "[^(${builtins.concatStringsSep "|" skippedTests})]")
+    '';
+
+  postInstall = ''
+    installShellCompletion --bash --name incus ./scripts/bash/incus
+  '';
+
+  passthru = {
+    updateScript = gitUpdater {
+      rev-prefix = "incus-";
+    };
+  };
+
+  meta = {
+    description = "Powerful system container and virtual machine manager";
+    homepage = "https://linuxcontainers.org/incus";
+    changelog = "https://github.com/lxc/incus/releases/tag/incus-${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ adamcstephens ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/in/incus/package.nix b/nixpkgs/pkgs/by-name/in/incus/package.nix
new file mode 100644
index 000000000000..1eda9cf3ea72
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/in/incus/package.nix
@@ -0,0 +1,115 @@
+{ lib
+, incus-unwrapped
+, linkFarm
+, makeWrapper
+, stdenv
+, symlinkJoin
+, writeShellScriptBin
+, acl
+, apparmor-parser
+, apparmor-profiles
+, attr
+, bash
+, btrfs-progs
+, criu
+, dnsmasq
+, gnutar
+, gptfdisk
+, gzip
+, iproute2
+, iptables
+, OVMF
+, qemu_kvm
+, qemu-utils
+, rsync
+, spice-gtk
+, squashfsTools
+, virtiofsd
+, xz
+}:
+let
+  binPath = lib.makeBinPath [
+    acl
+    attr
+    bash
+    btrfs-progs
+    criu
+    dnsmasq
+    gnutar
+    gptfdisk
+    gzip
+    iproute2
+    iptables
+    qemu_kvm
+    qemu-utils
+    rsync
+    squashfsTools
+    virtiofsd
+    xz
+
+    (writeShellScriptBin "apparmor_parser" ''
+      exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
+    '')
+  ];
+
+  clientBinPath = [
+    spice-gtk
+  ];
+
+  ovmf-2mb = OVMF.override {
+    secureBoot = true;
+    csmSupport = false;
+    fdSize2MB = true;
+  };
+
+  ovmf-4mb = OVMF.override {
+    secureBoot = true;
+    csmSupport = false;
+    fdSize4MB = true;
+  };
+
+  ovmf-4mb-csm = OVMF.override {
+    secureBoot = true;
+    csmSupport = false;
+    fdSize2MB = false;
+    fdSize4MB = true;
+  };
+
+  ovmf-prefix = if stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
+
+  # mimic ovmf from https://github.com/canonical/incus-pkg-snap/blob/3abebe1dfeb20f9b7729556960c7e9fe6ad5e17c/snapcraft.yaml#L378
+  # also found in /snap/incus/current/share/qemu/ on a snap install
+  ovmf = linkFarm "incus-ovmf" [
+    { name = "OVMF_CODE.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
+    { name = "OVMF_CODE.4MB.CSM.fd"; path = "${ovmf-4mb-csm.fd}/FV/${ovmf-prefix}_CODE.fd"; }
+    { name = "OVMF_CODE.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
+    { name = "OVMF_CODE.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_CODE.fd"; }
+
+    { name = "OVMF_VARS.2MB.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.2MB.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.4MB.CSM.fd"; path = "${ovmf-4mb-csm.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.4MB.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.4MB.ms.fd"; path = "${ovmf-4mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+    { name = "OVMF_VARS.ms.fd"; path = "${ovmf-2mb.fd}/FV/${ovmf-prefix}_VARS.fd"; }
+  ];
+in
+symlinkJoin {
+  name = "incus-${incus-unwrapped.version}";
+
+  paths = [ incus-unwrapped ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/incusd --prefix PATH : ${lib.escapeShellArg binPath}:${qemu_kvm}/libexec:$out/bin --set INCUS_OVMF_PATH ${ovmf}
+
+    wrapProgram $out/bin/incus --prefix PATH : ${lib.makeBinPath clientBinPath}
+  '';
+
+  passthru = {
+    inherit (incus-unwrapped) tests;
+  };
+
+  inherit (incus-unwrapped) meta pname version;
+}
diff --git a/nixpkgs/pkgs/by-name/ir/ironbar/package.nix b/nixpkgs/pkgs/by-name/ir/ironbar/package.nix
new file mode 100644
index 000000000000..cbc4a7678f5b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ir/ironbar/package.nix
@@ -0,0 +1,80 @@
+{ gtk3
+, gdk-pixbuf
+, librsvg
+, webp-pixbuf-loader
+, gobject-introspection
+, glib-networking
+, glib
+, shared-mime-info
+, gsettings-desktop-schemas
+, wrapGAppsHook
+, gtk-layer-shell
+, gnome
+, libxkbcommon
+, openssl
+, pkg-config
+, hicolor-icon-theme
+, rustPlatform
+, lib
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ironbar";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "JakeStanger";
+    repo = "ironbar";
+    rev = "v${version}";
+    hash = "sha256-e79eJGc/kxQjRwa1HnF7V/pCbrMTstJsBOl1Luo6i0g=";
+  };
+
+  cargoHash = "sha256-N8uAisQ50W/9zCr9bRX6tZ0slEoe1zCEMDXuvmoWEs4=";
+
+  buildInputs = [
+    gtk3
+    gdk-pixbuf
+    glib
+    gtk-layer-shell
+    glib-networking
+    shared-mime-info
+    gnome.adwaita-icon-theme
+    hicolor-icon-theme
+    gsettings-desktop-schemas
+    libxkbcommon
+    openssl
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+    gobject-introspection
+  ];
+
+  propagatedBuildInputs = [
+    gtk3
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Thumbnailers
+      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
+      --prefix XDG_DATA_DIRS : "${librsvg}/share"
+      --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share"
+      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+
+      # gtk-launch
+      --suffix PATH : "${lib.makeBinPath [ gtk3 ]}"
+    )
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/JakeStanger/ironbar";
+    description = "Customizable gtk-layer-shell wlroots/sway bar written in Rust";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ yavko donovanglover jakestanger ];
+    mainProgram = "ironbar";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ji/jinja2-cli/package.nix b/nixpkgs/pkgs/by-name/ji/jinja2-cli/package.nix
new file mode 100644
index 000000000000..921d668952cd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ji/jinja2-cli/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, python3
+, fetchFromGitHub
+, extras ? [ "hjson" "json5" "toml" "xml" "yaml" ]
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "jinja2-cli";
+  version = "0.8.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "mattrobenolt";
+    repo = "jinja2-cli";
+    rev = version;
+    hash = "sha256-67gYt0nZX+VTVaoSxVXGzbRiXD7EMsVBFWC8wHo+Vw0=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.setuptools
+    python3.pkgs.wheel
+  ];
+
+  nativeCheckInputs = [
+    python3.pkgs.pytestCheckHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    jinja2
+  ] ++ lib.attrVals extras passthru.optional-dependencies;
+
+  pythonImportsCheck = [ "jinja2cli" ];
+
+  passthru.optional-dependencies = with python3.pkgs; {
+    hjson = [ hjson ];
+    json5 = [ json5 ];
+    toml = [ toml ];
+    xml = [ xmltodict ];
+    yaml = [ pyyaml ];
+  };
+
+  meta = with lib; {
+    description = "CLI for Jinja2";
+    homepage = "https://github.com/mattrobenolt/jinja2-cli";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "jinja2";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ji/jitterentropy-rngd/package.nix b/nixpkgs/pkgs/by-name/ji/jitterentropy-rngd/package.nix
new file mode 100644
index 000000000000..feb7d1e2fb12
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ji/jitterentropy-rngd/package.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "jitterentropy-rngd";
+  version = "1.2.8";
+
+  src = fetchFromGitHub {
+    owner = "smuellerDD";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-LDym636ss3B1G/vrqatu9g5vbVEeDX0JQcxZ/IxGeY0=";
+  };
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    make install DESTDIR= PREFIX=$out UNITDIR=$out/lib/systemd/system
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = ''A random number generator, which injects entropy to the kernel'';
+    homepage = "https://github.com/smuellerDD/jitterentropy-rngd";
+    changelog = "https://github.com/smuellerDD/jitterentropy-rngd/releases/tag/v${version}";
+    license = [ licenses.gpl2Only licenses.bsd3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ thillux ];
+    mainProgram = "jitterentropy-rngd";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ju/justbuild/package.nix b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix
new file mode 100644
index 000000000000..3403edcaaccf
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix
@@ -0,0 +1,186 @@
+{
+  gccStdenv,
+  fetchFromGitHub,
+  fetchurl,
+
+  fmt_10,
+  nlohmann_json,
+  cli11,
+  microsoft-gsl,
+  libgit2,
+  openssl,
+
+  pkg-config,
+  protobuf3_23,
+  grpc,
+  pandoc,
+  python3,
+  unzip,
+  wget,
+  lib,
+  jq,
+
+  curl,
+  libarchive,
+}:
+let stdenv = gccStdenv;
+in
+stdenv.mkDerivation rec {
+  pname = "justbuild";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "just-buildsystem";
+    repo = "justbuild";
+    rev = "v${version}";
+    sha256 = "sha256-36njngcGmRtYh/U3wkZUAU6ivPQ8qP8zVj1JzI9TuDY=";
+
+    # The source contains both test/end-to-end/targets and
+    # test/end-to-end/TARGETS, causing issues on case-insensitive filesystems.
+    # Remove them, since we're not running end-to-end tests.
+    postFetch = ''
+      rm -rf $out/test/end-to-end/targets $out/test/end-to-end/TARGETS
+    '';
+  };
+
+  bazelapi = fetchurl {
+    url = "https://github.com/bazelbuild/remote-apis/archive/e1fe21be4c9ae76269a5a63215bb3c72ed9ab3f0.tar.gz";
+    sha256 = "7421abd5352ccf927c2050453a4dbfa1f7b1c7170ec3e8702b6fe2d39b8805fe";
+  };
+
+  googleapi = fetchurl {
+    url = "https://github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz";
+    sha256 = "5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0";
+  };
+
+  nativeBuildInputs =
+    [
+      # Tools for the bootstrap process
+      jq
+      pkg-config
+      python3
+      unzip
+      wget
+
+      # Dependencies of just
+      cli11
+      # Using fmt 10 because this is the same version upstream currently
+      # uses for bundled builds
+      # For future updates: The currently used version can be found in the file
+      # etc/repos.json: https://github.com/just-buildsystem/justbuild/blob/master/etc/repos.json
+      # under the key .repositories.fmt
+      fmt_10
+      microsoft-gsl
+      nlohmann_json
+
+      # Dependencies of the compiled just-mr
+      curl
+      libarchive
+    ];
+
+  buildInputs = [
+    grpc
+    libgit2
+    openssl
+    # Using protobuf 23 because this is the same version upstream currently
+    # uses for bundled builds
+    # For future updates: The currently used version can be found in the file
+    # etc/repos.json: https://github.com/just-buildsystem/justbuild/blob/master/etc/repos.json
+    # under the key .repositories.protobuf
+    protobuf3_23
+    python3
+  ];
+
+  postPatch = ''
+    sed -ie 's|\./bin/just-mr.py|${python3}/bin/python3 ./bin/just-mr.py|' bin/bootstrap.py
+    sed -ie 's|#!/usr/bin/env python3|#!${python3}/bin/python3|' bin/parallel-bootstrap-traverser.py
+    jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf3_23}"' etc/repos.json > etc/repos.json.patched
+    mv etc/repos.json.patched etc/repos.json
+    jq '.repositories.com_github_grpc_grpc.pkg_bootstrap.local_path = "${grpc}"' etc/repos.json > etc/repos.json.patched
+    mv etc/repos.json.patched etc/repos.json
+    jq '.unknown.PATH = []' etc/toolchain/CC/TARGETS > etc/toolchain/CC/TARGETS.patched
+    mv etc/toolchain/CC/TARGETS.patched etc/toolchain/CC/TARGETS
+  '' + lib.optionalString stdenv.isDarwin ''
+    sed -ie 's|-Wl,-z,stack-size=8388608|-Wl,-stack_size,0x800000|' bin/bootstrap.py
+  '';
+
+  /* The build phase follows the bootstrap procedure that is explained in
+     https://github.com/just-buildsystem/justbuild/blob/master/INSTALL.md
+
+     The bootstrap of the just binary depends on two proto libraries, which are
+     supplied as external distfiles.
+
+     The microsoft-gsl library does not provide a pkg-config file, so one is
+     created here. In case also the GNU Scientific Library would be used (which
+     has also the pkg-config name gsl) this would cause a conflict. However, it
+     is very unlikely that a build tool will ever depend on a GPL math library.
+
+     The extra build flags (ADD_CFLAGS and ADD_CXXFLAGS) are only needed in the
+     current version of just, the next release will contain a fix from upstream.
+     https://github.com/just-buildsystem/justbuild/commit/5abcd4140a91236c7bda1c21ce69e76a28da7c8a
+
+  */
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir .distfiles
+    ln -s ${bazelapi} .distfiles/e1fe21be4c9ae76269a5a63215bb3c72ed9ab3f0.tar.gz
+    ln -s ${googleapi} .distfiles/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz
+
+    mkdir .pkgconfig
+    cat << __EOF__ > .pkgconfig/gsl.pc
+    Name: gsl
+    Version: n/a
+    Description: n/a
+    URL: n/a
+    Cflags: -I${microsoft-gsl}/include
+    __EOF__
+    export PKG_CONFIG_PATH=`pwd`/.pkgconfig''${PKG_CONFIG_PATH:+:}$PKG_CONFIG_PATH
+
+
+    # Bootstrap just
+    export PACKAGE=YES
+    export NON_LOCAL_DEPS='[ "google_apis", "bazel_remote_apis" ]'
+    export JUST_BUILD_CONF=`echo $PATH | jq -R '{ ENV: { PATH: . }, "ADD_CFLAGS": ["-Wno-error=pedantic"], "ADD_CXXFLAGS": ["-Wno-error=pedantic", "-D__unix__", "-DFMT_HEADER_ONLY"], "ARCH": "'$(uname -m)'" }'`
+
+    mkdir ../build
+    python3 ./bin/bootstrap.py `pwd` ../build "`pwd`/.distfiles"
+
+    # Build compiled just-mr
+    mkdir ../build-root
+    ../build/out/bin/just install 'installed just-mr' -c ../build/build-conf.json -C ../build/repo-conf.json --output-dir ../build/out --local-build-root ../build-root
+
+    # convert man pages from Markdown to man
+    find "./share/man" -name "*.md" -exec sh -c '${pandoc}/bin/pandoc --standalone --to man -o "''${0%.md}.man" "''${0}"' {} \;
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p "$out/bin"
+
+
+    install -m 755 -Dt "$out/bin" "../build/out/bin/just"
+    install -m 755 -Dt "$out/bin" "../build/out/bin/just-mr"
+    install -m 755 -DT "bin/just-import-git.py" "$out/bin/just-import-git"
+
+    mkdir -p "$out/share/bash-completion/completions"
+    install -m 0644 ./share/just_complete.bash "$out/share/bash-completion/completions/just"
+
+    mkdir -p "$out/share/man/"{man1,man5}
+    install -m 0644 -t "$out/share/man/man1" ./share/man/*.1.man
+    install -m 0644 -t "$out/share/man/man5" ./share/man/*.5.man
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    broken = stdenv.isDarwin;
+    description = "a generic build tool";
+    homepage = "https://github.com/just-buildsystem/justbuild";
+    license = licenses.asl20;
+    maintainers = with maintainers; [clkamp];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ka/katriawm/package.nix b/nixpkgs/pkgs/by-name/ka/katriawm/package.nix
new file mode 100644
index 000000000000..85116255e24f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ka/katriawm/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchzip
+, libX11
+, libXft
+, libXrandr
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "katriawm";
+  version = "23.08";
+
+  src = fetchzip {
+    url = "https://www.uninformativ.de/git/katriawm/archives/katriawm-v${finalAttrs.version}.tar.gz";
+    hash = "sha256-IWviLboZz421/Amz/QG4o8jYaG8Y/l5PvmvXfK5nzJE=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libX11
+    libXft
+    libXrandr
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  makeFlags = [ "-C" "src" ];
+
+  installFlags = [ "prefix=$(out)" ];
+
+  postPatch = ''
+    substituteInPlace src/config.mk \
+      --replace pkg-config "$PKG_CONFIG"
+  '';
+
+  meta = {
+    homepage = "https://www.uninformativ.de/git/katriawm/file/README.html";
+    description = "A non-reparenting, dynamic window manager with decorations";
+    license = lib.licenses.mit;
+    mainProgram = "katriawm";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/kc/kconfig-frontends/package.nix b/nixpkgs/pkgs/by-name/kc/kconfig-frontends/package.nix
new file mode 100644
index 000000000000..954ca475a75d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/kc/kconfig-frontends/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchurl
+, bash
+, bison
+, flex
+, gperf
+, ncurses
+, pkg-config
+, python3
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kconfig-frontends";
+  version = "4.11.0.1";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/nuttx/tools/downloads/kconfig-frontends-${finalAttrs.version}.tar.bz2";
+    hash = "sha256-yxg4z+Lwl7oJyt4n1HUncg1bKeK3FcCpbDPQtqELqxM=";
+  };
+
+  patches = [
+    # This patch is a fixed file, there is no need to normalize it
+    (fetchurl {
+      url = "https://bitbucket.org/nuttx/tools/downloads/gperf3.1_kconfig_id_lookup.patch";
+      hash = "sha256-cqAWjRnMA/fJ8wnEfUxoPEW0hIJY/mprE6/TQMY6NPI=";
+    })
+  ];
+
+  outputs = [ "out" "lib" "dev" "doc" ];
+
+  nativeBuildInputs = [
+    bison
+    flex
+    gperf
+    pkg-config
+  ];
+
+  buildInputs = [
+    bash
+    ncurses
+    python3
+  ];
+
+  strictDeps = true;
+
+  configureFlags = [
+    "--enable-frontends=conf,mconf,nconf"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=format-security";
+
+  meta = {
+    description = "Out of Linux tree packaging of the kconfig infrastructure";
+    longDescription = ''
+      Configuration language and system for the Linux kernel and other
+      projects. Features simple syntax and grammar, limited yet adequate option
+      types, simple organization of options, and direct and reverse
+      dependencies.
+    '';
+    homepage = "https://bitbucket.org/nuttx/tools/";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ke/kermit-terminal/package.nix b/nixpkgs/pkgs/by-name/ke/kermit-terminal/package.nix
new file mode 100644
index 000000000000..a0c0008917a4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ke/kermit-terminal/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtk3
+, pcre
+, pkg-config
+, vte
+, nixosTests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kermit";
+  version = "3.8";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "kermit";
+    rev = finalAttrs.version;
+    hash = "sha256-XPHF33Nu+H8OcQFwsuUOhDBDWKm8sh5B36sfROeSWPg=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk3
+    pcre
+    vte
+  ];
+
+  passthru.tests.test = nixosTests.terminal-emulators.kermit;
+
+  meta = {
+    homepage = "https://github.com/orhun/kermit";
+    description = "A VTE-based, simple and froggy terminal emulator";
+    changelog = "https://github.com/orhun/kermit/releases/tag/${finalAttrs.version}";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "kermit";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/km/kmsvnc/package.nix b/nixpkgs/pkgs/by-name/km/kmsvnc/package.nix
new file mode 100644
index 000000000000..000dc8115b2b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/km/kmsvnc/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libdrm
+, libvncserver
+, libxkbcommon
+, libva
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kmsvnc";
+  version = "0.0.5";
+
+  src = fetchFromGitHub {
+    owner = "isjerryxiao";
+    repo = "kmsvnc";
+    rev = "v${version}";
+    hash = "sha256-Dz1y4t8u9/rnmOiYMWMq6aEq3kV47uiIK7K4DSvjZNc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libdrm
+    libvncserver
+    libxkbcommon
+    libva
+  ];
+
+  meta = with lib; {
+    description = "A VNC server for DRM/KMS capable GNU/Linux devices";
+    homepage = "https://github.com/isjerryxiao/kmsvnc";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ nickcao ];
+    mainProgram = "kmsvnc";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ko/kokkos/package.nix b/nixpkgs/pkgs/by-name/ko/kokkos/package.nix
new file mode 100644
index 000000000000..b6578f4a020f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ko/kokkos/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gitUpdater
+, cmake
+, python3
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kokkos";
+  version = "4.1.00";
+
+  src = fetchFromGitHub {
+    owner = "kokkos";
+    repo = "kokkos";
+    rev = finalAttrs.version;
+    hash = "sha256-bPgXn1Lv+EiiKEHgTVhRFhcELUnZCphaXDlrTYq6cpY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    python3
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "Kokkos_ENABLE_TESTS" true)
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  doCheck = true;
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "C++ Performance Portability Programming EcoSystem";
+    homepage = "https://github.com/kokkos/kokkos";
+    license = with licenses; [ asl20-llvm ];
+    maintainers = with maintainers; [ Madouura ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ko/konbucase/package.nix b/nixpkgs/pkgs/by-name/ko/konbucase/package.nix
new file mode 100644
index 000000000000..75876d990661
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ko/konbucase/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, vala
+, pkg-config
+, wrapGAppsHook
+, pantheon
+, gtksourceview5
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "konbucase";
+  version = "4.1.1";
+
+  src = fetchFromGitHub {
+    owner = "ryonakano";
+    repo = "konbucase";
+    rev = finalAttrs.version;
+    hash = "sha256-g3EDa9EXymi6c8dRHFZYGEAT7k8M2TXUAzZVKTnLzyk=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    pantheon.granite7
+    gtksourceview5
+  ];
+
+  postInstall = ''
+    mv $out/bin/com.github.ryonakano.konbucase $out/bin/konbucase
+    substituteInPlace $out/share/applications/com.github.ryonakano.konbucase.desktop \
+      --replace 'Exec=com.github.ryonakano.konbucase' 'Exec=${placeholder "out"}/bin/konbucase'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ryonakano/konbucase";
+    description = "A case converting app suitable for coding or typing";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ galaxy ];
+    platforms = platforms.linux;
+    mainProgram = "konbucase";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/kt/ktfmt/package.nix b/nixpkgs/pkgs/by-name/kt/ktfmt/package.nix
new file mode 100644
index 000000000000..8417d6a0d0d6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/kt/ktfmt/package.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, jre_headless, makeWrapper, maven }:
+
+maven.buildMavenPackage rec {
+  pname = "ktfmt";
+  version = "0.46";
+
+  src = fetchFromGitHub {
+    owner = "facebook";
+    repo = "ktfmt";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OIbJ+J5LX6SPv5tuAiY66v/edeM7nFPHj90GXV6zaxw=";
+  };
+
+  mvnHash = "sha256-pzMjkkdkbVqVxZPW2I0YWPl5/l6+SyNkhd6gkm9Uoyc=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    install -Dm644 core/target/ktfmt-*-jar-with-dependencies.jar $out/share/ktfmt/ktfmt.jar
+
+    makeWrapper ${jre_headless}/bin/java $out/bin/ktfmt \
+      --add-flags "-jar $out/share/ktfmt/ktfmt.jar"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions.";
+    homepage = "https://github.com/facebook/ktfmt";
+    license = licenses.apsl20;
+    mainProgram = "ktfmt";
+    maintainers = with maintainers; [ ghostbuster91 ];
+    inherit (jre_headless.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix b/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix
new file mode 100644
index 000000000000..c0ce31abb926
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub, bash }:
+
+buildGoModule rec {
+  pname = "kubectl-neat";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "itaysk";
+    repo = "kubectl-neat";
+    rev = "v${version}";
+    hash = "sha256-j8v0zJDBqHzmLamIZPW9UvMe9bv/m3JUQKY+wsgMTFk=";
+  };
+
+  vendorHash = "sha256-vGXoYR0DT9V1BD/FN/4szOal0clsLlqReTFkAd2beMw=";
+
+  postBuild = ''
+    # Replace path to bash in a script
+    # Without this change, there's a problem when running tests
+    sed 's,#!/bin/bash,#!${bash}/bin/bash,' -i test/kubectl-stub
+  '';
+
+  meta = with lib; {
+    description = "Clean up Kubernetes yaml and json output to make it readable";
+    homepage = "https://github.com/itaysk/kubectl-neat";
+    changelog = "https://github.com/itaysk/kubectl-neat/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.koralowiec ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/la/labwc/package.nix b/nixpkgs/pkgs/by-name/la/labwc/package.nix
new file mode 100644
index 000000000000..3aca61e97da3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/labwc/package.nix
@@ -0,0 +1,81 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cairo
+, gettext
+, glib
+, libdrm
+, libinput
+, libpng
+, librsvg
+, libxcb
+, libxkbcommon
+, libxml2
+, meson
+, ninja
+, pango
+, pkg-config
+, scdoc
+, wayland
+, wayland-protocols
+, wayland-scanner
+, wlroots
+, xcbutilwm
+, xwayland
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "labwc";
+  version = "0.6.5";
+
+  src = fetchFromGitHub {
+    owner = "labwc";
+    repo = "labwc";
+    rev = finalAttrs.version;
+    hash = "sha256-nQLxE2Q4GiLUjkag/yqctzmkKKWFw1XNFjotE8MMgBA=";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    meson
+    ninja
+    pkg-config
+    scdoc
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    cairo
+    glib
+    libdrm
+    libinput
+    libpng
+    librsvg
+    libxcb
+    libxkbcommon
+    libxml2
+    pango
+    wayland
+    wayland-protocols
+    wlroots
+    xcbutilwm
+    xwayland
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  mesonFlags = [
+    (lib.mesonEnable "xwayland" true)
+  ];
+
+  meta = {
+    homepage = "https://github.com/labwc/labwc";
+    description = "A Wayland stacking compositor, inspired by Openbox";
+    changelog = "https://raw.githubusercontent.com/labwc/labwc/${finalAttrs.version}/NEWS.md";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (wayland.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/expose-password-hashing.patch b/nixpkgs/pkgs/by-name/la/lanraragi/expose-password-hashing.patch
new file mode 100644
index 000000000000..1f6941f55ff4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/expose-password-hashing.patch
@@ -0,0 +1,36 @@
+diff --git a/lib/LANraragi/Controller/Config.pm b/lib/LANraragi/Controller/Config.pm
+index 2cd2c999..0bd8ab6e 100644
+--- a/lib/LANraragi/Controller/Config.pm
++++ b/lib/LANraragi/Controller/Config.pm
+@@ -50,6 +50,15 @@ sub index {
+     );
+ }
+ 
++sub make_password_hash {
++    my $ppr = Authen::Passphrase::BlowfishCrypt->new(
++        cost        => 8,
++        salt_random => 1,
++        passphrase  => shift,
++    );
++    return $ppr->as_rfc2307;
++}
++
+ # Save the given parameters to the Redis config
+ sub save_config {
+ 
+@@ -95,14 +104,7 @@ sub save_config {
+         my $password = $self->req->param('newpassword');
+ 
+         if ( $password ne "" ) {
+-            my $ppr = Authen::Passphrase::BlowfishCrypt->new(
+-                cost        => 8,
+-                salt_random => 1,
+-                passphrase  => $password,
+-            );
+-
+-            my $pass_hashed = $ppr->as_rfc2307;
+-            $confhash{password} = $pass_hashed;
++            $confhash{password} = make_password_hash($password);
+         }
+     }
+ 
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/fix-minion-redis-password.patch b/nixpkgs/pkgs/by-name/la/lanraragi/fix-minion-redis-password.patch
new file mode 100644
index 000000000000..eb6b88f68f7f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/fix-minion-redis-password.patch
@@ -0,0 +1,34 @@
+diff --git a/lib/LANraragi.pm b/lib/LANraragi.pm
+index e6b833c4..d677030b 100644
+--- a/lib/LANraragi.pm
++++ b/lib/LANraragi.pm
+@@ -144,8 +144,13 @@ sub startup {
+     shutdown_from_pid( get_temp . "/minion.pid" );
+ 
+     my $miniondb = $self->LRR_CONF->get_redisad . "/" . $self->LRR_CONF->get_miniondb;
++    my $redispassword = $self->LRR_CONF->get_redispassword;
++
++    # If the password is non-empty, add the required delimiters
++    if ($redispassword) { $redispassword = "x:" . $redispassword . "@"; }
++
+     say "Minion will use the Redis database at $miniondb";
+-    $self->plugin( 'Minion' => { Redis => "redis://$miniondb" } );
++    $self->plugin( 'Minion' => { Redis => "redis://$redispassword$miniondb" } );
+     $self->LRR_LOGGER->info("Successfully connected to Minion database.");
+     $self->minion->missing_after(5);    # Clean up older workers after 5 seconds of unavailability
+ 
+diff --git a/lib/LANraragi/Model/Config.pm b/lib/LANraragi/Model/Config.pm
+index f52056d4..63e1f5d3 100644
+--- a/lib/LANraragi/Model/Config.pm
++++ b/lib/LANraragi/Model/Config.pm
+@@ -42,8 +42,8 @@ sub get_minion {
+     my $miniondb = get_redisad . "/" . get_miniondb;
+     my $password = get_redispassword;
+ 
+-    # If the password is non-empty, add the required @
+-    if ($password) { $password = $password . "@"; }
++    # If the password is non-empty, add the required delimiters
++    if ($password) { $password = "x:" . $password . "@"; }
+ 
+     return Minion->new( Redis => "redis://$password$miniondb" );
+ }
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/fix-paths.patch b/nixpkgs/pkgs/by-name/la/lanraragi/fix-paths.patch
new file mode 100644
index 000000000000..f545bd4759f7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/fix-paths.patch
@@ -0,0 +1,100 @@
+diff --git a/lib/LANraragi.pm b/lib/LANraragi.pm
+index e6b833c4..4b90e4c5 100644
+--- a/lib/LANraragi.pm
++++ b/lib/LANraragi.pm
+@@ -21,6 +21,8 @@ use LANraragi::Utils::Minion;
+ use LANraragi::Model::Search;
+ use LANraragi::Model::Config;
+ 
++use FindBin;
++
+ # This method will run once at server start
+ sub startup {
+     my $self = shift;
+@@ -30,7 +32,7 @@ sub startup {
+     say "キタ━━━━━━(゚∀゚)━━━━━━!!!!!";
+ 
+     # Load package.json to get version/vername/description
+-    my $packagejson = decode_json( Mojo::File->new('package.json')->slurp );
++    my $packagejson = decode_json( Mojo::File->new("$FindBin::Bin/../package.json")->slurp );
+ 
+     my $version = $packagejson->{version};
+     my $vername = $packagejson->{version_name};
+diff --git a/lib/LANraragi/Model/Archive.pm b/lib/LANraragi/Model/Archive.pm
+index 73e824dd..8bcea29c 100644
+--- a/lib/LANraragi/Model/Archive.pm
++++ b/lib/LANraragi/Model/Archive.pm
+@@ -13,6 +13,7 @@ use Time::HiRes qw(usleep);
+ use File::Basename;
+ use File::Copy "cp";
+ use File::Path qw(make_path);
++use FindBin;
+ 
+ use LANraragi::Utils::Generic qw(remove_spaces remove_newlines render_api_response);
+ use LANraragi::Utils::TempFolder qw(get_temp);
+@@ -126,7 +127,7 @@ sub serve_thumbnail {
+         } else {
+ 
+             # If the thumbnail doesn't exist, serve the default thumbnail.
+-            $self->render_file( filepath => "./public/img/noThumb.png" );
++            $self->render_file( filepath => "$FindBin::Bin/../public/img/noThumb.png" );
+         }
+         return;
+ 
+diff --git a/lib/LANraragi/Utils/Generic.pm b/lib/LANraragi/Utils/Generic.pm
+index 14736893..4352f023 100644
+--- a/lib/LANraragi/Utils/Generic.pm
++++ b/lib/LANraragi/Utils/Generic.pm
+@@ -17,6 +17,8 @@ use Sys::CpuAffinity;
+ use LANraragi::Utils::TempFolder qw(get_temp);
+ use LANraragi::Utils::Logging qw(get_logger);
+ 
++use FindBin;
++
+ # Generic Utility Functions.
+ use Exporter 'import';
+ our @EXPORT_OK =
+@@ -161,7 +163,7 @@ sub start_shinobu {
+     my $mojo = shift;
+ 
+     my $proc = Proc::Simple->new();
+-    $proc->start( $^X, "./lib/Shinobu.pm" );
++    $proc->start( $^X, "$FindBin::Bin/../lib/Shinobu.pm" );
+     $proc->kill_on_destroy(0);
+ 
+     $mojo->LRR_LOGGER->debug( "Shinobu Worker new PID is " . $proc->pid );
+@@ -201,7 +203,7 @@ sub get_css_list {
+ 
+     #Get all the available CSS sheets.
+     my @css;
+-    opendir( my $dir, "./public/themes" ) or die $!;
++    opendir( my $dir, "$FindBin::Bin/../public/themes" ) or die $!;
+     while ( my $file = readdir($dir) ) {
+         if ( $file =~ /.+\.css/ ) { push( @css, $file ); }
+     }
+diff --git a/lib/LANraragi/Utils/Logging.pm b/lib/LANraragi/Utils/Logging.pm
+index ee29c507..6bdfc1bd 100644
+--- a/lib/LANraragi/Utils/Logging.pm
++++ b/lib/LANraragi/Utils/Logging.pm
+@@ -18,7 +18,7 @@ our @EXPORT_OK = qw(get_logger get_plugin_logger get_logdir get_lines_from_file)
+ # Get the Log folder.
+ sub get_logdir {
+ 
+-    my $log_folder = "$FindBin::Bin/../log";
++    my $log_folder = "./log";
+ 
+     # Folder location can be overriden by LRR_LOG_DIRECTORY
+     if ( $ENV{LRR_LOG_DIRECTORY} ) {
+diff --git a/lib/LANraragi/Utils/TempFolder.pm b/lib/LANraragi/Utils/TempFolder.pm
+index 792b1c1b..f0eb341b 100644
+--- a/lib/LANraragi/Utils/TempFolder.pm
++++ b/lib/LANraragi/Utils/TempFolder.pm
+@@ -20,7 +20,7 @@ our @EXPORT_OK = qw(get_temp get_tempsize clean_temp_full clean_temp_partial);
+ #Get the current tempfolder.
+ #This can be called from any process safely as it uses FindBin.
+ sub get_temp {
+-    my $temp_folder = "$FindBin::Bin/../public/temp";
++    my $temp_folder = "./public/temp";
+ 
+     # Folder location can be overriden by LRR_TEMP_DIRECTORY
+     if ( $ENV{LRR_TEMP_DIRECTORY} ) {
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/install.patch b/nixpkgs/pkgs/by-name/la/lanraragi/install.patch
new file mode 100644
index 000000000000..9d260f5a494f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/install.patch
@@ -0,0 +1,63 @@
+diff --git a/tools/cpanfile b/tools/cpanfile
+index 359c61fe..ca3b7ec7 100755
+--- a/tools/cpanfile
++++ b/tools/cpanfile
+@@ -20,7 +20,7 @@ requires 'Sort::Naturally',     1.03;
+ requires 'Authen::Passphrase',  0.008;
+ requires 'File::ReadBackwards', 1.05;
+ requires 'URI::Escape',         1.74;
+-requires 'URI',                 5.09;
++requires 'URI',                 5.05;
+ 
+ # Used by Installer
+ requires 'IPC::Cmd', 1.02;
+diff --git a/tools/install.pl b/tools/install.pl
+index 0cbb847d..1bd61fa0 100755
+--- a/tools/install.pl
++++ b/tools/install.pl
+@@ -91,32 +91,6 @@ if ( $ENV{HOMEBREW_FORMULA_PREFIX} ) {
+     $cpanopt = " -l " . $ENV{HOMEBREW_FORMULA_PREFIX} . "/libexec";
+ }
+ 
+-#Load IPC::Cmd
+-install_package( "IPC::Cmd",         $cpanopt );
+-install_package( "Config::AutoConf", $cpanopt );
+-IPC::Cmd->import('can_run');
+-require Config::AutoConf;
+-
+-say("\r\nWill now check if all LRR software dependencies are met. \r\n");
+-
+-#Check for Redis
+-say("Checking for Redis...");
+-can_run('redis-server')
+-  or die 'NOT FOUND! Please install a Redis server before proceeding.';
+-say("OK!");
+-
+-#Check for GhostScript
+-say("Checking for GhostScript...");
+-can_run('gs')
+-  or warn 'NOT FOUND! PDF support will not work properly. Please install the "gs" tool.';
+-say("OK!");
+-
+-#Check for libarchive
+-say("Checking for libarchive...");
+-Config::AutoConf->new()->check_header("archive.h")
+-  or die 'NOT FOUND! Please install libarchive and ensure its headers are present.';
+-say("OK!");
+-
+ #Check for PerlMagick
+ say("Checking for ImageMagick/PerlMagick...");
+ my $imgk;
+@@ -154,12 +128,6 @@ if ( $back || $full ) {
+ #Clientside Dependencies with Provisioning
+ if ( $front || $full ) {
+ 
+-    say("\r\nObtaining remote Web dependencies...\r\n");
+-
+-    if ( system("npm install") != 0 ) {
+-        die "Something went wrong while obtaining node modules - Bailing out.";
+-    }
+-
+     say("\r\nProvisioning...\r\n");
+ 
+     #Load File::Copy
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/package.nix b/nixpkgs/pkgs/by-name/la/lanraragi/package.nix
new file mode 100644
index 000000000000..74ec38eeae23
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/package.nix
@@ -0,0 +1,130 @@
+{ lib
+, stdenv
+, buildNpmPackage
+, fetchFromGitHub
+, fetchpatch
+, makeBinaryWrapper
+, perl
+, ghostscript
+, nixosTests
+}:
+
+let
+  perlEnv = perl.withPackages (_: cpanDeps);
+
+  cpanDeps = with perl.pkgs; [
+    ImageMagick
+    locallib
+    Redis
+    Encode
+    ArchiveLibarchiveExtract
+    ArchiveLibarchivePeek
+    NetDNSNative
+    SortNaturally
+    AuthenPassphrase
+    FileReadBackwards
+    URI
+    LogfileRotate
+    Mojolicious
+    MojoliciousPluginTemplateToolkit
+    MojoliciousPluginRenderFile
+    MojoliciousPluginStatus
+    IOSocketSSL
+    CpanelJSONXS
+    Minion
+    MinionBackendRedis
+    ProcSimple
+    ParallelLoops
+    SysCpuAffinity
+    FileChangeNotify
+    ModulePluggable
+    TimeLocal
+  ] ++ lib.optional stdenv.isLinux LinuxInotify2;
+in
+buildNpmPackage rec {
+  pname = "lanraragi";
+  version = "0.8.90";
+
+  src = fetchFromGitHub {
+    owner = "Difegue";
+    repo = "LANraragi";
+    rev = "v.${version}";
+    hash = "sha256-ljnREUGCKvUJvcQ+aJ6XqiMTkVmfjt/0oC47w3PCj/k=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "add-package-lock-json.patch"; # Can be removed when updating to 0.9.0
+      url = "https://github.com/Difegue/LANraragi/commit/c5cd8641795bf7e40deef4ae955ea848dde44050.patch";
+      hash = "sha256-XKxRzeugkIe6N4XRN6+O1wEZpxo6OzU0OaG0ywKFv38=";
+    })
+    ./install.patch
+    ./fix-paths.patch
+    ./expose-password-hashing.patch
+    ./fix-minion-redis-password.patch # Should be upstreamed
+  ];
+
+  npmFlags = [ "--legacy-peer-deps" ];
+
+  npmDepsHash = "sha256-UQsChPU5b4+r5Kv6P/3rJCGUzssiUNSKo3w4axNyJew=";
+
+  nativeBuildInputs = [
+    perl
+    makeBinaryWrapper
+    perl.pkgs.Appcpanminus
+  ] ++ cpanDeps;
+
+  nativeCheckInputs = with perl.pkgs; [
+    TestMockObject
+    TestTrap
+    TestDeep
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    perl ./tools/install.pl install-full
+    rm -r node_modules public/js/vendor/*.map public/css/vendor/*.map
+
+    runHook postBuild
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+
+    rm tests/plugins.t # Uses network
+    prove -r -l -v tests
+
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/lanraragi
+    cp -r lib public script templates package.json $out/share/lanraragi
+
+    makeWrapper ${perlEnv}/bin/perl $out/bin/lanraragi \
+      --prefix PATH : ${lib.makeBinPath [ ghostscript ]} \
+      --add-flags "$out/share/lanraragi/script/launcher.pl -f $out/share/lanraragi/script/lanraragi"
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    inherit perlEnv;
+    tests = { inherit (nixosTests) lanraragi; };
+  };
+
+  meta = {
+    changelog = "https://github.com/Difegue/LANraragi/releases/tag/${src.rev}";
+    description = "Web application for archival and reading of manga/doujinshi";
+    homepage = "https://github.com/Difegue/LANraragi";
+    license = lib.licenses.mit;
+    mainProgram = "lanraragi";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/le/lemminx/package.nix b/nixpkgs/pkgs/by-name/le/lemminx/package.nix
new file mode 100644
index 000000000000..11fe3f070bba
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/le/lemminx/package.nix
@@ -0,0 +1,105 @@
+{ lib
+, fetchFromGitHub
+, makeWrapper
+, jre
+, maven
+, writeScript
+, lemminx
+}:
+
+maven.buildMavenPackage rec {
+  pname = "lemminx";
+  version = "0.27.0";
+
+  src = fetchFromGitHub {
+    owner = "eclipse";
+    repo = "lemminx";
+    rev = version;
+    hash = "sha256-VWYTkYlPziNRyxHdvIWVuDlABpKdzhC/F6BUBj/opks=";
+    # Lemminx reads this git information at runtime from a git.properties
+    # file on the classpath
+    leaveDotGit = true;
+    postFetch = ''
+      cat > $out/org.eclipse.lemminx/src/main/resources/git.properties << EOF
+      git.build.version=${version}
+      git.commit.id.abbrev=$(git -C $out rev-parse --short HEAD)
+      git.commit.message.short=$(git -C $out log -1 --pretty=format:%s)
+      git.branch=main
+      EOF
+      rm -rf $out/.git
+    '';
+  };
+
+  manualMvnArtifacts = [
+    "org.apache.maven.surefire:surefire-junit-platform:3.1.2"
+    "org.junit.platform:junit-platform-launcher:1.10.0"
+  ];
+
+  mvnHash = "sha256-sIiCp1AorVQXt13Tq0vw9jGioG3zcQMqqKS/Q0Tf4MQ=";
+
+  buildOffline = true;
+
+  # disable gitcommitid plugin which needs a .git folder which we
+  # don't have
+  mvnDepsParameters = "-Dmaven.gitcommitid.skip=true";
+
+  # disable failing tests which either need internet access or are flaky
+  mvnParameters = lib.escapeShellArgs [
+    "-Dmaven.gitcommitid.skip=true"
+    "-Dtest=!XMLValidationCommandTest,
+    !XMLValidationExternalResourcesBasedOnDTDTest,
+    !XMLSchemaPublishDiagnosticsTest,
+    !PlatformTest,
+    !XMLValidationExternalResourcesBasedOnXSDTest,
+    !XMLExternalTest,
+    !XMLSchemaCompletionExtensionsTest,
+    !XMLSchemaDiagnosticsTest,
+    !MissingChildElementCodeActionTest,
+    !XSDValidationExternalResourcesTest,
+    !DocumentLifecycleParticipantTest,
+    !DTDValidationExternalResourcesTest"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share
+    install -Dm644 org.eclipse.lemminx/target/org.eclipse.lemminx-uber.jar \
+      $out/share
+
+    makeWrapper ${jre}/bin/java $out/bin/lemminx \
+      --add-flags "-jar $out/share/org.eclipse.lemminx-uber.jar"
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru.updateScript = writeScript "update-lemminx" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl pcre common-updater-scripts jq gnused
+    set -eu -o pipefail
+
+    LATEST_TAG=$(curl https://api.github.com/repos/eclipse/lemminx/tags | \
+      jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
+      map(tonumber)) | reverse | .[0].name')
+    update-source-version lemminx "$LATEST_TAG"
+    sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${lemminx}
+
+    echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
+    nix-build -A lemminx.fetchedMavenDeps 2> lemminx-stderr.log || true
+
+    NEW_MVN_HASH=$(cat lemminx-stderr.log | grep "got:" | awk '{print ''$2}')
+    rm lemminx-stderr.log
+    # escaping double quotes looks ugly but is needed for variable substitution
+    # use # instead of / as separator because the sha256 might contain the / character
+    sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${lemminx}
+  '';
+
+  meta = with lib; {
+    description = "XML Language Server";
+    homepage = "https://github.com/eclipse/lemminx";
+    license = licenses.epl20;
+    maintainers = with maintainers; [ tricktron ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/le/less/package.nix b/nixpkgs/pkgs/by-name/le/less/package.nix
new file mode 100644
index 000000000000..1efce2bddefc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/le/less/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, pcre2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "less";
+  version = "643";
+
+  # Only tarballs on the website are valid releases,
+  # other versions, e.g. git tags are considered snapshots.
+  src = fetchurl {
+    url = "https://www.greenwoodsoftware.com/less/less-${finalAttrs.version}.tar.gz";
+    hash = "sha256-KRG1QyyDb6CEyKLmj2zWMSNywCalj6qpiGJzHItgUug=";
+  };
+
+  buildInputs = [
+    ncurses
+    pcre2
+  ];
+
+  outputs = [ "out" "man" ];
+
+  configureFlags = [
+    # Look for 'sysless' in /etc.
+    "--sysconfdir=/etc"
+    "--with-regex=pcre2"
+  ];
+
+  meta = {
+    homepage = "https://www.greenwoodsoftware.com/less/";
+    description = "A more advanced file pager than 'more'";
+    changelog = "https://www.greenwoodsoftware.com/less/news.${finalAttrs.version}.html";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "less";
+    maintainers = with lib.maintainers; [ eelco dtzWill ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix b/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix
new file mode 100644
index 000000000000..cfb02f70d6f3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, cups
+, fetchurl
+, patchPpdFilesHook
+, autoPatchelfHook
+, dpkg
+, perl
+, avahi
+}:
+
+stdenv.mkDerivation {
+  pname = "lexmark-aex";
+  version = "1.0";
+
+  dontPatchELF = true;
+  dontStrip = true;
+
+  src = fetchurl {
+    url = "https://downloads.lexmark.com/downloads/drivers/Lexmark-AEX-PPD-Files-1.0-01242019.amd64.deb";
+    hash = "sha256-igrJEeFLArGbncOwk/WttnWfPjOokD0/IzpJ4VSOtHk=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    patchPpdFilesHook
+    dpkg
+  ];
+
+  buildInputs = [
+    # Needed for autoPatchelfHook.
+    avahi
+    cups
+    # Needed for patchShebangs.
+    perl
+  ];
+
+  # Needed for autoPatchelfHook.
+  runtimeDependencies = [ (lib.getLib cups) ];
+
+  ppdFileCommands = [ "CommandFileFilterG2" "rerouteprintoption" ];
+
+  installPhase = let
+    libdir =
+      if stdenv.system == "x86_64-linux"    then "lib64"
+      else if stdenv.system == "i686_linux" then "lib"
+      else throw "other platforms than i686_linux and x86_64-linux are not yet supported";
+  in ''
+    runHook preInstall
+
+    prefix=usr/local/Lexmark/ppd/Lexmark-AEX-PPD-Files/GlobalPPD_1.4
+
+    # Install raster image filter.
+    install -Dm755 "$prefix/rerouteprintoption" "$out/lib/cups/filter/rerouteprintoption"
+    patchShebangs "$out/lib/cups/filter/rerouteprintoption"
+
+    # Install additional binary filters.
+    for i in CommandFileFilterG2 LexHBPFilter; do
+      install -Dm755 "$prefix/${libdir}/$i" "$out/lib/cups/filter/$i"
+    done
+
+    # Install PPD.
+    install -Dm 0644 -t "$out/share/cups/model/Lexmark" "$prefix"/*.ppd
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CUPS drivers for Lexmark B2200 and MB2200 Series printers";
+    homepage = "https://support.lexmark.com/en_xm/drivers-downloads.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = [ maintainers.tobim ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/liana/Cargo.lock b/nixpkgs/pkgs/by-name/li/liana/Cargo.lock
new file mode 100644
index 000000000000..9fc3c2e592da
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/liana/Cargo.lock
@@ -0,0 +1,4998 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "CoreFoundation-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0e9889e6db118d49d88d84728d0e964d973a5680befb5f85f55141beea5c20b"
+dependencies = [
+ "libc",
+ "mach 0.1.2",
+]
+
+[[package]]
+name = "IOKit-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99696c398cbaf669d2368076bdb3d627fb0ce51a26899d7c61228c5c0af3bf4a"
+dependencies = [
+ "CoreFoundation-sys",
+ "libc",
+ "mach 0.1.2",
+]
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
+[[package]]
+name = "ab_glyph"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
+
+[[package]]
+name = "addr2line"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "aliasable"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+
+[[package]]
+name = "ash"
+version = "0.37.2+1.3.238"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28bf19c1f0a470be5fbf7522a308a05df06610252c5bcf5143e1b23f629a9a03"
+dependencies = [
+ "libloading",
+]
+
+[[package]]
+name = "async-hwi"
+version = "0.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29e54987aab24867f5259b95d5c7f3d46bf69ad8ddfb01dde24a88c00a9e93d"
+dependencies = [
+ "async-trait",
+ "base64 0.13.1",
+ "bitcoin",
+ "futures",
+ "hidapi",
+ "ledger-apdu",
+ "ledger-transport-hid",
+ "ledger_bitcoin_client",
+ "regex",
+ "serialport",
+ "tokio",
+ "tokio-serial",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
+name = "base64-compat"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a8d4d2746f89841e49230dd26917df1876050f95abafafbe34f47cb534b88d7"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "bech32"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445"
+
+[[package]]
+name = "bip39"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f"
+dependencies = [
+ "bitcoin_hashes 0.11.0",
+ "serde",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bit_field"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
+
+[[package]]
+name = "bitcoin"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b36f4c848f6bd9ff208128f08751135846cc23ae57d66ab10a22efff1c675f3c"
+dependencies = [
+ "base64 0.13.1",
+ "bech32",
+ "bitcoin-private",
+ "bitcoin_hashes 0.12.0",
+ "core2",
+ "hex_lit",
+ "secp256k1",
+ "serde",
+]
+
+[[package]]
+name = "bitcoin-private"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57"
+
+[[package]]
+name = "bitcoin_hashes"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4"
+
+[[package]]
+name = "bitcoin_hashes"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501"
+dependencies = [
+ "bitcoin-private",
+ "core2",
+ "serde",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "bytemuck"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "bzip2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
+dependencies = [
+ "bzip2-sys",
+ "libc",
+]
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "calloop"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192"
+dependencies = [
+ "log",
+ "nix 0.25.1",
+ "slotmap",
+ "thiserror",
+ "vec_map",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cgl"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "checked_int_cast"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919"
+
+[[package]]
+name = "chrono"
+version = "0.4.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+dependencies = [
+ "iana-time-zone",
+ "js-sys",
+ "num-integer",
+ "num-traits",
+ "time",
+ "wasm-bindgen",
+ "winapi",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
+[[package]]
+name = "clipboard_macos"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95"
+dependencies = [
+ "objc",
+ "objc-foundation",
+ "objc_id",
+]
+
+[[package]]
+name = "clipboard_wayland"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
+dependencies = [
+ "smithay-clipboard",
+]
+
+[[package]]
+name = "clipboard_x11"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921"
+dependencies = [
+ "thiserror",
+ "x11rb",
+]
+
+[[package]]
+name = "cmake"
+version = "0.1.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+dependencies = [
+ "bitflags",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "com-rs"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+
+[[package]]
+name = "const-random"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
+dependencies = [
+ "const-random-macro",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "proc-macro-hack",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "const_panic"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58baae561b85ca19b3122a9ddd35c8ec40c3bcd14fe89921824eae73f7baffbf"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-text"
+version = "19.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+dependencies = [
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core2"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "239fa3ae9b63c2dc74bd3fa852d4792b8b305ae64eeede946265b6af62f1fff3"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset 0.8.0",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossfont"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21fd3add36ea31aba1520aa5288714dd63be506106753226d0eb387a93bc9c45"
+dependencies = [
+ "cocoa",
+ "core-foundation",
+ "core-foundation-sys",
+ "core-graphics",
+ "core-text",
+ "dwrote",
+ "foreign-types 0.5.0",
+ "freetype-rs",
+ "libc",
+ "log",
+ "objc",
+ "once_cell",
+ "pkg-config",
+ "servo-fontconfig",
+ "winapi",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "cty"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
+
+[[package]]
+name = "cxx"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "d3d12"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da"
+dependencies = [
+ "bitflags",
+ "libloading",
+ "winapi",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "data-url"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
+
+[[package]]
+name = "dirs"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dece029acd3353e3a58ac2e3eb3c8d6c35827a892edc6cc4138ef9c33df46ecd"
+dependencies = [
+ "dirs-sys 0.4.0",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04414300db88f70d74c5ff54e50f9e1d1737d9a5b90f53fcf2e95ca2a9ab554b"
+dependencies = [
+ "libc",
+ "redox_users",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dlib"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+dependencies = [
+ "libloading",
+]
+
+[[package]]
+name = "dlv-list"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d529fd73d344663edfd598ccb3f344e46034db51ebd103518eae34338248ad73"
+dependencies = [
+ "const-random",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "dwrote"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "serde",
+ "serde_derive",
+ "winapi",
+ "wio",
+]
+
+[[package]]
+name = "either"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+
+[[package]]
+name = "encase"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9"
+dependencies = [
+ "const_panic",
+ "encase_derive",
+ "glam",
+ "thiserror",
+]
+
+[[package]]
+name = "encase_derive"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22"
+dependencies = [
+ "encase_derive_impl",
+]
+
+[[package]]
+name = "encase_derive_impl"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
+[[package]]
+name = "euclid"
+version = "0.22.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "expat-sys"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
+dependencies = [
+ "cmake",
+ "pkg-config",
+]
+
+[[package]]
+name = "exr"
+version = "1.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4"
+dependencies = [
+ "bit_field",
+ "flume",
+ "half",
+ "lebe",
+ "miniz_oxide",
+ "rayon-core",
+ "smallvec",
+ "zune-inflate",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fallible-streaming-iterator"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+
+[[package]]
+name = "fern"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "find-crate"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+
+[[package]]
+name = "float_next_after"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fc612c5837986b7104a87a0df74a5460931f1c5274be12f8d0f40aa2f30d632"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "flume"
+version = "0.10.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "nanorand",
+ "pin-project",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "fontconfig-parser"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ab2e12762761366dcb876ab8b6e0cfa4797ddcd890575919f008b5ba655672a"
+dependencies = [
+ "roxmltree",
+]
+
+[[package]]
+name = "fontdb"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff20bef7942a72af07104346154a70a70b089c572e454b41bef6eb6cb10e9c06"
+dependencies = [
+ "fontconfig-parser",
+ "log",
+ "memmap2",
+ "ttf-parser",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "freetype-rs"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb"
+dependencies = [
+ "bitflags",
+ "freetype-sys",
+ "libc",
+]
+
+[[package]]
+name = "freetype-sys"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
+dependencies = [
+ "cmake",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+ "num_cpus",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gethostname"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gif"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gimli"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
+
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
+name = "glam"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815"
+
+[[package]]
+name = "glow"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "glow"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "glow_glyph"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f4e62c64947b9a24fe20e2bba9ad819ecb506ef5c8df7ffc4737464c6df9510"
+dependencies = [
+ "bytemuck",
+ "glow 0.11.2",
+ "glyph_brush",
+ "log",
+]
+
+[[package]]
+name = "glutin"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "444c9ad294fdcaf20ccf6726b78f380b5450275540c9b68ab62f49726ad1c713"
+dependencies = [
+ "cgl",
+ "cocoa",
+ "core-foundation",
+ "glutin_egl_sys",
+ "glutin_gles2_sys",
+ "glutin_glx_sys",
+ "glutin_wgl_sys",
+ "libloading",
+ "log",
+ "objc",
+ "once_cell",
+ "osmesa-sys",
+ "parking_lot 0.12.1",
+ "raw-window-handle 0.5.2",
+ "wayland-client",
+ "wayland-egl",
+ "winapi",
+ "winit",
+]
+
+[[package]]
+name = "glutin_egl_sys"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68900f84b471f31ea1d1355567eb865a2cf446294f06cef8d653ed7bcf5f013d"
+dependencies = [
+ "gl_generator",
+ "winapi",
+]
+
+[[package]]
+name = "glutin_gles2_sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103"
+dependencies = [
+ "gl_generator",
+ "objc",
+]
+
+[[package]]
+name = "glutin_glx_sys"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93d0575865098580c5b3a423188cd959419912ea60b1e48e8b3b526f6d02468"
+dependencies = [
+ "gl_generator",
+ "x11-dl",
+]
+
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696"
+dependencies = [
+ "gl_generator",
+]
+
+[[package]]
+name = "glyph_brush"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4edefd123f28a0b1d41ec4a489c2b43020b369180800977801611084f342978d"
+dependencies = [
+ "glyph_brush_draw_cache",
+ "glyph_brush_layout",
+ "ordered-float",
+ "rustc-hash",
+ "twox-hash",
+]
+
+[[package]]
+name = "glyph_brush_draw_cache"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6010675390f6889e09a21e2c8b575b3ee25667ea8237a8d59423f73cb8c28610"
+dependencies = [
+ "ab_glyph",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "linked-hash-map",
+ "rayon",
+ "rustc-hash",
+]
+
+[[package]]
+name = "glyph_brush_layout"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38"
+dependencies = [
+ "ab_glyph",
+ "approx",
+ "xi-unicode",
+]
+
+[[package]]
+name = "gpu-alloc"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d"
+dependencies = [
+ "bitflags",
+ "gpu-alloc-types",
+]
+
+[[package]]
+name = "gpu-alloc-types"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "gpu-allocator"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8"
+dependencies = [
+ "backtrace",
+ "log",
+ "thiserror",
+ "winapi",
+ "windows 0.44.0",
+]
+
+[[package]]
+name = "gpu-descriptor"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
+dependencies = [
+ "bitflags",
+ "gpu-descriptor-types",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "gpu-descriptor-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "guillotiere"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
+dependencies = [
+ "euclid",
+ "svg_fmt",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "half"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+
+[[package]]
+name = "hashlink"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
+dependencies = [
+ "hashbrown 0.11.2",
+]
+
+[[package]]
+name = "hassle-rs"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90601c6189668c7345fc53842cb3f3a3d872203d523be1b3cb44a36a3e62fb85"
+dependencies = [
+ "bitflags",
+ "com-rs",
+ "libc",
+ "libloading",
+ "thiserror",
+ "widestring",
+ "winapi",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hex_lit"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "hidapi"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "798154e4b6570af74899d71155fb0072d5b17e6aa12f39c8ef22c60fb8ec99e7"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "winapi",
+]
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+dependencies = [
+ "cxx",
+ "cxx-build",
+]
+
+[[package]]
+name = "iced"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbddf356d01e9d41cd394a9d04d62bfd89650a30f12fda5839cabb8c4591c88"
+dependencies = [
+ "iced_core",
+ "iced_futures",
+ "iced_glow",
+ "iced_glutin",
+ "iced_graphics",
+ "iced_native",
+ "iced_wgpu",
+ "iced_winit",
+ "image",
+ "thiserror",
+]
+
+[[package]]
+name = "iced_core"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11e1942e28dedee756cc27e67e7a838cdc1e59fb6bf9627ec9f709ab3b135782"
+dependencies = [
+ "bitflags",
+ "instant",
+ "palette",
+]
+
+[[package]]
+name = "iced_futures"
+version = "0.6.0"
+source = "git+https://github.com/edouardparis/iced?branch=fix-futures-recipe#2d8318b13bdf8aaf31bc6d5a72b22313ed2d10cf"
+dependencies = [
+ "futures",
+ "log",
+ "tokio",
+ "wasm-bindgen-futures",
+ "wasm-timer",
+]
+
+[[package]]
+name = "iced_glow"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc5b081015f5c75777c96ad75e2288916e7d444c97396d6d136517877ef9129"
+dependencies = [
+ "bytemuck",
+ "euclid",
+ "glow 0.11.2",
+ "glow_glyph",
+ "glyph_brush",
+ "iced_graphics",
+ "iced_native",
+ "log",
+]
+
+[[package]]
+name = "iced_glutin"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c427ca018d29508512581d832fbaa7b6c8ec34c39d438f35f59e363a6419953"
+dependencies = [
+ "glutin",
+ "iced_graphics",
+ "iced_native",
+ "iced_winit",
+ "log",
+]
+
+[[package]]
+name = "iced_graphics"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "338a6aff7db906537074ad0fe8b720cfdb9512cdfea43c628c76bd1cf50fdcc0"
+dependencies = [
+ "bitflags",
+ "bytemuck",
+ "glam",
+ "iced_native",
+ "iced_style",
+ "image",
+ "kamadak-exif",
+ "log",
+ "lyon",
+ "qrcode",
+ "raw-window-handle 0.5.2",
+ "resvg",
+ "thiserror",
+]
+
+[[package]]
+name = "iced_lazy"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdf1cb6b8cd90488d3a03fbf438ad42038cb83c81a0d61f3692c51875efdb818"
+dependencies = [
+ "iced_native",
+ "ouroboros",
+]
+
+[[package]]
+name = "iced_native"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d012eb06da490fe46a695b39721c20da9643f35cf2ecb9d30618fdeb96170616"
+dependencies = [
+ "iced_core",
+ "iced_futures",
+ "iced_style",
+ "num-traits",
+ "thiserror",
+ "twox-hash",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "iced_style"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e37333dc2991201140302cd0d4cea051bd37ca3671d5008ec85df86d232ff30"
+dependencies = [
+ "iced_core",
+ "once_cell",
+ "palette",
+]
+
+[[package]]
+name = "iced_wgpu"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478803c56061f567ce5ddf223b20d11d3c118cc46bb0d0552370dc65cdc4cb9c"
+dependencies = [
+ "bitflags",
+ "bytemuck",
+ "encase",
+ "futures",
+ "glam",
+ "glyph_brush",
+ "guillotiere",
+ "iced_graphics",
+ "iced_native",
+ "log",
+ "raw-window-handle 0.5.2",
+ "wgpu",
+ "wgpu_glyph",
+]
+
+[[package]]
+name = "iced_winit"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a59ea3a85149a6a1f9e92b6c740ce90f04e5c7d848cfd05742336863fceb955"
+dependencies = [
+ "iced_futures",
+ "iced_graphics",
+ "iced_native",
+ "log",
+ "thiserror",
+ "web-sys",
+ "winapi",
+ "window_clipboard",
+ "winit",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "image"
+version = "0.24.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "exr",
+ "gif",
+ "jpeg-decoder",
+ "num-rational",
+ "num-traits",
+ "png",
+ "qoi",
+ "tiff",
+]
+
+[[package]]
+name = "imagesize"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72ad49b554c1728b1e83254a1b1565aea4161e28dabbfa171fc15fe62299caf"
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+
+[[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonrpc"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f8423b78fc94d12ef1a4a9d13c348c9a78766dda0cc18817adf0faf77e670c8"
+dependencies = [
+ "base64-compat",
+ "serde",
+ "serde_derive",
+ "serde_json",
+]
+
+[[package]]
+name = "jsonrpc"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34efde8d2422fb79ed56db1d3aea8fa5b583351d15a26770cdee2f88813dd702"
+dependencies = [
+ "base64 0.13.1",
+ "minreq",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
+name = "khronos-egl"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
+dependencies = [
+ "libc",
+ "libloading",
+ "pkg-config",
+]
+
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
+[[package]]
+name = "kurbo"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb348d766edbac91ba1eb83020d96f4f8867924d194393083c15a51f185e6a82"
+dependencies = [
+ "arrayvec 0.5.2",
+]
+
+[[package]]
+name = "kurbo"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d676038719d1c892f91e6e85121550143c75880b42f7feff6d413a078cf91fb3"
+dependencies = [
+ "arrayvec 0.7.2",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lebe"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
+
+[[package]]
+name = "ledger-apdu"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe435806c197dfeaa5efcded5e623c4b8230fd28fdf1e91e7a86e40ef2acbf90"
+dependencies = [
+ "arrayref",
+ "no-std-compat",
+ "snafu",
+]
+
+[[package]]
+name = "ledger-transport"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1117f2143d92c157197785bf57711d7b02f2cfa101e162f8ca7900fb7f976321"
+dependencies = [
+ "async-trait",
+ "ledger-apdu",
+]
+
+[[package]]
+name = "ledger-transport-hid"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45ba81a1f5f24396b37211478aff7fbcd605dd4544df8dbed07b9da3c2057aee"
+dependencies = [
+ "byteorder",
+ "cfg-if",
+ "hex",
+ "hidapi",
+ "ledger-transport",
+ "libc",
+ "log",
+ "thiserror",
+]
+
+[[package]]
+name = "ledger_bitcoin_client"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53b3850bd03537874d58c09dcdd15cfab272b3e9d3381e57843b4f9e1c9ceae7"
+dependencies = [
+ "async-trait",
+ "bitcoin",
+ "miniscript",
+]
+
+[[package]]
+name = "liana"
+version = "2.0.0"
+source = "git+https://github.com/wizardsardine/liana?branch=2.x#bb081099241b38d36942d9344668ed88fa05f993"
+dependencies = [
+ "backtrace",
+ "bip39",
+ "dirs 5.0.0",
+ "fern",
+ "getrandom",
+ "jsonrpc 0.16.0",
+ "log",
+ "miniscript",
+ "rdrand",
+ "rusqlite",
+ "serde",
+ "serde_json",
+ "toml",
+]
+
+[[package]]
+name = "liana_gui"
+version = "2.0.0"
+dependencies = [
+ "async-hwi",
+ "backtrace",
+ "base64 0.13.1",
+ "bitcoin_hashes 0.12.0",
+ "chrono",
+ "dirs 3.0.2",
+ "flate2",
+ "hex",
+ "iced",
+ "iced_lazy",
+ "iced_native",
+ "jsonrpc 0.12.1",
+ "liana",
+ "liana_ui",
+ "log",
+ "reqwest",
+ "rust-ini",
+ "serde",
+ "serde_json",
+ "tar",
+ "tokio",
+ "toml",
+ "tracing",
+ "tracing-subscriber",
+ "zip",
+]
+
+[[package]]
+name = "liana_ui"
+version = "0.1.0"
+dependencies = [
+ "bitcoin",
+ "chrono",
+ "iced",
+ "iced_lazy",
+ "iced_native",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.141"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libudev"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0"
+dependencies = [
+ "libc",
+ "libudev-sys",
+]
+
+[[package]]
+name = "libudev-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "link-cplusplus"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lyon"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f"
+dependencies = [
+ "lyon_algorithms",
+ "lyon_tessellation",
+]
+
+[[package]]
+name = "lyon_algorithms"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00a0349cd8f0270781bb93a824b63df6178e3b4a27794e7be3ce3763f5a44d6e"
+dependencies = [
+ "lyon_path",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_geom"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad"
+dependencies = [
+ "arrayvec 0.7.2",
+ "euclid",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_path"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8358c012e5651e4619cfd0b5b75c0f77866181a01b0909aab4bae14adf660"
+dependencies = [
+ "lyon_geom",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_tessellation"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d2124218d5428149f9e09520b9acc024334a607e671f032d06567b61008977c"
+dependencies = [
+ "float_next_after",
+ "lyon_path",
+ "thiserror",
+]
+
+[[package]]
+name = "mach"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fd13ee2dd61cc82833ba05ade5a30bb3d63f7ced605ef827063c63078302de9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "metal"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "log",
+ "objc",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniscript"
+version = "10.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1eb102b66b2127a872dbcc73095b7b47aeb9d92f7b03c2b2298253ffc82c7594"
+dependencies = [
+ "bitcoin",
+ "bitcoin-private",
+ "hashbrown 0.11.2",
+ "serde",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "minreq"
+version = "2.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3de406eeb24aba36ed3829532fa01649129677186b44a49debec0ec574ca7da7"
+dependencies = [
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+dependencies = [
+ "libc",
+ "log",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "mio-serial"
+version = "5.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20a4c60ca5c9c0e114b3bd66ff4aa5f9b2b175442be51ca6c4365d687a97a2ac"
+dependencies = [
+ "log",
+ "mio",
+ "nix 0.26.2",
+ "serialport",
+ "winapi",
+]
+
+[[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
+name = "naga"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5"
+dependencies = [
+ "bit-set",
+ "bitflags",
+ "codespan-reporting",
+ "hexf-parse",
+ "indexmap",
+ "log",
+ "num-traits",
+ "rustc-hash",
+ "spirv",
+ "termcolor",
+ "thiserror",
+ "unicode-xid",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "ndk"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+dependencies = [
+ "bitflags",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "raw-window-handle 0.5.2",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-glue"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f"
+dependencies = [
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-macro",
+ "ndk-sys",
+ "once_cell",
+ "parking_lot 0.12.1",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
+dependencies = [
+ "darling",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.4.1+23.1.7779620"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+dependencies = [
+ "autocfg",
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+ "static_assertions",
+]
+
+[[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "object"
+version = "0.30.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "ordered-float"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13a384337e997e6860ffbaa83708b2ef329fd8c54cb67a5f64d421e0f943254f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "ordered-multimap"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
+dependencies = [
+ "dlv-list",
+ "hashbrown 0.13.2",
+]
+
+[[package]]
+name = "osmesa-sys"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b"
+dependencies = [
+ "shared_library",
+]
+
+[[package]]
+name = "ouroboros"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f357ef82d1b4db66fbed0b8d542cbd3c22d0bf5b393b3c257b9ba4568e70c9c3"
+dependencies = [
+ "aliasable",
+ "ouroboros_macro",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "ouroboros_macro"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44a0b52c2cbaef7dffa5fec1a43274afe8bd2a644fa9fc50a9ef4ff0269b1257"
+dependencies = [
+ "Inflector",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "palette"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f9cd68f7112581033f157e56c77ac4a5538ec5836a2e39284e65bd7d7275e49"
+dependencies = [
+ "approx",
+ "num-traits",
+ "palette_derive",
+ "phf",
+]
+
+[[package]]
+name = "palette_derive"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05eedf46a8e7c27f74af0c9cfcdb004ceca158cb1b918c6f68f8d7a549b3e427"
+dependencies = [
+ "find-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core 0.8.6",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.7",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "phf"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pico-args"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+[[package]]
+name = "pin-project"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "png"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
+dependencies = [
+ "bitflags",
+ "crc32fast",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "profiling"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df"
+
+[[package]]
+name = "qoi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "qrcode"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f"
+dependencies = [
+ "checked_int_cast",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5907a1b7c277254a8b15170f6e7c97cfa60ee7872a3217663bb81151e48184bb"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-alloc"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28f55143d0548dad60bb4fbdc835a3d7ac6acc3324506450c5fdd6e42903a76"
+dependencies = [
+ "libc",
+ "raw-window-handle 0.4.3",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
+dependencies = [
+ "cty",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "rayon"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "num_cpus",
+]
+
+[[package]]
+name = "rctree"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
+
+[[package]]
+name = "rdrand"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e233b642160555c1aa1ff7a78443c6139342f411b6fa6602af2ebbfee9e166bb"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall 0.2.16",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "renderdoc-sys"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
+
+[[package]]
+name = "reqwest"
+version = "0.11.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+dependencies = [
+ "base64 0.21.0",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "resvg"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76888219c0881e22b0ceab06fddcfe83163cd81642bd60c7842387f9c968a72e"
+dependencies = [
+ "gif",
+ "jpeg-decoder",
+ "log",
+ "pico-args",
+ "png",
+ "rgb",
+ "svgfilters",
+ "svgtypes 0.10.0",
+ "tiny-skia 0.8.4",
+ "usvg",
+ "usvg-text-layout",
+]
+
+[[package]]
+name = "rgb"
+version = "0.8.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin 0.5.2",
+ "untrusted",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "rosvgtree"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdc23d1ace03d6b8153c7d16f0708cd80b61ee8e80304954803354e67e40d150"
+dependencies = [
+ "log",
+ "roxmltree",
+ "simplecss",
+ "siphasher",
+ "svgtypes 0.9.0",
+]
+
+[[package]]
+name = "roxmltree"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8"
+dependencies = [
+ "xmlparser",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85127183a999f7db96d1a976a309eebbfb6ea3b0b400ddd8340190129de6eb7a"
+dependencies = [
+ "bitflags",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "memchr",
+ "smallvec",
+]
+
+[[package]]
+name = "rust-ini"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustls"
+version = "0.21.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+dependencies = [
+ "base64 0.21.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustybuzz"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a"
+dependencies = [
+ "bitflags",
+ "bytemuck",
+ "smallvec",
+ "ttf-parser",
+ "unicode-bidi-mirroring",
+ "unicode-ccc",
+ "unicode-general-category",
+ "unicode-script",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+
+[[package]]
+name = "safe_arch"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "scratch"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
+
+[[package]]
+name = "sct"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "sctk-adwaita"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339"
+dependencies = [
+ "crossfont",
+ "log",
+ "smithay-client-toolkit",
+ "tiny-skia 0.7.0",
+]
+
+[[package]]
+name = "secp256k1"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f"
+dependencies = [
+ "bitcoin_hashes 0.12.0",
+ "secp256k1-sys",
+ "serde",
+]
+
+[[package]]
+name = "secp256k1-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.186"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f5db24220c009de9bd45e69fb2938f4b6d2df856aa9304ce377b3180f83b7c1"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.186"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad697f7e0b65af4983a4ce8f56ed5b357e8d3c36651bf6a7e13639c17b8e670"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serialport"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aab92efb5cf60ad310548bc3f16fa6b0d950019cb7ed8ff41968c3d03721cf12"
+dependencies = [
+ "CoreFoundation-sys",
+ "IOKit-sys",
+ "bitflags",
+ "cfg-if",
+ "libudev",
+ "mach 0.3.2",
+ "nix 0.24.3",
+ "regex",
+ "winapi",
+]
+
+[[package]]
+name = "servo-fontconfig"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c"
+dependencies = [
+ "libc",
+ "servo-fontconfig-sys",
+]
+
+[[package]]
+name = "servo-fontconfig-sys"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388"
+dependencies = [
+ "expat-sys",
+ "freetype-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shared_library"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11"
+dependencies = [
+ "lazy_static",
+ "libc",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+
+[[package]]
+name = "simplecss"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454"
+dependencies = [
+ "bitflags",
+ "calloop",
+ "dlib",
+ "lazy_static",
+ "log",
+ "memmap2",
+ "nix 0.24.3",
+ "pkg-config",
+ "wayland-client",
+ "wayland-cursor",
+ "wayland-protocols",
+]
+
+[[package]]
+name = "smithay-clipboard"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+dependencies = [
+ "smithay-client-toolkit",
+ "wayland-client",
+]
+
+[[package]]
+name = "snafu"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045"
+dependencies = [
+ "doc-comment",
+ "snafu-derive",
+]
+
+[[package]]
+name = "snafu-derive"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spirv"
+version = "0.2.0+1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+dependencies = [
+ "bitflags",
+ "num-traits",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "strict-num"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1"
+dependencies = [
+ "float-cmp",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "svg_fmt"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
+
+[[package]]
+name = "svgfilters"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "639abcebc15fdc2df179f37d6f5463d660c1c79cd552c12343a4600827a04bce"
+dependencies = [
+ "float-cmp",
+ "rgb",
+]
+
+[[package]]
+name = "svgtypes"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9ee29c1407a5b18ccfe5f6ac82ac11bab3b14407e09c209a6c1a32098b19734"
+dependencies = [
+ "kurbo 0.8.0",
+ "siphasher",
+]
+
+[[package]]
+name = "svgtypes"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98ffacedcdcf1da6579c907279b4f3c5492fbce99fbbf227f5ed270a589c2765"
+dependencies = [
+ "kurbo 0.9.4",
+ "siphasher",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tiff"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471"
+dependencies = [
+ "flate2",
+ "jpeg-decoder",
+ "weezl",
+]
+
+[[package]]
+name = "time"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+dependencies = [
+ "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642680569bb895b16e4b9d181c60be1ed136fa0c9c7f11d004daf053ba89bf82"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.5.2",
+ "bytemuck",
+ "cfg-if",
+ "png",
+ "safe_arch",
+ "tiny-skia-path 0.7.0",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.7.2",
+ "bytemuck",
+ "cfg-if",
+ "png",
+ "tiny-skia-path 0.8.4",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c114d32f0c2ee43d585367cb013dfaba967ab9f62b90d9af0d696e955e70fa6c"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "strict-num",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001"
+dependencies = [
+ "autocfg",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-serial"
+version = "5.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa6e2e4cf0520a99c5f87d5abb24172b5bd220de57c3181baaaa5440540c64aa"
+dependencies = [
+ "cfg-if",
+ "futures",
+ "log",
+ "mio-serial",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+
+[[package]]
+name = "toml_edit"
+version = "0.19.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "ttf-parser"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
+
+[[package]]
+name = "twox-hash"
+version = "1.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
+dependencies = [
+ "cfg-if",
+ "rand",
+ "static_assertions",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-bidi-mirroring"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
+
+[[package]]
+name = "unicode-ccc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
+
+[[package]]
+name = "unicode-general-category"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-script"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "unicode-vo"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "usvg"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b6bb4e62619d9f68aa2d8a823fea2bff302340a1f2d45c264d5b0be170832e"
+dependencies = [
+ "base64 0.21.0",
+ "data-url",
+ "flate2",
+ "imagesize",
+ "kurbo 0.9.4",
+ "log",
+ "rctree",
+ "rosvgtree",
+ "strict-num",
+]
+
+[[package]]
+name = "usvg-text-layout"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "195386e01bc35f860db024de275a76e7a31afdf975d18beb6d0e44764118b4db"
+dependencies = [
+ "fontdb",
+ "kurbo 0.9.4",
+ "log",
+ "rustybuzz",
+ "unicode-bidi",
+ "unicode-script",
+ "unicode-vo",
+ "usvg",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "wasm-timer"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot 0.11.2",
+ "pin-utils",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+dependencies = [
+ "bitflags",
+ "downcast-rs",
+ "libc",
+ "nix 0.24.3",
+ "scoped-tls",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+dependencies = [
+ "nix 0.24.3",
+ "once_cell",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-cursor"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+dependencies = [
+ "nix 0.24.3",
+ "wayland-client",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-egl"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "402de949f81a012926d821a2d659f930694257e76dd92b6e0042ceb27be4107d"
+dependencies = [
+ "wayland-client",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+dependencies = [
+ "bitflags",
+ "wayland-client",
+ "wayland-commons",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+dependencies = [
+ "dlib",
+ "lazy_static",
+ "pkg-config",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+
+[[package]]
+name = "weezl"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+
+[[package]]
+name = "wgpu"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d745a1b6d91d85c33defbb29f0eee0450e1d2614d987e14bf6baf26009d132d7"
+dependencies = [
+ "arrayvec 0.7.2",
+ "cfg-if",
+ "js-sys",
+ "log",
+ "naga",
+ "parking_lot 0.12.1",
+ "profiling",
+ "raw-window-handle 0.5.2",
+ "smallvec",
+ "static_assertions",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "wgpu-core",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-core"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff"
+dependencies = [
+ "arrayvec 0.7.2",
+ "bit-vec",
+ "bitflags",
+ "codespan-reporting",
+ "fxhash",
+ "log",
+ "naga",
+ "parking_lot 0.12.1",
+ "profiling",
+ "raw-window-handle 0.5.2",
+ "smallvec",
+ "thiserror",
+ "web-sys",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdcf61a283adc744bb5453dd88ea91f3f86d5ca6b027661c6c73c7734ae0288b"
+dependencies = [
+ "android_system_properties",
+ "arrayvec 0.7.2",
+ "ash",
+ "bit-set",
+ "bitflags",
+ "block",
+ "core-graphics-types",
+ "d3d12",
+ "foreign-types 0.3.2",
+ "fxhash",
+ "glow 0.12.1",
+ "gpu-alloc",
+ "gpu-allocator",
+ "gpu-descriptor",
+ "hassle-rs",
+ "js-sys",
+ "khronos-egl",
+ "libc",
+ "libloading",
+ "log",
+ "metal",
+ "naga",
+ "objc",
+ "parking_lot 0.12.1",
+ "profiling",
+ "range-alloc",
+ "raw-window-handle 0.5.2",
+ "renderdoc-sys",
+ "smallvec",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
+ "wgpu-types",
+ "winapi",
+]
+
+[[package]]
+name = "wgpu-types"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32444e121b0bd00cb02c0de32fde457a9491bd44e03e7a5db6df9b1da2f6f110"
+dependencies = [
+ "bitflags",
+ "js-sys",
+ "web-sys",
+]
+
+[[package]]
+name = "wgpu_glyph"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e25440d5f32ec39de49c57c15c2d3f9133a7939b069b5ad07e5afd8b78fb8adc"
+dependencies = [
+ "bytemuck",
+ "glyph_brush",
+ "log",
+ "wgpu",
+]
+
+[[package]]
+name = "widestring"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-wsapoll"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "window_clipboard"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "015dd4474dc6aa96fe19aae3a24587a088bd90331dba5a5cc60fb3a180234c4d"
+dependencies = [
+ "clipboard-win",
+ "clipboard_macos",
+ "clipboard_wayland",
+ "clipboard_x11",
+ "raw-window-handle 0.3.4",
+ "thiserror",
+]
+
+[[package]]
+name = "windows"
+version = "0.44.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc 0.36.1",
+ "windows_i686_gnu 0.36.1",
+ "windows_i686_msvc 0.36.1",
+ "windows_x86_64_gnu 0.36.1",
+ "windows_x86_64_msvc 0.36.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+
+[[package]]
+name = "winit"
+version = "0.27.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c"
+dependencies = [
+ "bitflags",
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "dispatch",
+ "instant",
+ "libc",
+ "log",
+ "mio",
+ "ndk",
+ "ndk-glue",
+ "objc",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "percent-encoding",
+ "raw-window-handle 0.4.3",
+ "raw-window-handle 0.5.2",
+ "sctk-adwaita",
+ "smithay-client-toolkit",
+ "wasm-bindgen",
+ "wayland-client",
+ "wayland-protocols",
+ "web-sys",
+ "windows-sys 0.36.1",
+ "x11-dl",
+]
+
+[[package]]
+name = "winnow"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wio"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
+dependencies = [
+ "gethostname",
+ "nix 0.22.3",
+ "winapi",
+ "winapi-wsapoll",
+]
+
+[[package]]
+name = "xcursor"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "xi-unicode"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
+
+[[package]]
+name = "xml-rs"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
+
+[[package]]
+name = "xmlparser"
+version = "0.13.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
+
+[[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "byteorder",
+ "bzip2",
+ "crc32fast",
+ "crossbeam-utils",
+ "flate2",
+]
+
+[[package]]
+name = "zune-inflate"
+version = "0.2.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "440a08fd59c6442e4b846ea9b10386c38307eae728b216e1ab2c305d1c9daaf8"
+dependencies = [
+ "simd-adler32",
+]
diff --git a/nixpkgs/pkgs/by-name/li/liana/package.nix b/nixpkgs/pkgs/by-name/li/liana/package.nix
new file mode 100644
index 000000000000..5aaecac63087
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/liana/package.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, cmake
+, copyDesktopItems
+, makeDesktopItem
+, makeWrapper
+, expat
+, fontconfig
+, freetype
+, libGL
+, systemd
+, vulkan-loader
+, xorg
+}:
+
+let
+  runtimeLibs = [
+    expat
+    fontconfig
+    freetype
+    freetype.dev
+    libGL
+    vulkan-loader
+    xorg.libX11
+    xorg.libXcursor
+    xorg.libXi
+    xorg.libXrandr
+  ];
+in
+rustPlatform.buildRustPackage rec {
+  pname = "liana";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "wizardsardine";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-GQNPKlqOBoh684x57gVV3CImgO7HBqt3UFp6CHC13do=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "liana-2.0.0" = "sha256-Dv/Ad8Kv7Mit8yhewzANbUbngQjtQaap/NQy9jqnbfA=";
+      "iced_futures-0.6.0" = "sha256-ejkAxU6DwiX1/119eA0GRapSmz7dqwx9M0uMwyDHATQ=";
+    };
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  buildInputs = [
+    fontconfig
+    systemd
+  ];
+
+  sourceRoot = "source/gui";
+
+  postInstall = ''
+    install -Dm0644 ./ui/static/logos/liana-app-icon.svg $out/share/icons/hicolor/scalable/apps/liana.svg
+    wrapProgram $out/bin/liana-gui --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Liana";
+      exec = "liana-gui";
+      icon = "liana";
+      desktopName = "Liana";
+      comment = meta.description;
+    })
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "A Bitcoin wallet leveraging on-chain timelocks for safety and recovery";
+    homepage = "https://wizardsardine.com/liana";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ dunxen ];
+    platforms = platforms.linux;
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/libburn/package.nix b/nixpkgs/pkgs/by-name/li/libburn/package.nix
new file mode 100644
index 000000000000..701a511dc907
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libburn/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, autoreconfHook
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libburn";
+  version = "1.5.6";
+
+  src = fetchFromGitea {
+    domain = "dev.lovelyhq.com";
+    owner = "libburnia";
+    repo = "libburn";
+    rev = "release-${finalAttrs.version}";
+    hash = "sha256-Xo45X4374FXvlrJ4Q0PahYvuWXO0k3N0ke0mbURYt54=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://dev.lovelyhq.com/libburnia/web/wiki";
+    description = "A library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)";
+    changelog = "https://dev.lovelyhq.com/libburnia/libburn/src/tag/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ abbradar AndersonTorres ];
+    mainProgram = "cdrskin";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/li/libisoburn/package.nix b/nixpkgs/pkgs/by-name/li/libisoburn/package.nix
new file mode 100644
index 000000000000..03db8b4d39f4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libisoburn/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, acl
+, attr
+, autoreconfHook
+, libburn
+, libisofs
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libisoburn";
+  version = "1.5.6";
+
+  src = fetchFromGitea {
+    domain = "dev.lovelyhq.com";
+    owner = "libburnia";
+    repo = "libisoburn";
+    rev = "release-${finalAttrs.version}";
+    hash = "sha256-16qNVlWFVXfvbte5EgP/u193wK2GV/r22hVX0SZWr+0=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    attr
+    zlib
+    libburn
+    libisofs
+  ];
+
+  propagatedBuildInputs = [
+    acl
+  ];
+
+  outputs = [ "out" "lib" "dev" "info" "man" ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "http://libburnia-project.org/";
+    description = "Enables creation and expansion of ISO-9660 filesystems on CD/DVD/BD ";
+    changelog = "https://dev.lovelyhq.com/libburnia/libisoburn/src/tag/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "osirrox";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (libisofs.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/li/libisofs/package.nix b/nixpkgs/pkgs/by-name/li/libisofs/package.nix
new file mode 100644
index 000000000000..d49279dc1f1b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libisofs/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, acl
+, attr
+, autoreconfHook
+, libiconv
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libisofs";
+  version = "1.5.6.pl01";
+
+  src = fetchFromGitea {
+    domain = "dev.lovelyhq.com";
+    owner = "libburnia";
+    repo = "libisofs";
+    rev = "release-${finalAttrs.version}";
+    hash = "sha256-U5We19f/X1UKYFacCRl+XRXn67W8cYOBORb2uEjanT4=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  buildInputs = lib.optionals stdenv.isLinux [
+    acl
+    attr
+  ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+  ] ++ [
+    zlib
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://dev.lovelyhq.com/libburnia/web/wiki";
+    description = "A library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet";
+    changelog = "https://dev.lovelyhq.com/libburnia/libisofs/src/tag/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ abbradar AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/li/lint-staged/package.nix b/nixpkgs/pkgs/by-name/li/lint-staged/package.nix
new file mode 100644
index 000000000000..c93044c71a9f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/lint-staged/package.nix
@@ -0,0 +1,37 @@
+{ lib, buildNpmPackage, fetchFromGitHub, testers, lint-staged }:
+
+buildNpmPackage rec {
+  pname = "lint-staged";
+  version = "14.0.1";
+
+  src = fetchFromGitHub {
+    owner = "okonet";
+    repo = "lint-staged";
+    rev = "v${version}";
+    hash = "sha256-xuHrxi/1zfeY2dd625iLDNJFoNO28JJrPvmECdqeZXk=";
+  };
+
+  npmDepsHash = "sha256-4lyTBmcX5k//kbFHmzbOQJp+Jd9TPY7bzm51QuiXUzE=";
+
+  dontNpmBuild = true;
+
+  # Fixes `lint-staged --version` output
+  postPatch = ''
+    substituteInPlace package.json --replace \
+      '"version": "0.0.0-development"' \
+      '"version": "${version}"'
+  '';
+
+  passthru.tests.version = testers.testVersion { package = lint-staged; };
+
+  meta = with lib; {
+    description = "Run linters on git staged files";
+    longDescription = ''
+      Run linters against staged git files and don't let 💩 slip into your code base!
+    '';
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ DamienCassou ];
+    mainProgram = "lint-staged";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/linux-wallpaperengine/package.nix b/nixpkgs/pkgs/by-name/li/linux-wallpaperengine/package.nix
new file mode 100644
index 000000000000..02838ccb83cc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/linux-wallpaperengine/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, ffmpeg
+, freeglut
+, freeimage
+, glew
+, glfw
+, glm
+, libGL
+, libpulseaudio
+, libX11
+, libXau
+, libXdmcp
+, libXext
+, libXpm
+, libXrandr
+, libXxf86vm
+, lz4
+, mpv
+, pkg-config
+, SDL2
+, SDL2_mixer
+, zlib
+}:
+
+stdenv.mkDerivation {
+  pname = "linux-wallpaperengine";
+  version = "unstable-2023-09-23";
+
+  src = fetchFromGitHub {
+    owner = "Almamu";
+    repo = "linux-wallpaperengine";
+    # upstream lacks versioned releases
+    rev = "21c38d9fd1d3d89376c870cec5c5e5dc7086bc3c";
+    hash = "sha256-bZlMHlNKSydh9eGm5cFSEtv/RV9sA5ABs99uurblBZY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    ffmpeg
+    freeglut
+    freeimage
+    glew
+    glfw
+    glm
+    libGL
+    libpulseaudio
+    libX11
+    libXau
+    libXdmcp
+    libXext
+    libXrandr
+    libXpm
+    libXxf86vm
+    mpv
+    lz4
+    SDL2
+    SDL2_mixer.all
+    zlib
+  ];
+
+  meta = {
+    description = "Wallpaper Engine backgrounds for Linux";
+    homepage = "https://github.com/Almamu/linux-wallpaperengine";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "linux-wallpaperengine";
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/litmus/package.nix b/nixpkgs/pkgs/by-name/li/litmus/package.nix
new file mode 100644
index 000000000000..11068ea39fb7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/litmus/package.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, expat
+, libproxy
+, neon
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.14";
+  pname = "litmus";
+
+  src = fetchFromGitHub {
+    owner = "notroj";
+    repo = "litmus";
+    rev = version;
+    # Required for neon m4 macros, bundled neon not used
+    fetchSubmodules = true;
+    hash = "sha256-jWz0cnytgn7px3vvB9/ilWBNALQiW5/QvgguM27I3yQ=";
+  };
+
+  postPatch = ''
+    # neon version requirements are broken, remove them:
+    # configure: incompatible neon library version 0.32.5: wanted 0.27 28 29 30 31 32
+    # configure: using bundled neon (0.32.5)
+    sed -i /NE_REQUIRE_VERSIONS/d configure.ac
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    expat
+    libproxy
+    neon
+    zlib
+  ];
+
+  autoreconfFlags = [ "-I" "neon/macros" ];
+
+  meta = with lib; {
+    description = "WebDAV server protocol compliance test suite";
+    homepage = "http://www.webdav.org/neon/litmus/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lorenz ];
+    mainProgram = "litmus";
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/lu/luastatus/package.nix b/nixpkgs/pkgs/by-name/lu/luastatus/package.nix
new file mode 100644
index 000000000000..5bac2809ccf4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lu/luastatus/package.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+# Native Build Inputs
+, cmake
+, pkg-config
+, makeWrapper
+# Dependencies
+, yajl
+, alsa-lib
+, libpulseaudio
+, glib
+, libnl
+, udev
+, libXau
+, libXdmcp
+, pcre2
+, pcre
+, util-linux
+, libselinux
+, libsepol
+, lua5
+, docutils
+, libxcb
+, libX11
+, xcbutil
+, xcbutilwm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "luastatus";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "shdown";
+    repo = "luastatus";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-whO5pjUPaCwEb2GDCIPnTk39MejSQOoRRQ5kdYEQ0Pc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    makeWrapper
+  ];
+
+  buildInputs = [
+    libxcb
+    libX11
+    xcbutil
+    xcbutilwm
+    libXdmcp
+    libXau
+    libpulseaudio
+    libnl
+    libselinux
+    libsepol
+    yajl
+    alsa-lib
+    glib
+    udev
+    pcre2
+    pcre
+    util-linux
+    lua5
+    docutils
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/luastatus-stdout-wrapper \
+      --prefix LUASTATUS : $out/bin/luastatus
+
+    wrapProgram $out/bin/luastatus-i3-wrapper \
+      --prefix LUASTATUS : $out/bin/luastatus
+
+    wrapProgram $out/bin/luastatus-lemonbar-launcher \
+      --prefix LUASTATUS : $out/bin/luastatus
+  '';
+
+  meta = with lib; {
+    description = "Universal status bar content generator";
+    homepage = "https://github.com/shdown/luastatus";
+    changelog = "https://github.com/shdown/luastatus/releases/tag/${finalAttrs.version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ kashw2 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/lx/lxd-to-incus/package.nix b/nixpkgs/pkgs/by-name/lx/lxd-to-incus/package.nix
new file mode 100644
index 000000000000..0b9c34fb046d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lx/lxd-to-incus/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, gitUpdater
+}:
+
+buildGoModule rec {
+  pname = "lxd-to-incus";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "lxc";
+    repo = "incus";
+    # use commit which fixes 0.1 versioning, use tags for > 0.1
+    rev = "253a06bd8506bf42628d32ccbca6409d051465ec";
+    hash = "sha256-LXCTrZEDnFTJpqVH+gnG9HaV1wcvTFsVv2tAWabWYmg=";
+  };
+
+  modRoot = "cmd/lxd-to-incus";
+
+  vendorHash = "sha256-Kk5sx8UYuip/qik5ez/pxi+DmzjkPIHNYUHVvBm9f9g=";
+
+  # required for go-cowsql.
+  CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)";
+
+  passthru = {
+    updateScript = gitUpdater {
+      rev-prefix = "incus-";
+    };
+  };
+
+  meta = {
+    description = "LXD to Incus migration tool";
+    homepage = "https://linuxcontainers.org/incus";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ adamcstephens ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ma/matrix-commander-rs/package.nix b/nixpkgs/pkgs/by-name/ma/matrix-commander-rs/package.nix
new file mode 100644
index 000000000000..d315725761cd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/matrix-commander-rs/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, darwin
+, fetchFromGitHub
+, openssl
+, pkg-config
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "matrix-commander-rs";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "8go";
+    repo = "matrix-commander-rs";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aecmd7LtHowH+nqLcRNDSfAxZDKtBTrG1KNyRup8CYI=";
+  };
+
+  cargoHash = "sha256-2biUWLWE0XtmB79yxFahQqLmqwH/6q50IhkcbUrBifU=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  meta = with lib; {
+    description = "CLI-based Matrix client app for sending and receiving";
+    homepage = "https://github.com/8go/matrix-commander-rs";
+    changelog = "https://github.com/8go/matrix-commander-rs/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "matrix-commander-rs";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix b/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix
new file mode 100644
index 000000000000..ed9093da9957
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "matrix-hook";
+  version = "1.0.0";
+  src = fetchFromGitHub {
+    owner = "pinpox";
+    repo = "matrix-hook";
+    rev = "v${version}";
+    hash = "sha256-YmDsibVlAWLEG5QcqDImVb6RJfrfW6zrFnOEMO3Zxcw=";
+  };
+  vendorHash = "sha256-185Wz9IpJRBmunl+KGj/iy37YeszbT3UYzyk9V994oQ=";
+  postInstall = ''
+    install message.html.tmpl -Dt $out
+  '';
+
+  meta = with lib; {
+    description = "A simple webhook for matrix";
+    homepage = "https://github.com/pinpox/matrix-hook";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pinpox mic92 zowoq ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix b/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix
new file mode 100644
index 000000000000..a42fe9754ff5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix
@@ -0,0 +1,80 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+, chromium
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mermaid-cli";
+  version = "10.4.0";
+
+  src = fetchFromGitHub {
+    owner = "mermaid-js";
+    repo = "mermaid-cli";
+    rev = version;
+    hash = "sha256-mzBN/Hg/03+jYyoAHvjx33HC46ZA6dtHmiSnaExCRR0=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-RQsRGzkuPgGVuEpF5lzv26XKMPLX2NrsjVkGMMkCbO4=";
+  };
+
+  nativeBuildInputs  = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline prepare
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/@mermaid-js/mermaid-cli"
+    cp -r . "$out/lib/node_modules/@mermaid-js/mermaid-cli"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/mmdc" \
+  '' + lib.optionalString (lib.meta.availableOn stdenv.targetPlatform chromium) ''
+      --set PUPPETEER_EXECUTABLE_PATH '${lib.getExe chromium}' \
+  '' + ''
+      --add-flags "$out/lib/node_modules/@mermaid-js/mermaid-cli/src/cli.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Generation of diagrams from text in a similar manner as markdown";
+    homepage = "https://github.com/mermaid-js/mermaid-cli";
+    license = lib.licenses.mit;
+    mainProgram = "mmdc";
+    maintainers = with lib.maintainers; [ ysndr ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix b/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix
new file mode 100644
index 000000000000..550d3a5c4667
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libnfc
+, xz
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mfoc-hardnested";
+  version = "unstable-2023-03-27";
+
+  src = fetchFromGitHub {
+    owner = "nfc-tools";
+    repo = finalAttrs.pname;
+    rev = "a6007437405a0f18642a4bbca2eeba67c623d736";
+    hash = "sha256-YcUMS4wx5ML4yYiARyfm7T7nLomgG9YCSFj+ZUg5XZk=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    libnfc
+    xz
+  ];
+
+  meta = with lib; {
+    description = "A fork of mfoc integrating hardnested code from the proxmark";
+    license = licenses.gpl2;
+    homepage = "https://github.com/nfc-tools/mfoc-hardnested";
+    maintainers = with maintainers; [ azuwis ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/mi/migra/package.nix b/nixpkgs/pkgs/by-name/mi/migra/package.nix
new file mode 100644
index 000000000000..8fd3ef6332ed
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mi/migra/package.nix
@@ -0,0 +1,59 @@
+{ lib
+, python3
+, fetchFromGitHub
+, postgresql
+, postgresqlTestHook
+,
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "migra";
+  version = "3.0.1647431138";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "djrobstep";
+    repo = pname;
+    rev = version;
+    hash = "sha256-LSCJA5Ym1LuV3EZl6gnl9jTHGc8A1LXmR1fj0ZZc+po=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    schemainspect
+    six
+    sqlbag
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+    postgresql
+    postgresqlTestHook
+  ];
+  preCheck = ''
+    export PGUSER="nixbld";
+  '';
+  disabledTests = [
+    # These all fail with "List argument must consist only of tuples or dictionaries":
+    # See this issue: https://github.com/djrobstep/migra/issues/232
+    "test_excludeschema"
+    "test_fixtures"
+    "test_rls"
+    "test_singleschema"
+  ];
+
+  pytestFlagsArray = [
+    "-x"
+    "-svv"
+    "tests"
+  ];
+
+  meta = with lib; {
+    description = "Like diff but for PostgreSQL schemas";
+    homepage = "https://github.com/djrobstep/migra";
+    license = with licenses; [ unlicense ];
+    maintainers = with maintainers; [ soispha ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mi/millipixels/package.nix b/nixpkgs/pkgs/by-name/mi/millipixels/package.nix
new file mode 100644
index 000000000000..26c275fc5d9f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mi/millipixels/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, glib
+, meson
+, ninja
+, pkg-config
+, rustc
+, libbsd
+, libcamera
+, gtk3
+, libtiff
+, zbar
+, libjpeg
+, libexif
+, libraw
+, libpulseaudio
+, ffmpeg-headless
+, v4l-utils
+, makeWrapper
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "millipixels";
+  version = "0.22.0";
+
+  src = fetchFromGitLab {
+    owner = "Librem5";
+    repo = pname;
+    rev = "v${version}";
+    domain = "source.puri.sm";
+    hash = "sha256-pRREQRYyD9+dpRvcfsNiNthFy08Yeup9xDn+x+RWDrE=";
+  };
+
+  nativeBuildInputs = [
+    glib
+    meson
+    ninja
+    pkg-config
+    rustc
+    makeWrapper
+  ];
+
+  buildInputs = [
+    libbsd
+    libcamera
+    gtk3
+    libtiff
+    zbar
+    libpulseaudio
+    libraw
+    libexif
+    libjpeg
+    python3
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/millipixels \
+      --prefix PATH : ${lib.makeBinPath [ v4l-utils ffmpeg-headless ]}
+  '';
+
+  meta = with lib; {
+    description = "Camera application for the Librem 5";
+    homepage = "https://source.puri.sm/Librem5/millipixels";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ _999eagle ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mi/minecraftia/package.nix b/nixpkgs/pkgs/by-name/mi/minecraftia/package.nix
new file mode 100644
index 000000000000..584730ea8df3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mi/minecraftia/package.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation {
+  pname = "minecraftia";
+  version = "1.0";
+
+  src = fetchzip {
+    url = "https://fontlibrary.org/assets/downloads/minecraftia/71962a7e3d4a70435c030466a12f1d63/minecraftia.zip";
+    hash = "sha256-AZFSts0GpBttbhl1LHMORiqqc9o7ZWhh5hbjhSnxAlA=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/Minecraftia.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://fontlibrary.org/en/font/minecraftia";
+    description = "Cool Minecraft font";
+    license = licenses.cc-by-sa-30;
+    platforms = platforms.all;
+    maintainers = with lib.maintainers; [ gepbird ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mi/minetest-mapserver/package.nix b/nixpkgs/pkgs/by-name/mi/minetest-mapserver/package.nix
new file mode 100644
index 000000000000..629a46511f50
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mi/minetest-mapserver/package.nix
@@ -0,0 +1,28 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "minetest-mapserver";
+  version = "4.7.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "mapserver";
+    rev = "v${version}";
+    hash = "sha256-qThdNXb17mh3Ph57d3oUl/KhP64AKPZJOCVsvr2SDWk=";
+  };
+
+  vendorHash = "sha256-VSyzdiPNcHDH/ebM2A0pTAyiMblMaJGEIULsIzupmaw=";
+
+  meta = with lib; {
+    description = "Realtime mapserver for minetest";
+    mainProgram = "mapserver";
+    homepage = "https://github.com/${pname}/mapserver/blob/master/readme.md";
+    changelog = "https://github.com/${pname}/mapserver/releases/tag/v${version}";
+    license = with licenses; [ mit cc-by-sa-30 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ gm6k ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mk/mksh/package.nix b/nixpkgs/pkgs/by-name/mk/mksh/package.nix
new file mode 100644
index 000000000000..27cee1d4e226
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mk/mksh/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mksh";
+  version = "59c";
+
+  src = fetchurl {
+    urls = [
+      "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${finalAttrs.version}.tgz"
+      "http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${finalAttrs.version}.tgz"
+    ];
+    hash = "sha256-d64WZaM38cSMYda5Yds+UhGbOOWIhNHIloSvMfh7xQY=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+    sh ./Build.sh -r
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D mksh $out/bin/mksh
+    install -D dot.mkshrc $out/share/mksh/mkshrc
+    installManPage mksh.1
+    runHook postInstall
+  '';
+
+  passthru = {
+    shellPath = "/bin/mksh";
+  };
+
+  meta = {
+    homepage = "http://www.mirbsd.org/mksh.htm";
+    description = "MirBSD Korn Shell";
+    longDescription = ''
+      The MirBSD Korn Shell is a DFSG-free and OSD-compliant (and OSI
+      approved) successor to pdksh, developed as part of the MirOS
+      Project as native Bourne/POSIX/Korn shell for MirOS BSD, but
+      also to be readily available under other UNIX(R)-like operating
+      systems.
+    '';
+    license = with lib.licenses; [ miros isc unicode-dfs-2016 ];
+    maintainers = with lib.maintainers; [ AndersonTorres joachifm ];
+    platforms = lib.platforms.unix;
+  };
+})
+# TODO [ AndersonTorres ]: lksh
+# TODO [ AndersonTorres ]: a more accurate licensing info
diff --git a/nixpkgs/pkgs/by-name/ml/mlx42/mlx42.pc b/nixpkgs/pkgs/by-name/ml/mlx42/mlx42.pc
new file mode 100644
index 000000000000..f0ca081cfed7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ml/mlx42/mlx42.pc
@@ -0,0 +1,10 @@
+prefix=@out@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: mlx42
+Description: A simple cross-platform graphics library that uses GLFW and OpenGL
+Version: @version@
+Libs: -L${libdir} -lmlx42
+Cflags: -I${includedir}
diff --git a/nixpkgs/pkgs/by-name/ml/mlx42/package.nix b/nixpkgs/pkgs/by-name/ml/mlx42/package.nix
new file mode 100644
index 000000000000..0f7447ed8f3f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ml/mlx42/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, glfw
+, darwin
+, enableShared ? !stdenv.hostPlatform.isStatic
+, enableDebug ? false
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mlx42";
+  version = "2.3.2";
+
+  src = fetchFromGitHub {
+    owner = "codam-coding-college";
+    repo = "MLX42";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-JCBV8NWibSugqXkbgP0v3gDfaaMNFYztWpBRfHJUG8E=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "add-cmake-install.patch";
+      url = "https://github.com/codam-coding-college/MLX42/commit/a51ca8e0ec3fb793fa96d710696dcee8a4fe57d6.patch";
+      hash = "sha256-i+0yHZVvfTG19BGVrz7GuEuBw3B7lylCPEvx07il23M=";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs ./tools
+  ''
+  + lib.optionalString enableShared ''
+    substituteInPlace CMakeLists.txt \
+        --replace "mlx42 STATIC" "mlx42 SHARED"
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ glfw ]
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ OpenGL Cocoa IOKit ]);
+
+  cmakeFlags = [ "-DDEBUG=${toString enableDebug}" ];
+
+  postInstall = ''
+    mkdir -p $out/lib/pkgconfig
+    substituteAll ${./mlx42.pc} $out/lib/pkgconfig/mlx42.pc
+
+    # This file was removed after 2.3.2, so the used patch doesn't copy this file
+    # This line can be removed after the next release
+    cp $src/include/MLX42/MLX42_Input.h $out/include/MLX42
+  '';
+
+  meta = {
+    description = "A simple cross-platform graphics library that uses GLFW and OpenGL";
+    homepage = "https://github.com/codam-coding-college/MLX42";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/mo/modern-cpp-kafka/package.nix b/nixpkgs/pkgs/by-name/mo/modern-cpp-kafka/package.nix
new file mode 100644
index 000000000000..daa3396255bc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mo/modern-cpp-kafka/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, boost
+, rdkafka
+, gtest
+, rapidjson
+}:
+
+stdenv.mkDerivation rec {
+  pname = "modern-cpp-kafka";
+  version = "2023.03.07";
+
+  src = fetchFromGitHub {
+    repo = "modern-cpp-kafka";
+    owner = "morganstanley";
+    rev = "v${version}";
+    hash = "sha256-7hkwM1YbveQpDRqwMZ3MXM88LTwlAT7uB8NL0t409To=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-avoid-overwriting-library-paths.patch";
+      url = "https://github.com/morganstanley/modern-cpp-kafka/pull/221.patch";
+      hash = "sha256-UsQcMvJoRTn5kgXhmXOyqfW3n59kGKO596U2WjtdqAY=";
+    })
+    (fetchpatch {
+      name = "add-pkg-config-cmake-config.patch";
+      url = "https://github.com/morganstanley/modern-cpp-kafka/pull/222.patch";
+      hash = "sha256-OjoSttnpgEwSZjCVKc888xJb5f1Dulu/rQqoGmqXNM4=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ boost ];
+  propagatedBuildInputs = [ rdkafka ];
+
+  cmakeFlags = [
+    "-DLIBRDKAFKA_INCLUDE_DIR=${rdkafka.out}/include"
+    "-DGTEST_LIBRARY_DIR=${gtest.out}/lib"
+    "-DGTEST_INCLUDE_DIR=${gtest.dev}/include"
+    "-DRAPIDJSON_INCLUDE_DIRS=${rapidjson.out}/include"
+    "-DCMAKE_CXX_FLAGS=-Wno-uninitialized"
+  ];
+
+  checkInputs = [ gtest rapidjson ];
+
+  meta = with lib; {
+    description = "A C++ API for Kafka clients (i.e. KafkaProducer, KafkaConsumer, AdminClient)";
+    homepage = "https://github.com/morganstanley/modern-cpp-kafka";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ditsuke ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/my/mystmd/package.nix b/nixpkgs/pkgs/by-name/my/mystmd/package.nix
new file mode 100644
index 000000000000..5bf90c7d90cd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/my/mystmd/package.nix
@@ -0,0 +1,34 @@
+{ lib, buildNpmPackage, fetchFromGitHub }:
+
+buildNpmPackage rec {
+  pname = "mystmd";
+  version = "1.1.22";
+
+  src = fetchFromGitHub {
+    owner = "executablebooks";
+    repo = "mystmd";
+    rev = "mystmd@${version}";
+    hash = "sha256-jx/UCC/Cl5kqAbMzeikTmrx9xWS02OCp3rn0pvtIAPY=";
+  };
+
+  npmDepsHash = "sha256-1qQ19iB7N+KvO1uUdEMU1iN91FMQs4wzfTCdv6wfn30=";
+
+  dontNpmInstall = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D packages/mystmd/dist/myst.cjs $out/bin/myst
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Command line tools for working with MyST Markdown";
+    homepage = "https://github.com/executablebooks/mystmd";
+    changelog = "https://github.com/executablebooks/mystmd/blob/${src.rev}/packages/myst-cli/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+    mainProgram = "myst";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/n2/n2/package.nix b/nixpkgs/pkgs/by-name/n2/n2/package.nix
new file mode 100644
index 000000000000..dd35f134d8a1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/n2/n2/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "n2";
+  version = "unstable-2023-10-10";
+
+  src = fetchFromGitHub {
+    owner = "evmar";
+    repo = "n2";
+    rev = "90041c1f010d27464e3b18e38440ed9855ea62ef";
+    hash = "sha256-svJPcriSrqloJlr7pIp/k84O712l4ZEPlSr58GPANXY=";
+  };
+
+  cargoHash = "sha256-jrIo0N3o2fYe3NgNG33shkMd0rJxi5evtidCL9BcfVc=";
+
+  meta = with lib; {
+    homepage = "https://github.com/evmar/n2";
+    description = "A ninja compatible build system";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix b/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix
new file mode 100644
index 000000000000..e0dd291ef76b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+  pname = "namespace-cli";
+  version = "0.0.302";
+
+  src = fetchFromGitHub {
+    owner = "namespacelabs";
+    repo = "foundation";
+    rev = "v${version}";
+    hash = "sha256-I4ZkPdxidT2670NU5o1QTaee4fuDJNEirg7peuHqaJQ=";
+  };
+
+  vendorHash = "sha256-jYkEXoCxqlxLF7oRc7H+/pMwkphOEwt2qUFkg+JOKVA=";
+
+  subPackages = ["cmd/nsc" "cmd/ns" "cmd/docker-credential-nsc"];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X namespacelabs.dev/foundation/internal/cli/version.Tag=v${version}"
+  ];
+
+  meta = with lib; {
+    mainProgram = "nsc";
+    maintainers = with maintainers; [ techknowlogick ];
+    license = licenses.asl20;
+    changelog = "https://github.com/namespacelabs/foundation/releases/tag/v${version}";
+    homepage = "https://github.com/namespacelabs/foundation";
+    description = "A command line interface for the Namespaces platform";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/na/nawk/package.nix b/nixpkgs/pkgs/by-name/na/nawk/package.nix
new file mode 100644
index 000000000000..0e0b84784c99
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/na/nawk/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, bison
+, buildPackages
+, installShellFiles
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nawk";
+  version = "20230911";
+
+  src = fetchFromGitHub {
+    owner = "onetrueawk";
+    repo = "awk";
+    rev = "2ndEdition";
+    hash = "sha256-9SxeYsTFrsJ+Cg43QjQihi2Ij0qdJvTnyGGhUHJHjuU=";
+  };
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  nativeBuildInputs = [
+    bison
+    installShellFiles
+  ];
+
+  outputs = [ "out" "man" ];
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "HOSTCC=${if stdenv.buildPlatform.isDarwin then "clang" else "cc"}"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 a.out "$out/bin/nawk"
+    mv awk.1 nawk.1
+    installManPage nawk.1
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://awk.dev";
+    description = "The one, true implementation of AWK";
+    longDescription = ''
+      This is the version of awk described in "The AWK Programming Language",
+      Second Edition, by Al Aho, Brian Kernighan, and Peter Weinberger
+      (Addison-Wesley, 2023, ISBN 0-13-826972-6).
+    '';
+    changelog = "https://github.com/onetrueawk/awk/blob/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.mit;
+    mainProgram = "nawk";
+    maintainers = with lib.maintainers; [ AndersonTorres konimex ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ne/netclient/package.nix b/nixpkgs/pkgs/by-name/ne/netclient/package.nix
new file mode 100644
index 000000000000..33d72747be66
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ne/netclient/package.nix
@@ -0,0 +1,34 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, libX11
+, stdenv
+, darwin
+}:
+
+buildGoModule rec {
+  pname = "netclient";
+  version = "0.21.0";
+
+  src = fetchFromGitHub {
+    owner = "gravitl";
+    repo = "netclient";
+    rev = "v${version}";
+    hash = "sha256-68/BmVoAFaIg4vgjzhedSBqm6H9VDu3M7JemfPEcpjQ=";
+  };
+
+  vendorHash = "sha256-CsW4tW6+INw93A7uXtHeVnxRrE5unHXhm2SOmQkJwYA=";
+
+  buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
+    ++ lib.optional stdenv.isLinux libX11;
+
+  hardeningEnabled = [ "pie" ];
+
+  meta = with lib; {
+    description = "Automated WireGuard® Management Client";
+    homepage = "https://netmaker.io";
+    changelog = "https://github.com/gravitl/netclient/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ wexder ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ne/netproc/package.nix b/nixpkgs/pkgs/by-name/ne/netproc/package.nix
new file mode 100644
index 000000000000..3f5bd8cbd86b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ne/netproc/package.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "netproc";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "berghetti";
+    repo = "netproc";
+    rev = finalAttrs.version;
+    sha256 = "sha256-OQWlFwCga33rTseLeO8rAd+pkLHbSNf3YI5OSwrdIyk=";
+  };
+
+  buildInputs = [ ncurses ];
+
+  installFlags = [ "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "Tool to monitor network traffic based on processes";
+    homepage = "https://github.com/berghetti/netproc";
+    license = licenses.gpl3;
+    mainProgram = "netproc";
+    maintainers = [ maintainers.azuwis ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/nf/nfft/package.nix b/nixpkgs/pkgs/by-name/nf/nfft/package.nix
new file mode 100644
index 000000000000..86acd30d5da8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/nf/nfft/package.nix
@@ -0,0 +1,52 @@
+{ autoconf
+, automake
+, cunit
+, fetchFromGitHub
+, fftw
+, lib
+, libtool
+, llvmPackages
+, stdenv
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nfft";
+  version = "3.5.3";
+
+  src = fetchFromGitHub {
+    owner = "NFFT";
+    repo = "nfft";
+    rev = finalAttrs.version;
+    hash = "sha256-HR8ME9PVC+RAv1GIgV2vK6eLU8Wk28+rSzbutThBv3w=";
+  };
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    cunit
+    libtool
+  ];
+
+  preConfigure = ''
+    bash bootstrap.sh
+  '';
+
+  configureFlags = [
+    "--enable-all"
+    "--enable-openmp"
+    "--enable-portable-binary"
+  ];
+
+  buildInputs = lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
+
+  propagatedBuildInputs = [ fftw ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Nonequispaced fast Fourier transform";
+    homepage = "https://www-user.tu-chemnitz.de/~potts/nfft/";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ hmenke ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock b/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock
new file mode 100644
index 000000000000..134dec047f28
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock
@@ -0,0 +1,3536 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+dependencies = [
+ "cfg-if",
+ "getrandom 0.2.10",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anstream"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "ascii-canvas"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+dependencies = [
+ "term",
+]
+
+[[package]]
+name = "assert_cmd"
+version = "2.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+dependencies = [
+ "anstyle",
+ "bstr",
+ "doc-comment",
+ "predicates",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[package]]
+name = "assert_matches"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+
+[[package]]
+name = "beef"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "block-buffer"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+
+[[package]]
+name = "bstr"
+version = "1.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+
+[[package]]
+name = "cast"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "ciborium"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+dependencies = [
+ "bitflags 1.3.2",
+ "clap_lex 0.2.4",
+ "indexmap 1.9.3",
+ "textwrap",
+]
+
+[[package]]
+name = "clap"
+version = "4.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex 0.5.1",
+ "strsim",
+ "terminal_size",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f"
+dependencies = [
+ "clap 4.4.3",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
+[[package]]
+name = "codespan"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e"
+dependencies = [
+ "codespan-reporting",
+]
+
+[[package]]
+name = "codespan-lsp"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc4159b76af02757139baf42c0c971c6dc155330999fbfd8eddb29b97fb2db68"
+dependencies = [
+ "codespan-reporting",
+ "lsp-types",
+ "url",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "comrak"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c5a805f31fb098b1611170028501077ceb8c9e78f5345530f4fdefae9b61119"
+dependencies = [
+ "clap 4.4.3",
+ "entities",
+ "memchr",
+ "once_cell",
+ "regex",
+ "shell-words",
+ "slug",
+ "syntect",
+ "typed-arena",
+ "unicode_categories",
+ "xdg",
+]
+
+[[package]]
+name = "console"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "coolor"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af4d7a805ca0d92f8c61a31c809d4323fdaa939b0b440e544d21db7797c5aaad"
+dependencies = [
+ "crossterm",
+]
+
+[[package]]
+name = "cpp_demangle"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "criterion"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+dependencies = [
+ "anes",
+ "atty",
+ "cast",
+ "ciborium",
+ "clap 3.2.25",
+ "criterion-plot",
+ "itertools 0.10.5",
+ "lazy_static",
+ "num-traits",
+ "oorandom",
+ "plotters",
+ "rayon",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tinytemplate",
+ "walkdir",
+]
+
+[[package]]
+name = "criterion-plot"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+dependencies = [
+ "cast",
+ "itertools 0.10.5",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+dependencies = [
+ "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset 0.9.0",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossterm"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2102ea4f781910f8a5b98dd061f4c2023f479ce7bb1236330099ceb5a93cf17"
+dependencies = [
+ "bitflags 1.3.2",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "csv"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "deunicode"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95203a6a50906215a502507c0f879a0ce7ff205a6111e2db2a5ef8e4bb92e43"
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "difflib"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer 0.10.4",
+ "crypto-common",
+]
+
+[[package]]
+name = "directories"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "embed-doc-image"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e"
+dependencies = [
+ "base64 0.13.1",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ena"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "endian-type"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
+
+[[package]]
+name = "entities"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
+
+[[package]]
+name = "env_logger"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
+[[package]]
+name = "fancy-regex"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+dependencies = [
+ "bit-set",
+ "regex",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+
+[[package]]
+name = "fd-lock"
+version = "3.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
+dependencies = [
+ "cfg-if",
+ "rustix 0.38.13",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "findshlibs"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
+dependencies = [
+ "cc",
+ "lazy_static",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
+name = "git-version"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899"
+dependencies = [
+ "git-version-macro",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "git-version-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "half"
+version = "1.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.0",
+]
+
+[[package]]
+name = "indoc"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+
+[[package]]
+name = "indoc"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4"
+
+[[package]]
+name = "inferno"
+version = "0.11.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027"
+dependencies = [
+ "ahash",
+ "indexmap 2.0.0",
+ "is-terminal",
+ "itoa",
+ "log",
+ "num-format",
+ "once_cell",
+ "quick-xml 0.26.0",
+ "rgb",
+ "str_stack",
+]
+
+[[package]]
+name = "insta"
+version = "1.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0770b0a3d4c70567f0d58331f3088b0e4c4f56c9b8d764efe654b4a5d46de3a"
+dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "regex",
+ "similar",
+ "yaml-rust",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "rustix 0.38.13",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "keccak"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
+dependencies = [
+ "cpufeatures",
+]
+
+[[package]]
+name = "lalrpop"
+version = "0.19.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b"
+dependencies = [
+ "ascii-canvas",
+ "bit-set",
+ "diff",
+ "ena",
+ "is-terminal",
+ "itertools 0.10.5",
+ "lalrpop-util",
+ "petgraph",
+ "regex",
+ "regex-syntax 0.6.29",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.19.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.148"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+
+[[package]]
+name = "lock_api"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "logos"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf8b031682c67a8e3d5446840f9573eb7fe26efe7ec8d195c9ac4c0647c502f1"
+dependencies = [
+ "logos-derive",
+]
+
+[[package]]
+name = "logos-derive"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c"
+dependencies = [
+ "beef",
+ "fnv",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "regex-syntax 0.6.29",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "lsp-harness"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "env_logger",
+ "insta",
+ "log",
+ "lsp-server",
+ "lsp-types",
+ "nickel-lang-utils",
+ "serde",
+ "serde_json",
+ "test-generator",
+ "toml",
+]
+
+[[package]]
+name = "lsp-server"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f70570c1c29cf6654029b8fe201a5507c153f0d85be6f234d471d756bc36775a"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.88.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8e8e042772e4e10b3785822f63c82399d0dd233825de44d2596f7fa86e023e0"
+dependencies = [
+ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "url",
+]
+
+[[package]]
+name = "malachite"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6cf7f4730c30071ba374fac86ad35b1cb7a0716f774737768667ea3fa1828e3"
+dependencies = [
+ "malachite-base",
+ "malachite-nz",
+ "malachite-q",
+]
+
+[[package]]
+name = "malachite-base"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b06bfa98a4b4802af5a4263b4ad4660e28e51e8490f6354eb9336c70767e1c5"
+dependencies = [
+ "itertools 0.9.0",
+ "rand",
+ "rand_chacha",
+ "ryu",
+ "sha3",
+]
+
+[[package]]
+name = "malachite-nz"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c89e21c64b7af5be3dc8cef16f786243faf59459fe4ba93b44efdeb264e5ade4"
+dependencies = [
+ "embed-doc-image",
+ "itertools 0.9.0",
+ "malachite-base",
+ "serde",
+]
+
+[[package]]
+name = "malachite-q"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3755e541d5134b5016594c9043094172c4dda9259b3ce824a7b8101941850360"
+dependencies = [
+ "itertools 0.9.0",
+ "malachite-base",
+ "malachite-nz",
+ "serde",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+dependencies = [
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "memchr"
+version = "2.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "minimad"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b136454924e4d020e55c4992e07c105b40d5c41b84662862f0e15bc0a2efef"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "log",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nibble_vec"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "nickel-lang-cli"
+version = "1.2.2"
+dependencies = [
+ "clap 4.4.3",
+ "clap_complete",
+ "directories",
+ "git-version",
+ "insta",
+ "nickel-lang-core",
+ "nickel-lang-utils",
+ "serde",
+ "tempfile",
+ "test-generator",
+]
+
+[[package]]
+name = "nickel-lang-core"
+version = "0.2.0"
+dependencies = [
+ "ansi_term",
+ "assert_matches",
+ "clap 4.4.3",
+ "codespan",
+ "codespan-reporting",
+ "comrak",
+ "criterion",
+ "indexmap 1.9.3",
+ "indoc 2.0.3",
+ "js-sys",
+ "lalrpop",
+ "lalrpop-util",
+ "logos",
+ "malachite",
+ "malachite-q",
+ "md-5",
+ "nickel-lang-utils",
+ "once_cell",
+ "pprof",
+ "pretty",
+ "pretty_assertions",
+ "regex",
+ "rustyline",
+ "rustyline-derive",
+ "serde",
+ "serde-wasm-bindgen",
+ "serde_json",
+ "serde_repr",
+ "serde_yaml",
+ "sha-1",
+ "sha2",
+ "similar",
+ "simple-counter",
+ "strip-ansi-escapes",
+ "termimad",
+ "test-generator",
+ "toml",
+ "topiary",
+ "tree-sitter-nickel 0.1.0",
+ "typed-arena",
+ "unicode-segmentation",
+ "void",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "nickel-lang-lsp"
+version = "1.2.2"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "assert_matches",
+ "clap 4.4.3",
+ "codespan",
+ "codespan-lsp",
+ "codespan-reporting",
+ "csv",
+ "derive_more",
+ "env_logger",
+ "insta",
+ "lalrpop",
+ "lalrpop-util",
+ "lazy_static",
+ "log",
+ "lsp-harness",
+ "lsp-server",
+ "lsp-types",
+ "nickel-lang-core",
+ "nickel-lang-utils",
+ "pretty_assertions",
+ "regex",
+ "serde",
+ "serde_json",
+ "test-generator",
+ "thiserror",
+]
+
+[[package]]
+name = "nickel-lang-utils"
+version = "0.1.0"
+dependencies = [
+ "codespan",
+ "criterion",
+ "nickel-lang-core",
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "nickel-wasm-repl"
+version = "0.1.0"
+dependencies = [
+ "nickel-lang-core",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "num-format"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
+dependencies = [
+ "arrayvec 0.7.4",
+ "itoa",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "onig"
+version = "6.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "once_cell",
+ "onig_sys",
+]
+
+[[package]]
+name = "onig_sys"
+version = "69.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "oorandom"
+version = "11.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+
+[[package]]
+name = "pad"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.0.0",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "plist"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
+dependencies = [
+ "base64 0.21.4",
+ "indexmap 1.9.3",
+ "line-wrap",
+ "quick-xml 0.29.0",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "plotters"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
+dependencies = [
+ "num-traits",
+ "plotters-backend",
+ "plotters-svg",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "plotters-backend"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
+
+[[package]]
+name = "plotters-svg"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
+dependencies = [
+ "plotters-backend",
+]
+
+[[package]]
+name = "pprof"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "196ded5d4be535690899a4631cc9f18cdc41b7ebf24a79400f46f48e49a11059"
+dependencies = [
+ "backtrace",
+ "cfg-if",
+ "criterion",
+ "findshlibs",
+ "inferno",
+ "libc",
+ "log",
+ "nix",
+ "once_cell",
+ "parking_lot",
+ "smallvec",
+ "symbolic-demangle",
+ "tempfile",
+ "thiserror",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "predicates"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
+dependencies = [
+ "anstyle",
+ "difflib",
+ "itertools 0.10.5",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+dependencies = [
+ "predicates-core",
+ "termtree",
+]
+
+[[package]]
+name = "pretty"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83f3aa1e3ca87d3b124db7461265ac176b40c277f37e503eaa29c9c75c037846"
+dependencies = [
+ "arrayvec 0.5.2",
+ "log",
+ "typed-arena",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "pretty_assertions"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+dependencies = [
+ "diff",
+ "yansi",
+]
+
+[[package]]
+name = "prettydiff"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ff1fec61082821f8236cf6c0c14e8172b62ce8a72a0eedc30d3b247bb68dc11"
+dependencies = [
+ "ansi_term",
+ "pad",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pyckel"
+version = "1.2.2"
+dependencies = [
+ "codespan-reporting",
+ "nickel-lang-core",
+ "pyo3",
+ "pyo3-build-config",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "268be0c73583c183f2b14052337465768c07726936a260f480f0857cb95ba543"
+dependencies = [
+ "cfg-if",
+ "indoc 1.0.9",
+ "libc",
+ "memoffset 0.6.5",
+ "parking_lot",
+ "pyo3-build-config",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28fcd1e73f06ec85bf3280c48c67e731d8290ad3d730f8be9dc07946923005c8"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f6cb136e222e49115b3c51c32792886defbfb0adead26a688142b346a0b9ffc"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94144a1266e236b1c932682136dc35a9dee8d3589728f68130c7c3861ef96b28"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "pyo3-macros-backend",
+ "quote 1.0.33",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8df9be978a2d2f0cdebabb03206ed73b11314701a5bfe71b0d753b81997777f"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2 1.0.67",
+]
+
+[[package]]
+name = "radix_trie"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
+dependencies = [
+ "endian-type",
+ "nibble_vec",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "num_cpus",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom 0.2.10",
+ "redox_syscall 0.2.16",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax 0.7.5",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.7.5",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+
+[[package]]
+name = "rgb"
+version = "0.8.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.7",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "rustyline"
+version = "11.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfc8644681285d1fb67a467fb3021bfea306b99b4146b166a1fe3ada965eece"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "clipboard-win",
+ "dirs-next",
+ "fd-lock",
+ "libc",
+ "log",
+ "memchr",
+ "nix",
+ "radix_trie",
+ "scopeguard",
+ "unicode-segmentation",
+ "unicode-width",
+ "utf8parse",
+ "winapi",
+]
+
+[[package]]
+name = "rustyline-derive"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8218eaf5d960e3c478a1b0f129fa888dd3d8d22eb3de097e9af14c1ab4438024"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "serde"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-wasm-bindgen"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
+dependencies = [
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+dependencies = [
+ "indexmap 2.0.0",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "sha3"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
+dependencies = [
+ "block-buffer 0.9.0",
+ "digest 0.9.0",
+ "keccak",
+ "opaque-debug",
+]
+
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "similar"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
+
+[[package]]
+name = "simple-counter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bb57743b52ea059937169c0061d70298fe2df1d2c988b44caae79dd979d9b49"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slug"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+dependencies = [
+ "deunicode",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "str_stack"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb"
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared",
+ "precomputed-hash",
+]
+
+[[package]]
+name = "strip-ansi-escapes"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
+dependencies = [
+ "vte",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "symbolic-common"
+version = "10.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b55cdc318ede251d0957f07afe5fed912119b8c1bc5a7804151826db999e737"
+dependencies = [
+ "debugid",
+ "memmap2",
+ "stable_deref_trait",
+ "uuid",
+]
+
+[[package]]
+name = "symbolic-demangle"
+version = "10.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79be897be8a483a81fff6a3a4e195b4ac838ef73ca42d348b3f722da9902e489"
+dependencies = [
+ "cpp_demangle",
+ "rustc-demangle",
+ "symbolic-common",
+]
+
+[[package]]
+name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syntect"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+dependencies = [
+ "bincode",
+ "bitflags 1.3.2",
+ "fancy-regex",
+ "flate2",
+ "fnv",
+ "once_cell",
+ "onig",
+ "plist",
+ "regex-syntax 0.7.5",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "walkdir",
+ "yaml-rust",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+
+[[package]]
+name = "tempfile"
+version = "3.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+ "rustix 0.38.13",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "termimad"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e32883199fc52cda7e431958dee8bc3ec6898afabc152b76959b9e0e74e2202"
+dependencies = [
+ "coolor",
+ "crossbeam",
+ "crossterm",
+ "minimad",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+dependencies = [
+ "rustix 0.37.23",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "termtree"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+
+[[package]]
+name = "test-generator"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b23be2add79223226e1cb6446cb3e37506a5927089870687a0f1149bb7a073a"
+dependencies = [
+ "glob",
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+
+[[package]]
+name = "thiserror"
+version = "1.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "time"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+dependencies = [
+ "deranged",
+ "itoa",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+
+[[package]]
+name = "time-macros"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinytemplate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+dependencies = [
+ "backtrace",
+ "pin-project-lite",
+ "tokio-macros",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 2.0.33",
+]
+
+[[package]]
+name = "toml"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.0.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "topiary"
+version = "0.2.3"
+source = "git+https://github.com/tweag/topiary.git?rev=refs/heads/main#7e6cb4f8b505eacee57aaf3c1ab0f3cf539da159"
+dependencies = [
+ "clap 4.4.3",
+ "futures",
+ "itertools 0.11.0",
+ "log",
+ "pretty_assertions",
+ "prettydiff",
+ "regex",
+ "serde",
+ "serde_json",
+ "tokio",
+ "toml",
+ "tree-sitter-bash",
+ "tree-sitter-facade",
+ "tree-sitter-json",
+ "tree-sitter-nickel 0.0.1",
+ "tree-sitter-ocaml",
+ "tree-sitter-ocamllex",
+ "tree-sitter-query",
+ "tree-sitter-rust",
+ "tree-sitter-toml",
+ "unescape",
+ "web-tree-sitter-sys",
+]
+
+[[package]]
+name = "tree-sitter"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-bash"
+version = "0.20.3"
+source = "git+https://github.com/tree-sitter/tree-sitter-bash#bdcd56c5a3896f7bbb7684e223c43d9f24380351"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-facade"
+version = "0.9.3"
+source = "git+https://github.com/tweag/tree-sitter-facade#1b290e795e700a57d8bd303f98a9715ab1c4f598"
+dependencies = [
+ "js-sys",
+ "tree-sitter",
+ "wasm-bindgen",
+ "web-sys",
+ "web-tree-sitter-sys",
+]
+
+[[package]]
+name = "tree-sitter-json"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90b04c4e1a92139535eb9fca4ec8fa9666cc96b618005d3ae35f3c957fa92f92"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-nickel"
+version = "0.0.1"
+source = "git+https://github.com/nickel-lang/tree-sitter-nickel?rev=b1a4718601ebd29a62bf3a7fd1069a99ccf48093#b1a4718601ebd29a62bf3a7fd1069a99ccf48093"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-nickel"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e95267764f0648c768e4da3e4c31b96bc5716446497dfa8b6296924b149f64a"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-ocaml"
+version = "0.20.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd1163abc658cf8ae0ecffbd8f4bd3ee00a2b98729de74f3b08f0e24f3ac208a"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-ocamllex"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e774222086fd065999b6605fb231fbfc386bf782aa7dbad52503ff00b429a62"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-query"
+version = "0.1.0"
+source = "git+https://github.com/nvim-treesitter/tree-sitter-query#3a9808b22742d5bd906ef5d1a562f2f1ae57406d"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-rust"
+version = "0.20.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0832309b0b2b6d33760ce5c0e818cb47e1d72b468516bfe4134408926fa7594"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "tree-sitter-toml"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca517f578a98b23d20780247cc2688407fa81effad5b627a5a364ec3339b53e8"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "typenum"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+[[package]]
+name = "unescape"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unicode_categories"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
+
+[[package]]
+name = "unindent"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+
+[[package]]
+name = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+[[package]]
+name = "vte"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
+dependencies = [
+ "utf8parse",
+ "vte_generate_state_changes",
+]
+
+[[package]]
+name = "vte_generate_state_changes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+]
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "serde",
+ "serde_json",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote 1.0.33",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2 1.0.67",
+ "quote 1.0.33",
+ "syn 1.0.109",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-tree-sitter-sys"
+version = "1.3.0"
+source = "git+https://github.com/tweag/web-tree-sitter-sys#9e9755b9ab59055092de4717ba0bafe6483f4e5c"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "winnow"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "xdg"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
diff --git a/nixpkgs/pkgs/by-name/ni/nickel/package.nix b/nixpkgs/pkgs/by-name/ni/nickel/package.nix
new file mode 100644
index 000000000000..5e26c96a5017
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ni/nickel/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, python3
+, nix-update-script
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nickel";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "tweag";
+    repo = "nickel";
+    rev = "refs/tags/${version}";
+    hash = "sha256-g7pRTwa2sniIOmgdYCxfYxGRtxnQP8zaVWuPjzEZTSg=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "topiary-0.2.3" = "sha256-DcmrQ8IuvUBDCBKKSt13k8rU8DJZWFC8MvxWB7dwiQM=";
+      "tree-sitter-bash-0.20.3" = "sha256-zkhCk19kd/KiqYTamFxui7KDE9d+P9pLjc1KVTvYPhI=";
+      "tree-sitter-facade-0.9.3" = "sha256-M/npshnHJkU70pP3I4WMXp3onlCSWM5mMIqXP45zcUs=";
+      "tree-sitter-nickel-0.0.1" = "sha256-aYsEx1Y5oDEqSPCUbf1G3J5Y45ULT9OkD+fn6stzrOU=";
+      "tree-sitter-query-0.1.0" = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
+      "web-tree-sitter-sys-1.3.0" = "sha256-9rKB0rt0y9TD/HLRoB9LjEP9nO4kSWR9ylbbOXo2+2M=";
+    };
+  };
+
+  cargoBuildFlags = [ "-p nickel-lang-cli" "-p nickel-lang-lsp" ];
+
+  nativeBuildInputs = [
+    python3
+  ];
+
+  outputs = [ "out" "nls" ];
+
+  postInstall = ''
+    mkdir -p $nls/bin
+    mv $out/bin/nls $nls/bin/nls
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    homepage = "https://nickel-lang.org/";
+    description = "Better configuration for less";
+    longDescription = ''
+      Nickel is the cheap configuration language.
+
+      Its purpose is to automate the generation of static configuration files -
+      think JSON, YAML, XML, or your favorite data representation language -
+      that are then fed to another system. It is designed to have a simple,
+      well-understood core: it is in essence JSON with functions.
+    '';
+    changelog = "https://github.com/tweag/nickel/blob/${version}/RELEASES.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres felschr matthiasbeyer ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
new file mode 100644
index 000000000000..d0ade5f6580c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, fetchFromGitHub
+, openssh
+, gitMinimal
+, rsync
+, nix
+, coreutils
+, curl
+, gnugrep
+, gawk
+, findutils
+, gnused
+, lib
+, makeWrapper
+}:
+let
+  runtimeDeps = [
+    gitMinimal # for git flakes
+    rsync
+    nix
+    coreutils
+    curl # when uploading tarballs
+    gnugrep
+    gawk
+    findutils
+    gnused # needed by ssh-copy-id
+  ];
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nixos-anywhere";
+  version = "1.0.0";
+  src = fetchFromGitHub {
+    owner = "numtide";
+    repo = "nixos-anywhere";
+    rev = finalAttrs.version;
+    hash = "sha256-zM+N7+XDR34DuTrVLJd7Ggq1JPlURddsqNOjXY/rcQM=";
+  };
+  nativeBuildInputs = [ makeWrapper ];
+  installPhase = ''
+    install -D -m 0755 src/nixos-anywhere.sh $out/bin/nixos-anywhere
+
+    # We prefer the system's openssh over our own, since it might come with features not present in ours:
+    # https://github.com/numtide/nixos-anywhere/issues/62
+    wrapProgram $out/bin/nixos-anywhere \
+      --prefix PATH : ${lib.makeBinPath runtimeDeps} --suffix PATH : ${lib.makeBinPath [ openssh ]}
+  '';
+
+  meta = with lib; {
+    description = "Install nixos everywhere via ssh";
+    homepage = "https://github.com/numtide/nixos-anywhere";
+    mainProgram = "nixos-anywhere";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mic92 maintainers.lassulus maintainers.phaer ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/nl/nls/package.nix b/nixpkgs/pkgs/by-name/nl/nls/package.nix
new file mode 100644
index 000000000000..d060207f7af3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/nl/nls/package.nix
@@ -0,0 +1,21 @@
+{ symlinkJoin
+, nickel
+}:
+
+symlinkJoin {
+  name = "nls-${nickel.version}";
+  pname = "nls";
+  inherit (nickel) version;
+
+  paths = [ nickel.nls ];
+
+  meta = {
+    inherit (nickel.meta) homepage changelog license maintainers;
+    description = "A language server for the Nickel programming language";
+    longDescription = ''
+      The Nickel Language Server (NLS) is a language server for the Nickel
+      programming language. NLS offers error messages, type hints, and
+      auto-completion right in your favorite LSP-enabled editor.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/no/notion/package.nix b/nixpkgs/pkgs/by-name/no/notion/package.nix
new file mode 100644
index 000000000000..9ee84b130bf4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/no/notion/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fontconfig
+, gettext
+, groff
+, libSM
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXrandr
+, lua
+, makeWrapper
+, pkg-config
+, readline
+, which
+, xmessage
+, xterm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "notion";
+  version = "4.0.2";
+
+  src = fetchFromGitHub {
+    owner = "raboof";
+    repo = "notion";
+    rev = finalAttrs.version;
+    hash = "sha256-u5KoTI+OcnQu9m8/Lmsmzr8lEk9tulSE7RRFhj1oXJM=";
+  };
+
+  # error: 'PATH_MAX' undeclared
+  postPatch = ''
+    sed 1i'#include <linux/limits.h>' -i mod_notionflux/notionflux/notionflux.c
+  '';
+
+  nativeBuildInputs = [
+    gettext
+    groff
+    lua
+    makeWrapper
+    pkg-config
+    which
+  ];
+
+  buildInputs = [
+    fontconfig
+    libSM
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXrandr
+    lua
+    readline
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  buildFlags = [
+    "LUA_DIR=${lua}"
+    "X11_PREFIX=/no-such-path"
+  ];
+
+  makeFlags = [
+    "NOTION_RELEASE=${finalAttrs.version}"
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/notion \
+      --prefix PATH ":" "${lib.makeBinPath [ xmessage xterm ]}" \
+  '';
+
+  meta = {
+    description = "Tiling tabbed window manager";
+    homepage = "https://notionwm.net";
+    license = lib.licenses.lgpl21;
+    mainProgram = "notion";
+    maintainers = with lib.maintainers; [ jfb AndersonTorres raboof ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix b/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix
new file mode 100644
index 000000000000..4e3229b77d2e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, giflib
+, imlib2
+, libXft
+, libexif
+, libwebp
+, libinotify-kqueue
+, conf ? null
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nsxiv";
+  version = "32";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "nsxiv";
+    repo = "nsxiv";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-UWaet7hVtgfuWTiNY4VcsMWTfS6L9r5w1fb/0dWz8SI=";
+  };
+
+  outputs = [ "out" "man" "doc" ];
+
+  buildInputs = [
+    giflib
+    imlib2
+    libXft
+    libexif
+    libwebp
+  ] ++ lib.optional stdenv.isDarwin libinotify-kqueue;
+
+  postPatch = lib.optionalString (conf != null) ''
+    cp ${(builtins.toFile "config.def.h" conf)} config.def.h
+  '';
+
+  env.NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-linotify";
+
+  makeFlags = [ "CC:=$(CC)" ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  installTargets = [ "install-all" ];
+
+  meta = {
+    homepage = "https://nsxiv.codeberg.page/";
+    description = "New Suckless X Image Viewer";
+    longDescription = ''
+      nsxiv is a fork of now unmaintained sxiv with the purpose of being a
+      drop-in replacement of sxiv, maintaining it and adding simple, sensible
+      features, like:
+
+      - Basic image operations, e.g. zooming, panning, rotating
+      - Customizable key and mouse button mappings (in config.h)
+      - Script-ability via key-handler
+      - Thumbnail mode: grid of selectable previews of all images
+      - Ability to cache thumbnails for fast re-loading
+      - Basic support for animated/multi-frame images (GIF/WebP)
+      - Display image information in status bar
+      - Display image name/path in X title
+    '';
+    changelog = "https://codeberg.org/nsxiv/nsxiv/src/tag/${finalAttrs.src.rev}/etc/CHANGELOG.md";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres sikmir ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/nu/nuget/package.nix b/nixpkgs/pkgs/by-name/nu/nuget/package.nix
new file mode 100644
index 000000000000..ff262c68ff64
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/nu/nuget/package.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, makeWrapper, mono, lib }:
+
+stdenv.mkDerivation (attrs: {
+  pname = "Nuget";
+  version = "6.6.1.2";
+
+  src = fetchFromGitHub {
+    owner = "mono";
+    repo = "linux-packaging-nuget";
+    rev = "upstream/${attrs.version}.bin";
+    sha256 = "sha256-9/dSeVshHbpYIgGE/8OzrB4towrWVB3UxDi8Esmbu7Y=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/${attrs.pname}
+    cp -r . $out/lib/${attrs.pname}/
+
+    mkdir -p $out/bin
+    makeWrapper \
+      "${mono}/bin/mono" \
+      "$out/bin/nuget" \
+      --add-flags "$out/lib/${attrs.pname}/nuget.exe"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A package manager for the .NET platform";
+    homepage = "https://www.mono-project.com/";
+    longDescription = ''
+      NuGet is the package manager for the .NET platform.
+      This derivation bundles the Mono NuGet CLI, which is mostly used by
+      older projects based on .NET Framework.
+
+      Newer .NET projects can use the dotnet CLI, which has most of this
+      packages functionality built-in.
+    '';
+    # https://learn.microsoft.com/en-us/nuget/resources/nuget-faq#what-is-the-license-for-nuget-exe-
+    license = licenses.mit;
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    maintainers = [ maintainers.mdarocha ];
+    platforms = [ "x86_64-linux" ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/oc/octorpki/package.nix b/nixpkgs/pkgs/by-name/oc/octorpki/package.nix
new file mode 100644
index 000000000000..87a8498d28a6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/oc/octorpki/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildGoModule rec {
+  pname = "octorpki";
+  version = "1.5.10";
+
+  src = fetchFromGitHub {
+    owner = "cloudflare";
+    repo = "cfrpki";
+    rev = "v${version}";
+    hash = "sha256-eqIAauwFh1Zbv3Jkk8plz1OR3ZW8fs0ugNwwTnSHSFM=";
+  };
+
+  patches = [
+    # https://github.com/cloudflare/cfrpki/pull/150
+    (fetchpatch {
+      url = "https://github.com/cloudflare/cfrpki/commit/fd0c4e95b880c463430c91ce1f86205b9309399b.patch";
+      hash = "sha256-cJ0mWkjtGvgTIH5eEum8h2Gy2PqR+nPto+mj5m/I/d4=";
+    })
+  ];
+
+  ldflags = [
+    "-X main.version=v${version}"
+    "-X main.talpath=${placeholder "out"}/share/tals"
+  ];
+
+  subPackages = [
+    "cmd/octorpki"
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp -R cmd/octorpki/tals $out/share/tals
+  '';
+
+  vendorHash = null;
+
+  meta = with lib; {
+    homepage = "https://github.com/cloudflare/cfrpki#octorpki";
+    changelog = "https://github.com/cloudflare/cfrpki/releases/tag/v${version}";
+    description = "A software used to download RPKI (RFC 6480) certificates and validate them";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = teams.wdz.members;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix b/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix
new file mode 100644
index 000000000000..f77ca05a6345
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, nix-update-script
+, python3
+, fetchPypi
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "oelint-adv";
+  version = "3.26.1";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "oelint_adv";
+    hash = "sha256-xQC3y9YeY8o4L4pLV+nLs1Ao8KH6q1BprwTeUm8f+2w=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    anytree
+    colorama
+    oelint-parser
+    urllib3
+  ];
+
+  pythonRelaxDeps = [ "urllib3" ];
+  pythonImportsCheck = [ "oelint_adv" ];
+
+  # Fail to run inside the code the build.
+  doCheck = false;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Advanced bitbake-recipe linter";
+    homepage = "https://github.com/priv-kweihmann/oelint-adv";
+    changelog = "https://github.com/priv-kweihmann/oelint-adv/releases/tag/v${version}";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix b/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix
new file mode 100644
index 000000000000..6ffd81584f3e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix
@@ -0,0 +1,87 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, writeText
+, copyDesktopItems
+, makeDesktopItem
+, makeWrapper
+, onedrive
+}:
+
+let
+  version = "1.0.3";
+
+  setupPy = writeText "setup.py" ''
+    from setuptools import setup
+    setup(
+      name='onedrivegui',
+      version='${version}',
+      scripts=[
+        'src/OneDriveGUI.py',
+      ],
+    )
+  '';
+
+in
+python3Packages.buildPythonApplication rec {
+  pname = "onedrivegui";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "bpozdena";
+    repo = "OneDriveGUI";
+    rev = "v${version}";
+    hash = "sha256-HutziAzhIDYP8upNPieL2GNrxPBHUCVs09FFxdSqeBs=";
+  };
+
+  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
+
+  propagatedBuildInputs = with python3Packages; [ pyside6 requests ];
+
+  # wrap manually to avoid having a bash script in $out/bin with a .py extension
+  dontWrapPythonPrograms = true;
+
+  doCheck = false; # No tests defined
+  pythonImportsCheck = [ "OneDriveGUI" ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "OneDriveGUI";
+      exec = "onedrivegui";
+      desktopName = "OneDriveGUI";
+      comment = "OneDrive GUI Client";
+      type = "Application";
+      icon = "OneDriveGUI";
+      terminal = false;
+      categories = [ "Utility" ];
+    })
+  ];
+
+  postPatch = ''
+    # Patch OneDriveGUI.py so DIR_PATH points to shared files location
+    sed -i src/OneDriveGUI.py -e "s@^DIR_PATH =.*@DIR_PATH = '$out/share/OneDriveGUI'@"
+    cp ${setupPy} ${setupPy.name}
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/OneDriveGUI
+    # we do not need the `ui` directory - only resources
+    cp -r src/resources $out/share/OneDriveGUI
+    install -Dm444 -t $/out/share/icons/hicolor/48x48/apps src/resources/images/OneDriveGUI.png
+    # we put our own executable wrapper in place instead
+    rm -r $out/bin/*
+
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/onedrivegui \
+      --prefix PATH : ${lib.makeBinPath [ onedrive ]} \
+      --prefix PYTHONPATH : ${python3Packages.makePythonPath (propagatedBuildInputs ++ [(placeholder "out")])} \
+      --add-flags $out/lib/${python3Packages.python.libPrefix}/site-packages/OneDriveGUI.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/bpozdena/OneDriveGUI";
+    description = "A simple GUI for Linux OneDrive Client, with multi-account support";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jgarcia ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/on/onedriver/package.nix b/nixpkgs/pkgs/by-name/on/onedriver/package.nix
new file mode 100644
index 000000000000..f4087401ea92
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/on/onedriver/package.nix
@@ -0,0 +1,64 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, pkg-config
+, webkitgtk
+, glib
+, fuse
+, installShellFiles
+}:
+let
+  pname = "onedriver";
+  version = "0.13.0-2";
+
+  src = fetchFromGitHub {
+    owner = "jstaf";
+    repo = "onedriver";
+    rev = "v${version}";
+    hash = "sha256-Bcjgmx9a4pTRhkzR3tbOB6InjvuH71qomv4t+nRNc+w=";
+  };
+in
+buildGoModule {
+  inherit pname version src;
+  vendorHash = "sha256-OOiiKtKb+BiFkoSBUQQfqm4dMfDW3Is+30Kwcdg8LNA=";
+
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+  buildInputs = [ webkitgtk glib fuse ];
+
+  ldflags = [ "-X github.com/jstaf/onedriver/cmd/common.commit=v${version}" ];
+
+  subPackages = [
+    "cmd/onedriver"
+    "cmd/onedriver-launcher"
+  ];
+
+  postInstall = ''
+    echo "Running postInstall"
+    install -Dm644 ./resources/onedriver.svg $out/share/icons/onedriver/onedriver.svg
+    install -Dm644 ./resources/onedriver.png $out/share/icons/onedriver/onedriver.png
+    install -Dm644 ./resources/onedriver-128.png $out/share/icons/onedriver/onedriver-128.png
+
+    install -Dm644 ./resources/onedriver.desktop $out/share/applications/onedriver.desktop
+
+    mkdir -p $out/share/man/man1
+    installManPage ./resources/onedriver.1
+
+    substituteInPlace $out/share/applications/onedriver.desktop \
+      --replace "/usr/bin/onedriver-launcher" "$out/bin/onedriver-launcher" \
+      --replace "/usr/share/icons" "$out/share/icons"
+  '';
+
+  meta = with lib; {
+    description = "A network filesystem for Linux";
+    longDescription = ''
+      onedriver is a network filesystem that gives your computer direct access to your files on Microsoft OneDrive.
+      This is not a sync client. Instead of syncing files, onedriver performs an on-demand download of files when
+      your computer attempts to use them. onedriver allows you to use files on OneDrive as if they were files on
+      your local computer.
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.massimogengarelli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/op/openpgl/package.nix b/nixpkgs/pkgs/by-name/op/openpgl/package.nix
new file mode 100644
index 000000000000..ed81711d8f5d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/openpgl/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, cmake
+, fetchFromGitHub
+, ninja
+, stdenv
+, tbb
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "openpgl";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "OpenPathGuidingLibrary";
+    repo = finalAttrs.pname;
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-dbHmGGiHQkU0KPpQYpY/o0uCWdb3L5namETdOcOREgs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    tbb
+  ];
+
+  cmakeFlags = [
+    "-DOPENPGL_BUILD_STATIC=OFF"
+    "-DTBB_ROOT=${tbb.out}"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-flax-vector-conversions";
+
+  meta = {
+    description = "Intel Open Path Guiding Library";
+    homepage = "https://github.com/OpenPathGuidingLibrary/openpgl";
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.amarshall ];
+    license = lib.licenses.asl20;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/or/orchard/package.nix b/nixpkgs/pkgs/by-name/or/orchard/package.nix
new file mode 100644
index 000000000000..a0aa38665352
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/or/orchard/package.nix
@@ -0,0 +1,55 @@
+{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
+
+buildGoModule rec {
+  pname = "orchard";
+  version = "0.14.1";
+
+  src = fetchFromGitHub {
+    owner = "cirruslabs";
+    repo = pname;
+    rev = version;
+    hash = "sha256-u4aGjEkQ9H7caW2Y5ZbiGhCV47I0Afi5NC/apJB5qvU=";
+    # populate values that require us to use git. By doing this in postFetch we
+    # can delete .git afterwards and maintain better reproducibility of the src.
+    leaveDotGit = true;
+    postFetch = ''
+      cd "$out"
+      git rev-parse HEAD > $out/COMMIT
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
+
+  vendorHash = "sha256-BrzS+QtpGUHcYNNmSI6FlBtcYwNFri7R6nlVvFihdb4=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [
+    "-w"
+    "-s"
+    "-X github.com/cirruslabs/orchard/internal/version.Version=${version}"
+  ];
+
+  # ldflags based on metadata from git and source
+  preBuild = ''
+    ldflags+=" -X github.com/cirruslabs/orchard/internal/version.Commit=$(cat COMMIT)"
+  '';
+
+  subPackages = [ "cmd/orchard" ];
+
+  postInstall = ''
+    export HOME="$(mktemp -d)"
+    installShellCompletion --cmd orchard \
+      --bash <($out/bin/orchard completion bash) \
+      --zsh <($out/bin/orchard completion zsh) \
+      --fish <($out/bin/orchard completion fish)
+  '';
+
+  meta = with lib; {
+    mainProgram = "orchard";
+    description =
+      "Orchestrator for running Tart Virtual Machines on a cluster of Apple Silicon devices";
+    homepage = "https://github.com/cirruslabs/orchard";
+    license = licenses.fairsource09;
+    maintainers = with maintainers; [ techknowlogick ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ou/outputcheck/package.nix b/nixpkgs/pkgs/by-name/ou/outputcheck/package.nix
new file mode 100644
index 000000000000..22b033ea1192
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ou/outputcheck/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, python3
+, fetchFromGitHub
+, lit
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "outputcheck";
+  version = "0.4.2";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "stp";
+    repo = "OutputCheck";
+    rev = "eab62a5dd5129f6a4ebfbe4bbe41d35611f7c48d";
+    hash = "sha256-0D5Lljn66jB/EW/ntC2eTuXAt0w0cceeeqf3aKuyeF0=";
+  };
+
+  # - Fix deprecated 'U' mode in python 3.11
+  #   https://github.com/python/cpython/blob/3.11/Doc/library/functions.rst?plain=1#L1386
+  # - Fix expected error and actual parser error mismatch
+  # - Fix version number cannot find error
+  postPatch = ''
+    substituteInPlace OutputCheck/Driver.py \
+      --replace "argparse.FileType('rU')" "argparse.FileType('r')"
+
+    substituteInPlace tests/invalid-regex-syntax.smt2 \
+      --replace "unbalanced parenthesis" "missing ), unterminated subpattern"
+
+    echo ${version} > RELEASE-VERSION
+  '';
+
+  nativeCheckInputs = [ lit ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    lit -v tests/
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "OutputCheck" ];
+
+  meta = with lib; {
+    description = "A tool for checking tool output inspired by LLVM's FileCheck";
+    homepage = "https://github.com/stp/OutputCheck";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fsagbuya ];
+    mainProgram = "OutputCheck";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pa/paper-age/package.nix b/nixpkgs/pkgs/by-name/pa/paper-age/package.nix
new file mode 100644
index 000000000000..d15954fd6b2b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/paper-age/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "paper-age";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "matiaskorhonen";
+    repo = "paper-age";
+    rev = "v${version}";
+    hash = "sha256-7dd1R41CDgkpFI8fUWCJfgz3lr22IjWQYW6vRYEFidc=";
+  };
+
+  cargoHash = "sha256-IJDV0dmOsA9gbVKGfPsN3TKJbox3JTNxldArQK6GPt8=";
+
+  meta = with lib; {
+    description = "Easy and secure paper backups of secrets";
+    homepage = "https://github.com/matiaskorhonen/paper-age";
+    changelog = "https://github.com/matiaskorhonen/paper-age/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tomfitzhenry ];
+    mainProgram = "paper-age";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pa/passes/package.nix b/nixpkgs/pkgs/by-name/pa/passes/package.nix
new file mode 100644
index 000000000000..35a8a94a9fe1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/passes/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, appstream-glib
+, blueprint-compiler
+, desktop-file-utils
+, gettext
+, gtk4
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook4
+, zint
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "passes";
+  version = "0.8";
+
+  src = fetchFromGitHub {
+    owner = "pablo-s";
+    repo = "passes";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-SIJLBVWyW9+Hzb6ebfUnBfUuvNmYBm9ojKrnFOS3BGc=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/model/meson.build \
+      --replace /app/lib ${zint}/lib
+    substituteInPlace src/view/window.blp \
+      --replace reveal_flap reveal-flap
+    substituteInPlace build-aux/meson/postinstall.py \
+      --replace gtk-update-icon-cache gtk4-update-icon-cache
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    appstream-glib
+    blueprint-compiler
+    desktop-file-utils
+    gettext
+    meson
+    ninja
+    pkg-config
+    (python3.withPackages (pp: [pp.pygobject3]))
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gtk4
+    libadwaita
+    zint
+  ];
+
+  meta = with lib; {
+    description = "A digital pass manager";
+    homepage = "https://github.com/pablo-s/passes";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+    broken = stdenv.isDarwin; # Crashes
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pd/pdepend/composer.lock b/nixpkgs/pkgs/by-name/pd/pdepend/composer.lock
new file mode 100644
index 000000000000..66c12d8ec02b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pd/pdepend/composer.lock
@@ -0,0 +1,2094 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "5e64a6db62881c86d7bcc23b1d82dfb0",
+    "packages": [
+        {
+            "name": "psr/container",
+            "version": "1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.4.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/1.1.2"
+            },
+            "time": "2021-11-05T16:50:12+00:00"
+        },
+        {
+            "name": "symfony/config",
+            "version": "v4.4.44",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/config.git",
+                "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
+                "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1.3",
+                "symfony/filesystem": "^3.4|^4.0|^5.0",
+                "symfony/polyfill-ctype": "~1.8",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/polyfill-php81": "^1.22"
+            },
+            "conflict": {
+                "symfony/finder": "<3.4"
+            },
+            "require-dev": {
+                "symfony/event-dispatcher": "^3.4|^4.0|^5.0",
+                "symfony/finder": "^3.4|^4.0|^5.0",
+                "symfony/messenger": "^4.1|^5.0",
+                "symfony/service-contracts": "^1.1|^2",
+                "symfony/yaml": "^3.4|^4.0|^5.0"
+            },
+            "suggest": {
+                "symfony/yaml": "To use the yaml reference dumper"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Config\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/config/tree/v4.4.44"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-07-20T09:59:04+00:00"
+        },
+        {
+            "name": "symfony/dependency-injection",
+            "version": "v4.4.37",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/dependency-injection.git",
+                "reference": "c00a23904b42f140087d36e1d22c88801bb39689"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c00a23904b42f140087d36e1d22c88801bb39689",
+                "reference": "c00a23904b42f140087d36e1d22c88801bb39689",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1.3",
+                "psr/container": "^1.0",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/service-contracts": "^1.1.6|^2"
+            },
+            "conflict": {
+                "symfony/config": "<4.3|>=5.0",
+                "symfony/finder": "<3.4",
+                "symfony/proxy-manager-bridge": "<3.4",
+                "symfony/yaml": "<3.4"
+            },
+            "provide": {
+                "psr/container-implementation": "1.0",
+                "symfony/service-implementation": "1.0|2.0"
+            },
+            "require-dev": {
+                "symfony/config": "^4.3",
+                "symfony/expression-language": "^3.4|^4.0|^5.0",
+                "symfony/yaml": "^4.4|^5.0"
+            },
+            "suggest": {
+                "symfony/config": "",
+                "symfony/expression-language": "For using expressions in service container configuration",
+                "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
+                "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+                "symfony/yaml": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\DependencyInjection\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Allows you to standardize and centralize the way objects are constructed in your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/dependency-injection/tree/v4.4.37"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-01-24T17:17:45+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v3.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+                "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.4-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-05-23T14:45:45+00:00"
+        },
+        {
+            "name": "symfony/filesystem",
+            "version": "v5.4.25",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/filesystem.git",
+                "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+                "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-ctype": "~1.8",
+                "symfony/polyfill-mbstring": "~1.8",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Filesystem\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides basic utilities for the filesystem",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/filesystem/tree/v5.4.25"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-05-31T13:04:02+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.28.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+                "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.28-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Ctype\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Gert de Pagter",
+                    "email": "BackEndTea@gmail.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for ctype functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "ctype",
+                "polyfill",
+                "portable"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-26T09:26:14+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.28.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "42292d99c55abe617799667f454222c54c60e229"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
+                "reference": "42292d99c55abe617799667f454222c54c60e229",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.28-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-07-28T09:04:16+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.28.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+                "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.28-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-26T09:26:14+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php81",
+            "version": "v1.28.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php81.git",
+                "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
+                "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.28-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php81\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-26T09:26:14+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v2.5.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/container": "^1.1",
+                "symfony/deprecation-contracts": "^2.1|^3"
+            },
+            "conflict": {
+                "ext-psr": "<1.1|>=2"
+            },
+            "suggest": {
+                "symfony/service-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Service\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to writing services",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-05-30T19:17:29+00:00"
+        }
+    ],
+    "packages-dev": [
+        {
+            "name": "doctrine/instantiator",
+            "version": "1.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/instantiator.git",
+                "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
+                "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/coding-standard": "^9 || ^11",
+                "ext-pdo": "*",
+                "ext-phar": "*",
+                "phpbench/phpbench": "^0.16 || ^1",
+                "phpstan/phpstan": "^1.4",
+                "phpstan/phpstan-phpunit": "^1",
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+                "vimeo/psalm": "^4.30 || ^5.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Marco Pivetta",
+                    "email": "ocramius@gmail.com",
+                    "homepage": "https://ocramius.github.io/"
+                }
+            ],
+            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+            "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+            "keywords": [
+                "constructor",
+                "instantiate"
+            ],
+            "support": {
+                "issues": "https://github.com/doctrine/instantiator/issues",
+                "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://www.doctrine-project.org/sponsorship.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.patreon.com/phpdoctrine",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-12-30T00:15:36+00:00"
+        },
+        {
+            "name": "easy-doc/easy-doc",
+            "version": "1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kylekatarnls/php-easy-doc.git",
+                "reference": "194433f262ca2ba65089e095b574b7b81891f27b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kylekatarnls/php-easy-doc/zipball/194433f262ca2ba65089e095b574b7b81891f27b",
+                "reference": "194433f262ca2ba65089e095b574b7b81891f27b",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0",
+                "simple-cli/simple-cli": "^1.4.1"
+            },
+            "require-dev": {
+                "erusev/parsedown": "^1.7",
+                "phpunit/phpunit": "^7.5.18",
+                "symfony/process": "^4.4 || ^5.0"
+            },
+            "bin": [
+                "bin/easy-doc"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "EasyDoc\\": "src/EasyDoc/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "KyleK",
+                    "email": "kylekatarnls@gmail.com"
+                }
+            ],
+            "description": "An easy way to generate a static website from HTML/Markdown/RST/Pug/anything sources",
+            "support": {
+                "issues": "https://github.com/kylekatarnls/php-easy-doc/issues",
+                "source": "https://github.com/kylekatarnls/php-easy-doc/tree/master"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2020-05-24T10:15:11+00:00"
+        },
+        {
+            "name": "gregwar/rst",
+            "version": "v1.0.6",
+            "target-dir": "Gregwar/RST",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Gregwar/RST.git",
+                "reference": "93c630ae18c47d8f7503230fa6ca39a79ad3c598"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Gregwar/RST/zipball/93c630ae18c47d8f7503230fa6ca39a79ad3c598",
+                "reference": "93c630ae18c47d8f7503230fa6ca39a79ad3c598",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0",
+                "symfony/polyfill-mbstring": "^1.12"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^6.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "Gregwar\\RST": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Grégoire Passault",
+                    "email": "g.passault@gmail.com",
+                    "homepage": "http://www.gregwar.com/"
+                }
+            ],
+            "description": "PHP library to parse reStructuredText documents",
+            "homepage": "https://github.com/Gregwar/RST",
+            "keywords": [
+                "markup",
+                "parser",
+                "rst"
+            ],
+            "support": {
+                "issues": "https://github.com/Gregwar/RST/issues",
+                "source": "https://github.com/Gregwar/RST/tree/v1.0.6"
+            },
+            "time": "2020-04-09T08:09:05+00:00"
+        },
+        {
+            "name": "phpdocumentor/reflection-docblock",
+            "version": "2.0.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+                "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "suggest": {
+                "dflydev/markdown": "~1.0",
+                "erusev/parsedown": "~1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel@naenius.com"
+                }
+            ],
+            "support": {
+                "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x"
+            },
+            "time": "2016-01-25T08:17:30+00:00"
+        },
+        {
+            "name": "phpspec/prophecy",
+            "version": "v1.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpspec/prophecy.git",
+                "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+                "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/instantiator": "^1.0.2",
+                "phpdocumentor/reflection-docblock": "~2.0",
+                "sebastian/comparator": "~1.1"
+            },
+            "require-dev": {
+                "phpspec/phpspec": "~2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Prophecy\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet@gmail.com",
+                    "homepage": "http://everzet.com"
+                },
+                {
+                    "name": "Marcello Duarte",
+                    "email": "marcello.duarte@gmail.com"
+                }
+            ],
+            "description": "Highly opinionated mocking framework for PHP 5.3+",
+            "homepage": "https://github.com/phpspec/prophecy",
+            "keywords": [
+                "Double",
+                "Dummy",
+                "fake",
+                "mock",
+                "spy",
+                "stub"
+            ],
+            "support": {
+                "issues": "https://github.com/phpspec/prophecy/issues",
+                "source": "https://github.com/phpspec/prophecy/tree/master"
+            },
+            "time": "2015-08-13T10:07:40+00:00"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "2.2.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "phpunit/php-file-iterator": "~1.3",
+                "phpunit/php-text-template": "~1.2",
+                "phpunit/php-token-stream": "~1.3",
+                "sebastian/environment": "^1.3.2",
+                "sebastian/version": "~1.0"
+            },
+            "require-dev": {
+                "ext-xdebug": ">=2.1.4",
+                "phpunit/phpunit": "~4"
+            },
+            "suggest": {
+                "ext-dom": "*",
+                "ext-xdebug": ">=2.2.1",
+                "ext-xmlwriter": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+            "keywords": [
+                "coverage",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "irc": "irc://irc.freenode.net/phpunit",
+                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/2.2"
+            },
+            "time": "2015-10-06T15:47:00+00:00"
+        },
+        {
+            "name": "phpunit/php-file-iterator",
+            "version": "1.4.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
+                "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "keywords": [
+                "filesystem",
+                "iterator"
+            ],
+            "support": {
+                "irc": "irc://irc.freenode.net/phpunit",
+                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5"
+            },
+            "time": "2017-11-27T13:52:08+00:00"
+        },
+        {
+            "name": "phpunit/php-text-template",
+            "version": "1.2.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Simple template engine.",
+            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+            "keywords": [
+                "template"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+                "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
+            },
+            "time": "2015-06-21T13:50:34+00:00"
+        },
+        {
+            "name": "phpunit/php-timer",
+            "version": "1.0.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-timer.git",
+                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4|~5"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Utility class for timing",
+            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "keywords": [
+                "timer"
+            ],
+            "support": {
+                "irc": "irc://irc.freenode.net/phpunit",
+                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+                "source": "https://github.com/sebastianbergmann/php-timer/tree/master"
+            },
+            "time": "2016-05-12T18:03:57+00:00"
+        },
+        {
+            "name": "phpunit/php-token-stream",
+            "version": "1.4.12",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+                "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
+                "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
+                "shasum": ""
+            },
+            "require": {
+                "ext-tokenizer": "*",
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Wrapper around PHP's tokenizer extension.",
+            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+            "keywords": [
+                "tokenizer"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
+                "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4"
+            },
+            "abandoned": true,
+            "time": "2017-12-04T08:55:13+00:00"
+        },
+        {
+            "name": "phpunit/phpunit",
+            "version": "4.8.36",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
+                "reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-pcre": "*",
+                "ext-reflection": "*",
+                "ext-spl": "*",
+                "php": ">=5.3.3",
+                "phpspec/prophecy": "^1.3.1",
+                "phpunit/php-code-coverage": "~2.1",
+                "phpunit/php-file-iterator": "~1.4",
+                "phpunit/php-text-template": "~1.2",
+                "phpunit/php-timer": "^1.0.6",
+                "phpunit/phpunit-mock-objects": "~2.3",
+                "sebastian/comparator": "~1.2.2",
+                "sebastian/diff": "~1.2",
+                "sebastian/environment": "~1.3",
+                "sebastian/exporter": "~1.2",
+                "sebastian/global-state": "~1.0",
+                "sebastian/version": "~1.0",
+                "symfony/yaml": "~2.1|~3.0"
+            },
+            "suggest": {
+                "phpunit/php-invoker": "~1.1"
+            },
+            "bin": [
+                "phpunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.8.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "The PHP Unit Testing framework.",
+            "homepage": "https://phpunit.de/",
+            "keywords": [
+                "phpunit",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/4.8.36"
+            },
+            "time": "2017-06-21T08:07:12+00:00"
+        },
+        {
+            "name": "phpunit/phpunit-mock-objects",
+            "version": "2.3.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/instantiator": "^1.0.2",
+                "php": ">=5.3.3",
+                "phpunit/php-text-template": "~1.2",
+                "sebastian/exporter": "~1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "suggest": {
+                "ext-soap": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Mock Object library for PHPUnit",
+            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+            "keywords": [
+                "mock",
+                "xunit"
+            ],
+            "support": {
+                "irc": "irc://irc.freenode.net/phpunit",
+                "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues",
+                "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/2.3"
+            },
+            "abandoned": true,
+            "time": "2015-10-02T06:51:40+00:00"
+        },
+        {
+            "name": "sebastian/comparator",
+            "version": "1.2.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "sebastian/diff": "~1.2",
+                "sebastian/exporter": "~1.2 || ~2.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Provides the functionality to compare PHP values for equality",
+            "homepage": "http://www.github.com/sebastianbergmann/comparator",
+            "keywords": [
+                "comparator",
+                "compare",
+                "equality"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/comparator/issues",
+                "source": "https://github.com/sebastianbergmann/comparator/tree/1.2"
+            },
+            "time": "2017-01-29T09:50:25+00:00"
+        },
+        {
+            "name": "sebastian/diff",
+            "version": "1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/diff.git",
+                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
+                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.8"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Kore Nordmann",
+                    "email": "mail@kore-nordmann.de"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Diff implementation",
+            "homepage": "https://github.com/sebastianbergmann/diff",
+            "keywords": [
+                "diff"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/diff/issues",
+                "source": "https://github.com/sebastianbergmann/diff/tree/master"
+            },
+            "time": "2015-12-08T07:14:41+00:00"
+        },
+        {
+            "name": "sebastian/environment",
+            "version": "1.3.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/environment.git",
+                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
+                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Provides functionality to handle HHVM/PHP environments",
+            "homepage": "http://www.github.com/sebastianbergmann/environment",
+            "keywords": [
+                "Xdebug",
+                "environment",
+                "hhvm"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/environment/issues",
+                "source": "https://github.com/sebastianbergmann/environment/tree/1.3.7"
+            },
+            "time": "2016-05-17T03:18:57+00:00"
+        },
+        {
+            "name": "sebastian/exporter",
+            "version": "1.2.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
+                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "sebastian/recursion-context": "~1.0"
+            },
+            "require-dev": {
+                "ext-mbstring": "*",
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                }
+            ],
+            "description": "Provides the functionality to export PHP variables for visualization",
+            "homepage": "http://www.github.com/sebastianbergmann/exporter",
+            "keywords": [
+                "export",
+                "exporter"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/exporter/issues",
+                "source": "https://github.com/sebastianbergmann/exporter/tree/master"
+            },
+            "time": "2016-06-17T09:04:28+00:00"
+        },
+        {
+            "name": "sebastian/global-state",
+            "version": "1.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/global-state.git",
+                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
+                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.2"
+            },
+            "suggest": {
+                "ext-uopz": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Snapshotting of global state",
+            "homepage": "http://www.github.com/sebastianbergmann/global-state",
+            "keywords": [
+                "global state"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/global-state/issues",
+                "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1"
+            },
+            "time": "2015-10-12T03:26:01+00:00"
+        },
+        {
+            "name": "sebastian/recursion-context",
+            "version": "1.0.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
+                "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                }
+            ],
+            "description": "Provides functionality to recursively process PHP variables",
+            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+                "source": "https://github.com/sebastianbergmann/recursion-context/tree/master"
+            },
+            "time": "2016-10-03T07:41:43+00:00"
+        },
+        {
+            "name": "sebastian/version",
+            "version": "1.0.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/version.git",
+                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+            "homepage": "https://github.com/sebastianbergmann/version",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/version/issues",
+                "source": "https://github.com/sebastianbergmann/version/tree/1.0.6"
+            },
+            "time": "2015-06-21T13:59:46+00:00"
+        },
+        {
+            "name": "simple-cli/simple-cli",
+            "version": "1.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/kylekatarnls/simple-cli.git",
+                "reference": "47055c9a172ab032e33a498001d2978c9800fd59"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/kylekatarnls/simple-cli/zipball/47055c9a172ab032e33a498001d2978c9800fd59",
+                "reference": "47055c9a172ab032e33a498001d2978c9800fd59",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^2.15.0",
+                "phan/phan": "^2.3",
+                "phpmd/phpmd": "dev-master",
+                "phpstan/phpstan": "^0.12",
+                "phpunit/phpunit": "^7",
+                "squizlabs/php_codesniffer": "^3.0",
+                "vimeo/psalm": "^3.6"
+            },
+            "bin": [
+                "bin/simple-cli"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "SimpleCli\\": "src/SimpleCli/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "KyleK",
+                    "email": "kylekatarnls@gmail.com"
+                }
+            ],
+            "description": "A simple command line framework",
+            "support": {
+                "issues": "https://github.com/kylekatarnls/simple-cli/issues",
+                "source": "https://github.com/kylekatarnls/simple-cli/tree/1.6.0"
+            },
+            "funding": [
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/simple-cli/simple-cli",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2020-11-18T22:40:00+00:00"
+        },
+        {
+            "name": "squizlabs/php_codesniffer",
+            "version": "2.9.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+                "reference": "2acf168de78487db620ab4bc524135a13cfe6745"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745",
+                "reference": "2acf168de78487db620ab4bc524135a13cfe6745",
+                "shasum": ""
+            },
+            "require": {
+                "ext-simplexml": "*",
+                "ext-tokenizer": "*",
+                "ext-xmlwriter": "*",
+                "php": ">=5.1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "bin": [
+                "scripts/phpcs",
+                "scripts/phpcbf"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "CodeSniffer.php",
+                    "CodeSniffer/CLI.php",
+                    "CodeSniffer/Exception.php",
+                    "CodeSniffer/File.php",
+                    "CodeSniffer/Fixer.php",
+                    "CodeSniffer/Report.php",
+                    "CodeSniffer/Reporting.php",
+                    "CodeSniffer/Sniff.php",
+                    "CodeSniffer/Tokens.php",
+                    "CodeSniffer/Reports/",
+                    "CodeSniffer/Tokenizers/",
+                    "CodeSniffer/DocGenerators/",
+                    "CodeSniffer/Standards/AbstractPatternSniff.php",
+                    "CodeSniffer/Standards/AbstractScopeSniff.php",
+                    "CodeSniffer/Standards/AbstractVariableSniff.php",
+                    "CodeSniffer/Standards/IncorrectPatternException.php",
+                    "CodeSniffer/Standards/Generic/Sniffs/",
+                    "CodeSniffer/Standards/MySource/Sniffs/",
+                    "CodeSniffer/Standards/PEAR/Sniffs/",
+                    "CodeSniffer/Standards/PSR1/Sniffs/",
+                    "CodeSniffer/Standards/PSR2/Sniffs/",
+                    "CodeSniffer/Standards/Squiz/Sniffs/",
+                    "CodeSniffer/Standards/Zend/Sniffs/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Greg Sherwood",
+                    "role": "lead"
+                }
+            ],
+            "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+            "homepage": "http://www.squizlabs.com/php-codesniffer",
+            "keywords": [
+                "phpcs",
+                "standards"
+            ],
+            "support": {
+                "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
+                "source": "https://github.com/squizlabs/PHP_CodeSniffer",
+                "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+            },
+            "time": "2018-11-07T22:31:41+00:00"
+        },
+        {
+            "name": "symfony/yaml",
+            "version": "v3.4.47",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/yaml.git",
+                "reference": "88289caa3c166321883f67fe5130188ebbb47094"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094",
+                "reference": "88289caa3c166321883f67fe5130188ebbb47094",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.5.9|>=7.0.8",
+                "symfony/polyfill-ctype": "~1.8"
+            },
+            "conflict": {
+                "symfony/console": "<3.4"
+            },
+            "require-dev": {
+                "symfony/console": "~3.4|~4.0"
+            },
+            "suggest": {
+                "symfony/console": "For validating YAML files using the lint command"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Yaml\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Yaml Component",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/yaml/tree/v3.4.47"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2020-10-24T10:57:07+00:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": {
+        "php": ">=5.3.7"
+    },
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/nixpkgs/pkgs/by-name/pd/pdepend/package.nix b/nixpkgs/pkgs/by-name/pd/pdepend/package.nix
new file mode 100644
index 000000000000..b14752c38cb3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pd/pdepend/package.nix
@@ -0,0 +1,30 @@
+{ php, fetchFromGitHub, lib }:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "pdepend";
+  version = "2.15.1";
+
+  src = fetchFromGitHub {
+    owner = "pdepend";
+    repo = "pdepend";
+    rev = finalAttrs.version;
+    hash = "sha256-tVWOR0rKMnQDeHk3MHhEVOjn+dSpoMx+Ln+AwFRMwYs=";
+  };
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-MWm8urRB9IujqrIl22x+JFFCRR+nINLQqnHUywT2pi0=";
+
+  meta = {
+    description = "An adaptation of JDepend for PHP";
+    homepage = "https://github.com/pdepend/pdepend";
+    license = lib.licenses.bsd3;
+    longDescription = "
+      PHP Depend is an adaptation of the established Java
+      development tool JDepend. This tool shows you the quality
+      of your design in terms of extensibility, reusability and
+      maintainability.
+    ";
+    maintainers = lib.teams.php.members;
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pe/pekwm/package.nix b/nixpkgs/pkgs/by-name/pe/pekwm/package.nix
new file mode 100644
index 000000000000..b6baed455925
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pe/pekwm/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, awk
+, cmake
+, grep
+, libXext
+, libXft
+, libXinerama
+, libXpm
+, libXrandr
+, libjpeg
+, libpng
+, pkg-config
+, runtimeShell
+, sed
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pekwm";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "pekdon";
+    repo = "pekwm";
+    rev = "release-${finalAttrs.version}";
+    hash= "sha256-hA+TBAs9NMcc5DKIkzyUHWck3Xht+yeCO54xJ6oXXuQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libXext
+    libXft
+    libXinerama
+    libXpm
+    libXrandr
+    libjpeg
+    libpng
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  cmakeFlags = [
+    "-DAWK=${lib.getBin awk}/bin/awk"
+    "-DGREP=${lib.getBin grep}/bin/grep"
+    "-DSED=${lib.getBin sed}/bin/sed"
+    "-DSH=${runtimeShell}"
+  ];
+
+  meta = {
+    homepage = "https://www.pekwm.se/";
+    description = "A lightweight window manager";
+    longDescription = ''
+      pekwm is a window manager that once upon a time was based on the aewm++
+      window manager, but it has evolved enough that it no longer resembles
+      aewm++ at all. It has a much expanded feature-set, including window
+      grouping (similar to ion, pwm, or fluxbox), autoproperties, xinerama,
+      keygrabber that supports keychains, and much more.
+
+      - Lightweight and Unobtrusive, a window manager shouldn't be noticed.
+      - Very configurable, we all work and think in different ways.
+      - Automatic properties, for all the lazy people, make things appear as
+        they should when starting applications.
+      - Chainable Keygrabber, usability for everyone.
+    '';
+    changelog = "https://raw.githubusercontent.com/pekwm/pekwm/release-${finalAttrs.version}/NEWS.md";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "pekwm";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pe/pesign/package.nix b/nixpkgs/pkgs/by-name/pe/pesign/package.nix
new file mode 100644
index 000000000000..b39db9cd430b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pe/pesign/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, nss
+, efivar
+, util-linux
+, popt
+, nspr
+, mandoc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pesign";
+  version = "116";
+
+  src = fetchFromGitHub {
+    owner = "rhboot";
+    repo = "pesign";
+    rev = version;
+    hash = "sha256-cuOSD/ZHkilgguDFJviIZCG8kceRWw2JgssQuWN02Do=";
+  };
+
+  # nss-util is missing because it is already contained in nss
+  # Red Hat seems to be shipping a separate nss-util:
+  # https://centos.pkgs.org/7/centos-x86_64/nss-util-devel-3.44.0-4.el7_7.x86_64.rpm.html
+  # containing things we already have in `nss`.
+  # We can ignore all the errors pertaining to a missing
+  # nss-util.pc I suppose.
+  buildInputs = [ efivar util-linux nss popt nspr mandoc ];
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [ "INSTALLROOT=$(out)" ];
+
+  postInstall = ''
+    mv $out/usr/bin $out/bin
+    mv $out/usr/share $out/share
+
+    rm -rf $out/usr
+    rm -rf $out/etc
+    rm -rf $out/run
+  '';
+
+  meta = with lib; {
+    description = "Signing tools for PE-COFF binaries. Compliant with the PE and Authenticode specifications.";
+    homepage = "https://github.com/rhboot/pesign";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ raitobezarius ];
+    # efivar is currently Linux-only.
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pg/pgmoneta/package.nix b/nixpkgs/pkgs/by-name/pg/pgmoneta/package.nix
new file mode 100644
index 000000000000..dee9c6610b14
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pg/pgmoneta/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, bzip2
+, cjson
+, cmake
+, curl
+, docutils
+, fetchFromGitHub
+, libarchive
+, libev
+, libgccjit
+, libssh
+, lz4
+, openssl
+, systemd
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pgmoneta";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "pgmoneta";
+    repo = "pgmoneta";
+    rev = version;
+    hash = "sha256-F3bQ3UytEunXf0w2Eo1vx3u0Q40usYhbCmCVuL9X9lI=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    docutils # for rst2man
+  ];
+
+  buildInputs = [
+    bzip2
+    cjson
+    curl
+    libarchive
+    libev
+    libgccjit
+    libssh
+    lz4
+    openssl
+    systemd
+    zlib
+    zstd
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  meta = with lib; {
+    description = "Backup / restore solution for PostgreSQL";
+    homepage = "https://pgmoneta.github.io/";
+    changelog = "https://github.com/pgmoneta/pgmoneta/releases/tag/${version}";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ph/phpdocumentor/package.nix b/nixpkgs/pkgs/by-name/ph/phpdocumentor/package.nix
new file mode 100644
index 000000000000..3f2002a0da4a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ph/phpdocumentor/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, php
+, fetchFromGitHub
+}:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "phpdocumentor";
+  version = "3.4.1";
+
+  src = fetchFromGitHub {
+    owner = "phpDocumentor";
+    repo = "phpDocumentor";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-fNjix3pJDRCTWM3Xtn+AtZe4RJfgQ60kiJB9J9tC5t4=";
+  };
+
+  vendorHash = "sha256-rsBg2EHbvYLVr6haN1brHZFVjLDaxqdkNWf0HL3Eoy0=";
+
+  installPhase = ''
+    runHook preInstall
+
+    wrapProgram "$out/bin/phpdoc" \
+      --set-default APP_CACHE_DIR /tmp \
+      --set-default APP_LOG_DIR /tmp/log
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/phpDocumentor/phpDocumentor/releases/tag/v${finalAttrs.version}";
+    description = "PHP documentation generator";
+    homepage = "https://phpdoc.org";
+    license = lib.licenses.mit;
+    mainProgram = "phpdoc";
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pi/pid1/package.nix b/nixpkgs/pkgs/by-name/pi/pid1/package.nix
new file mode 100644
index 000000000000..76e4d3044cea
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pi/pid1/package.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pid1";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "fpco";
+    repo = "pid1-rs";
+    rev = "v${version}";
+    hash = "sha256-BljIa+4BKI7WHlOhXfN/3VKMzs5G5E4tNlQ2oPpJV2g=";
+  };
+
+  cargoHash = "sha256-7PANlw/SKxyAqymfXIXFT/v3U0GCiGfgStguSr0lrqQ=";
+
+  meta = with lib; {
+    description = "Signal handling and zombie reaping for PID1 process";
+    homepage = "https://github.com/fpco/pid1-rs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ psibi ];
+    mainProgram = "pid1";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pi/pinact/package.nix b/nixpkgs/pkgs/by-name/pi/pinact/package.nix
new file mode 100644
index 000000000000..7e5b90100ee3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pi/pinact/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, buildGo120Module
+, testers
+, pinact
+}:
+
+let
+  pname = "pinact";
+  version = "0.1.2";
+  src = fetchFromGitHub {
+    owner = "suzuki-shunsuke";
+    repo = "pinact";
+    rev = "v${version}";
+    hash = "sha256-OQo21RHk0c+eARKrA2qB4NAWWanb94DOZm4b9lqDz8o=";
+  };
+in
+buildGo120Module {
+  inherit pname version src;
+
+  vendorHash = "sha256-g7rdIE+w/pn70i8fOmAo/QGjpla3AUWm7a9MOhNmrgE=";
+
+  doCheck = true;
+
+  passthru.tests.version = testers.testVersion {
+    package = pinact;
+    command = "pinact --version";
+    version = src.rev;
+  };
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version} -X main.commit=${src.rev}"
+  ];
+
+  meta = with lib; {
+    description = "Pin GitHub Actions versions";
+    homepage = "https://github.com/suzuki-shunsuke/pinact";
+    changelog = "https://github.com/suzuki-shunsuke/pinact/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = [ maintainers.kachick ];
+    mainProgram = "pinact";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pl/platformsh/package.nix b/nixpkgs/pkgs/by-name/pl/platformsh/package.nix
new file mode 100644
index 000000000000..458cad998ff7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pl/platformsh/package.nix
@@ -0,0 +1,42 @@
+{ common-updater-scripts, curl, fetchFromGitHub, jq, lib, php, writeShellScript }:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "platformsh";
+  version = "4.10.0";
+
+  src = fetchFromGitHub {
+    owner = "platformsh";
+    repo = "legacy-cli";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-aEQxlotwMScEIfHrVDdXBgFxMqAIypkEl9TLi1Bvhnw=";
+  };
+
+  vendorHash = "sha256-e89xxgTI6FajDfj8xr8VYlbxJD6lUZWz5+2UFQTClsY=";
+
+  prePatch = ''
+    substituteInPlace config-defaults.yaml \
+      --replace "@version-placeholder@" "${finalAttrs.version}"
+  '';
+
+  passthru.updateScript = writeShellScript "update-${finalAttrs.pname}" ''
+    set -o errexit
+    export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}"
+    NEW_VERSION=$(curl -s https://api.github.com/repos/platformsh/legacy-cli/releases/latest | jq .tag_name --raw-output)
+
+    if [[ "v${finalAttrs.version}" = "$NEW_VERSION" ]]; then
+      echo "The new version same as the old version."
+      exit 0
+    fi
+
+    update-source-version "platformsh" "$NEW_VERSION"
+  '';
+
+  meta = {
+    description = "The unified tool for managing your Platform.sh services from the command line.";
+    homepage = "https://github.com/platformsh/legacy-cli";
+    license = lib.licenses.mit;
+    mainProgram = "platform";
+    maintainers = with lib.maintainers; [ shyim ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/po/poethepoet/package.nix b/nixpkgs/pkgs/by-name/po/poethepoet/package.nix
new file mode 100644
index 000000000000..be4dc7159a3e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/po/poethepoet/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "poethepoet";
+  version = "0.24.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nat-n";
+    repo = "poethepoet";
+    rev = "v${version}";
+    hash = "sha256-cIIMwQF0jqGQhNyX2qDBeKZlUNvdC6sBTv5LCxk8MMQ=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pastel
+    tomli
+  ];
+
+  passthru.optional-dependencies = with python3.pkgs; {
+    poetry_plugin = [
+      poetry
+    ];
+  };
+
+  pythonImportsCheck = [ "poethepoet" ];
+
+  meta = with lib; {
+    description = "A task runner that works well with poetry";
+    homepage = "https://github.com/nat-n/poethepoet";
+    changelog = "https://github.com/nat-n/poethepoet/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "poe";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pp/ppsspp/package.nix b/nixpkgs/pkgs/by-name/pp/ppsspp/package.nix
new file mode 100644
index 000000000000..4b84faee15ab
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pp/ppsspp/package.nix
@@ -0,0 +1,126 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, SDL2
+, cmake
+, copyDesktopItems
+, ffmpeg_4
+, glew
+, libffi
+, libsForQt5
+, libzip
+, makeDesktopItem
+, makeWrapper
+, pkg-config
+, python3
+, snappy
+, vulkan-loader
+, wayland
+, zlib
+, enableQt ? false
+, enableVulkan ? true
+, forceWayland ? false
+}:
+
+let
+  # experimental, see https://github.com/hrydgard/ppsspp/issues/13845
+  vulkanWayland = enableVulkan && forceWayland;
+  inherit (libsForQt5) qtbase qtmultimedia wrapQtAppsHook;
+in
+# Only SDL frontend needs to specify whether to use Wayland
+assert forceWayland -> !enableQt;
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ppsspp"
+          + lib.optionalString enableQt "-qt"
+          + lib.optionalString (!enableQt) "-sdl"
+          + lib.optionalString forceWayland "-wayland";
+  version = "1.16.6";
+
+  src = fetchFromGitHub {
+    owner = "hrydgard";
+    repo = "ppsspp";
+    rev = "v${finalAttrs.version}";
+    fetchSubmodules = true;
+    hash = "sha256-FCdYvYKcV+0TpQUSWiooNlTXKYtqbfnAWwjk7M8iF1Q=";
+  };
+
+  postPatch = ''
+    substituteInPlace git-version.cmake --replace unknown ${finalAttrs.src.rev}
+    substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    copyDesktopItems
+    makeWrapper
+    pkg-config
+    python3
+  ] ++ lib.optional enableQt wrapQtAppsHook;
+
+  buildInputs = [
+    SDL2
+    ffmpeg_4
+    (glew.override { enableEGL = forceWayland; })
+    libzip
+    snappy
+    zlib
+  ] ++ lib.optionals enableQt [
+    qtbase
+    qtmultimedia
+  ] ++ lib.optional enableVulkan vulkan-loader
+  ++ lib.optionals vulkanWayland [ wayland libffi ];
+
+  cmakeFlags = [
+    "-DHEADLESS=${if enableQt then "OFF" else "ON"}"
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+    "-DUSE_SYSTEM_FFMPEG=ON"
+    "-DUSE_SYSTEM_LIBZIP=ON"
+    "-DUSE_SYSTEM_SNAPPY=ON"
+    "-DUSE_WAYLAND_WSI=${if vulkanWayland then "ON" else "OFF"}"
+    "-DUSING_QT_UI=${if enableQt then "ON" else "OFF"}"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "PPSSPP";
+      name = "ppsspp";
+      exec = "ppsspp";
+      icon = "ppsspp";
+      comment = "Play PSP games on your computer";
+      categories = [ "Game" "Emulator" ];
+    })
+  ];
+
+  installPhase = let
+    vulkanPath = lib.makeLibraryPath [ vulkan-loader ];
+  in
+    ''
+      runHook preInstall
+
+      mkdir -p $out/share/{applications,ppsspp,icons}
+    '' + (if enableQt then ''
+      install -Dm555 PPSSPPQt $out/bin/ppsspp
+      wrapProgram $out/bin/ppsspp \
+    '' else ''
+      install -Dm555 PPSSPPHeadless $out/bin/ppsspp-headless
+      install -Dm555 PPSSPPSDL $out/share/ppsspp/
+      makeWrapper $out/share/ppsspp/PPSSPPSDL $out/bin/ppsspp \
+        --set SDL_VIDEODRIVER ${if forceWayland then "wayland" else "x11"} \
+    '') + lib.optionalString enableVulkan ''
+        --prefix LD_LIBRARY_PATH : ${vulkanPath} \
+    '' + "\n" + ''
+      mv assets $out/share/ppsspp
+      mv ../icons/hicolor $out/share/icons
+
+      runHook postInstall
+    '';
+
+  meta = {
+    homepage = "https://www.ppsspp.org/";
+    description = "A HLE Playstation Portable emulator, written in C++ ("
+                  + (if enableQt then "Qt" else "SDL + headless") + ")";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pr/presenterm/package.nix b/nixpkgs/pkgs/by-name/pr/presenterm/package.nix
new file mode 100644
index 000000000000..6e09e86f2059
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/presenterm/package.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "presenterm";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mfontanini";
+    repo = "presenterm";
+    rev = "v${version}";
+    hash = "sha256-sXVMVU34gxZKGNye6hoyv07a7N7f6UbivA6thbSOeZA=";
+  };
+
+  cargoHash = "sha256-PsDaXMws/8hEvAZwClQ4okGuryg1iKg0IBr7Xp2QYBE=";
+
+  meta = with lib; {
+    description = "A terminal based slideshow tool";
+    homepage = "https://github.com/mfontanini/presenterm";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ mikaelfangel ];
+    mainProgram = "presenterm";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/prettier-d-slim/package.nix b/nixpkgs/pkgs/by-name/pr/prettier-d-slim/package.nix
new file mode 100644
index 000000000000..3b92503d7423
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/prettier-d-slim/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "prettier-d-slim";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "mikew";
+    repo = "prettier_d_slim";
+    rev = "v${version}";
+    hash = "sha256-M+qlFKtIro3geVsVaYu6dIfOrJIlUQY98LSBikKNV/I=";
+  };
+
+  npmDepsHash = "sha256-zkyB3PYpfeEw5U70KewxIWd4eImIbTgy+e88264sotc=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    description = "Makes prettier fast";
+    homepage = "https://github.com/mikew/prettier_d_slim";
+    license = lib.licenses.mit;
+    mainProgram = "prettier_d_slim";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pru/Gemfile b/nixpkgs/pkgs/by-name/pr/pru/Gemfile
new file mode 100644
index 000000000000..84e6742401e7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pru/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'pru'
diff --git a/nixpkgs/pkgs/by-name/pr/pru/Gemfile.lock b/nixpkgs/pkgs/by-name/pr/pru/Gemfile.lock
new file mode 100644
index 000000000000..98a00ad5368b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pru/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    pru (0.2.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  pru
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/by-name/pr/pru/gemset.nix b/nixpkgs/pkgs/by-name/pr/pru/gemset.nix
new file mode 100644
index 000000000000..76d469ef1b72
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pru/gemset.nix
@@ -0,0 +1,12 @@
+{
+  pru = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1imavf7wlbdfxvkrf838pp3cyfib0r7nzv0chnhyxagy1kk969r2";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pru/package.nix b/nixpkgs/pkgs/by-name/pr/pru/package.nix
new file mode 100644
index 000000000000..5126c6dc0e27
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pru/package.nix
@@ -0,0 +1,24 @@
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+}:
+
+bundlerApp {
+  pname = "pru";
+  gemdir = ./.;
+  exes = [ "pru" ];
+
+  meta = {
+    homepage = "https://github.com/grosser/pru";
+    description = "Pipeable Ruby";
+    longDescription = ''
+      pru allows to use Ruby scripts as filters, working as a convenient,
+      higher-level replacement of typical text processing tools (like sed, awk,
+      grep etc.).
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+
+  passthru.updateScript = bundlerUpdateScript "pru";
+}
diff --git a/nixpkgs/pkgs/by-name/px/pxder/package.nix b/nixpkgs/pkgs/by-name/px/pxder/package.nix
new file mode 100644
index 000000000000..96760f7f6692
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/px/pxder/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, prefetch-yarn-deps
+, yarn
+, nodejs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pxder";
+  version = "2.12.8";
+
+  src = fetchFromGitHub {
+    owner = "Tsuk1ko";
+    repo = "pxder";
+    rev = "v${version}";
+    hash = "sha256-+WZbs10+id+nohTZzLjEofb6k8PMGd73YhY3FUTXx5Q=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-++MqWIUntXQwOYpgAJ3nhAtZ5nxmEreioVHQokYkw7w=";
+  };
+
+  nativeBuildInputs  = [
+    makeWrapper
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+
+    runHook postConfigure
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/pxder"
+    cp -r . "$out/lib/node_modules/pxder"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/pxder" \
+      --add-flags "$out/lib/node_modules/pxder/bin/pxder"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Download illusts from pixiv.net";
+    homepage = "https://github.com/Tsuk1ko/pxder";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "pxder";
+    maintainers = with lib.maintainers; [ vanilla ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/py/pyp/package.nix b/nixpkgs/pkgs/by-name/py/pyp/package.nix
new file mode 100644
index 000000000000..1ba4629220db
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/py/pyp/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromGitHub
+, python3
+, bc
+, jq
+}:
+
+let
+  version = "1.1.0";
+in python3.pkgs.buildPythonApplication {
+  pname = "pyp";
+  inherit version;
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "hauntsaninja";
+    repo = "pyp";
+    rev = "v${version}";
+    hash = "sha256-A1Ip41kxH17BakHEWEuymfa24eBEl5FIHAWL+iZFM4I=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.flit-core
+  ];
+
+  nativeCheckInputs = [
+    python3.pkgs.pytestCheckHook
+    bc
+    jq
+  ];
+
+  # without this, the tests fail because they are unable to find the pyp tool
+  # itself...
+  preCheck = ''
+     _OLD_PATH_=$PATH
+     PATH=$out/bin:$PATH
+  '';
+
+  # And a cleanup
+  postCheck = ''
+    PATH=$_OLD_PATH_
+  '';
+
+  meta = {
+    homepage = "https://github.com/hauntsaninja/pyp";
+    description = "Easily run Python at the shell";
+    changelog = "https://github.com/hauntsaninja/pyp/blob/${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/qu/quicksand/package.nix b/nixpkgs/pkgs/by-name/qu/quicksand/package.nix
new file mode 100644
index 000000000000..189c1dfdf5b4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/qu/quicksand/package.nix
@@ -0,0 +1,40 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "quicksand";
+  version = "2.0-unstable-2021-01-15";
+
+  src = fetchFromGitHub {
+    owner = "andrew-paglinawan";
+    repo = "QuicksandFamily";
+    rev = "be4b9d638e1c79fa42d4a0ab0aa7fe29466419c7";
+    hash = "sha256-zkxm2u35Ll2qyCoUeuA0eumVjNSel+y1kkWoHxeNI/g=";
+    sparseCheckout = ["fonts"];
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/quicksand
+
+    install -Dm444 fonts/*.ttf -t $out/share/fonts/quicksand/
+    install -Dm444 fonts/statics/*.ttf -t $out/share/fonts/quicksand/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/andrew-paglinawan/QuicksandFamily";
+    description = "A sans serif font designed using geometric shapes";
+    longDescription = ''
+      Quicksand is a sans serif typeface designed by Andrew Paglinawan
+      in 2008 using geometric shapes as it's core foundation. It is
+      designed for display purposes but legible enough to use in small
+      sizes as well. Quicksand Family is available in three styles
+      which are Light, Regular and Bold including true italics for each weight.
+    '';
+    license = with lib.licenses; [ ofl ];
+    maintainers = with lib.maintainers; [ hubble ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/qu/quicktype/package.nix b/nixpkgs/pkgs/by-name/qu/quicktype/package.nix
new file mode 100644
index 000000000000..20ce7b39fb3a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/qu/quicktype/package.nix
@@ -0,0 +1,31 @@
+{ lib, buildNpmPackage, fetchFromGitHub, jq }:
+
+buildNpmPackage rec {
+  pname = "quicktype";
+  version = "23.0.75"; # version from https://npm.im/quicktype
+
+  src = fetchFromGitHub {
+    owner = "quicktype";
+    repo = "quicktype";
+    rev = "9b570a73a896306778940c793c0037a38815304a"; # version not tagged
+    hash = "sha256-boCBgIoM2GECipZTJlp9IaeXT24aR8tawS1X8CFDDqw=";
+  };
+
+  postPatch = ''
+    cat <<< $(${jq}/bin/jq '.version = "${version}"' package.json) > package.json
+  '';
+
+  npmDepsHash = "sha256-RA4HVQfB/ge1aIKl9HiUT7vUM5n+Ro6N2D6xj1dgSu8=";
+
+  postInstall = ''
+    mv packages/ $out/lib/node_modules/quicktype/
+  '';
+
+  meta = with lib; {
+    description = "Generate types and converters from JSON, Schema, and GraphQL";
+    homepage = "https://quicktype.io/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+    mainProgram = "quicktype";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-missing-dir-test.patch b/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-missing-dir-test.patch
new file mode 100644
index 000000000000..ddfec9b22e14
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-missing-dir-test.patch
@@ -0,0 +1,23 @@
+diff --git a/test/unit/test_uv_fs.c b/test/unit/test_uv_fs.c
+index 638c39c..c8758d2 100644
+--- a/test/unit/test_uv_fs.c
++++ b/test/unit/test_uv_fs.c
+@@ -40,18 +40,6 @@ TEST(UvFsCheckDir, exists, DirSetUp, DirTearDown, 0, NULL)
+     return MUNIT_OK;
+ }
+ 
+-/* If the directory doesn't exist, it an error is returned. */
+-TEST(UvFsCheckDir, doesNotExist, DirSetUp, DirTearDown, 0, NULL)
+-{
+-    const char *parent = data;
+-    char errmsg[RAFT_ERRMSG_BUF_SIZE];
+-    char dir[128];
+-    sprintf(errmsg, "%s/sub", parent);
+-    sprintf(errmsg, "directory '%s' does not exist", dir);
+-    CHECK_DIR_ERROR(dir, RAFT_NOTFOUND, errmsg);
+-    return MUNIT_OK;
+-}
+-
+ /* If the process can't access the directory, an error is returned. */
+ TEST(UvFsCheckDir, permissionDenied, NULL, NULL, 0, NULL)
+ {
diff --git a/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-net-tests.patch b/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-net-tests.patch
new file mode 100644
index 000000000000..7c8be29feafd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ra/raft-cowsql/disable-net-tests.patch
@@ -0,0 +1,16 @@
+diff --git a/Makefile.am b/Makefile.am
+index 2137932..93abdb6 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -198,11 +198,7 @@ test_integration_uv_SOURCES = \
+   test/integration/test_uv_bootstrap.c \
+   test/integration/test_uv_load.c \
+   test/integration/test_uv_recover.c \
+-  test/integration/test_uv_recv.c \
+-  test/integration/test_uv_send.c \
+   test/integration/test_uv_set_term.c \
+-  test/integration/test_uv_tcp_connect.c \
+-  test/integration/test_uv_tcp_listen.c \
+   test/integration/test_uv_snapshot_put.c \
+   test/integration/test_uv_truncate.c \
+   test/integration/test_uv_work.c
diff --git a/nixpkgs/pkgs/by-name/ra/raft-cowsql/package.nix b/nixpkgs/pkgs/by-name/ra/raft-cowsql/package.nix
new file mode 100644
index 000000000000..821abd91727c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ra/raft-cowsql/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libuv
+, lz4
+, pkg-config
+, incus
+, gitUpdater
+}:
+
+stdenv.mkDerivation rec {
+  pname = "raft-cowsql";
+  version = "0.17.7";
+
+  src = fetchFromGitHub {
+    owner = "cowsql";
+    repo = "raft";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZAUC2o0VWpC/zMOVOAxW+CAdiDTXa5JG0gfHirTjm88=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libuv lz4 ];
+
+  enableParallelBuilding = true;
+
+  patches = [
+    # network tests either hang indefinitely, or fail outright
+    ./disable-net-tests.patch
+
+    # missing dir check is flaky
+    ./disable-missing-dir-test.patch
+  ];
+
+  preConfigure = ''
+    substituteInPlace configure --replace /usr/bin/ " "
+  '';
+
+  doCheck = true;
+
+  outputs = [ "dev" "out" ];
+
+  passthru.tests = {
+    inherit incus;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Asynchronous C implementation of the Raft consensus protocol";
+    homepage = "https://github.com/cowsql/raft";
+    license = licenses.lgpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ adamcstephens ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ra/ratpoison/package.nix b/nixpkgs/pkgs/by-name/ra/ratpoison/package.nix
new file mode 100644
index 000000000000..6a2f63159f65
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ra/ratpoison/package.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, fontconfig
+, freetype
+, libX11
+, libXft
+, libXi
+, libXpm
+, libXrandr
+, libXt
+, libXtst
+, perl
+, pkg-config
+, readline
+, texinfo
+, xorgproto
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ratpoison";
+  version = "1.4.9";
+
+  src = fetchurl {
+    url = "mirror://savannah/ratpoison/ratpoison-${finalAttrs.version}.tar.xz";
+    hash = "sha256-2Y+kvgJezKRTxAf/MRqzlJ8p8g1tir7fjwcWuF/I0fE=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    texinfo
+  ];
+
+  buildInputs = [
+    fontconfig
+    freetype
+    libX11
+    libXft
+    libXi
+    libXpm
+    libXrandr
+    libXt
+    libXtst
+    perl
+    readline
+    xorgproto
+  ];
+
+  outputs = [ "out" "contrib" "man" "doc" "info" ];
+
+  strictDeps = true;
+
+  configureFlags = [
+    # >=1.4.9 requires this even with readline in inputs
+    "--enable-history"
+  ];
+
+  postInstall = ''
+    mkdir -p $contrib/{bin,share}
+    mv $out/bin/rpws $contrib/bin
+    mv $out/share/ratpoison $contrib/share
+  '';
+
+  meta = {
+    homepage = "https://www.nongnu.org/ratpoison/";
+    description = "Simple mouse-free tiling window manager";
+    longDescription = ''
+       Ratpoison is a simple window manager with no fat library
+       dependencies, no fancy graphics, no window decorations, and no
+       rodent dependence.  It is largely modelled after GNU Screen which
+       has done wonders in the virtual terminal market.
+
+       The screen can be split into non-overlapping frames.  All windows
+       are kept maximized inside their frames to take full advantage of
+       your precious screen real estate.
+
+       All interaction with the window manager is done through keystrokes.
+       Ratpoison has a prefix map to minimize the key clobbering that
+       cripples Emacs and other quality pieces of software.
+    '';
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "ratpoison";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/rc/rc/package.nix b/nixpkgs/pkgs/by-name/rc/rc/package.nix
new file mode 100644
index 000000000000..1e1e968e7333
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rc/rc/package.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkgsStatic
+, byacc
+, ed
+, ncurses
+, readline
+, installShellFiles
+, historySupport ? true
+, readlineSupport ? true
+, lineEditingLibrary ? if (stdenv.hostPlatform.isDarwin
+                           || stdenv.hostPlatform.isStatic)
+                       then "null"
+                       else "readline"
+}:
+
+assert lib.elem lineEditingLibrary [ "null" "edit" "editline" "readline" "vrl" ];
+assert !(lib.elem lineEditingLibrary [ "edit" "editline" "vrl" ]); # broken
+assert (lineEditingLibrary == "readline") -> readlineSupport;
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rc";
+  version = "unstable-2023-06-14";
+
+  src = fetchFromGitHub {
+    owner = "rakitzis";
+    repo = "rc";
+    rev = "4aaba1a9cb9fdbb8660696a87850836ffdb09599";
+    hash = "sha256-Yql3mt7hTO2W7wTfPje+X2zBGTHiNXGGXYORJewJIM8=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  # TODO: think on a less ugly fixup
+  postPatch = ''
+    ed -v -s Makefile << EOS
+    # - remove reference to now-inexistent git index file
+    /version.h:/ s| .git/index||
+    # - manually insert the git revision string
+    /v=/ c
+    ${"\t"}v=${builtins.substring 0 7 finalAttrs.src.rev}
+    .
+    /\.git\/index:/ d
+    w
+    q
+    EOS
+  '';
+
+  nativeBuildInputs = [
+    byacc
+    ed
+    installShellFiles
+  ];
+
+  buildInputs = [
+    ncurses
+  ]
+  ++ lib.optionals readlineSupport [
+    readline
+  ];
+
+  strictDeps = true;
+
+  makeFlags  = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "PREFIX=${placeholder "out"}"
+    "MANPREFIX=${placeholder "man"}/share/man"
+    "CPPFLAGS=\"-DSIGCLD=SIGCHLD\""
+    "EDIT=${lineEditingLibrary}"
+  ];
+
+  buildFlags = [
+    "all"
+  ] ++ lib.optionals historySupport [
+    "history"
+  ];
+
+  postInstall = lib.optionalString historySupport ''
+    installManPage history.1
+  '';
+
+  passthru = {
+    shellPath = "/bin/rc";
+    tests.static = pkgsStatic.rc;
+  };
+
+  meta = {
+    homepage = "https://github.com/rakitzis/rc";
+    description = "The Plan 9 shell";
+    license = [ lib.licenses.zlib ];
+    mainProgram = "rc";
+    maintainers = with lib.maintainers; [ ramkromberg AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/re/reactphysics3d/package.nix b/nixpkgs/pkgs/by-name/re/reactphysics3d/package.nix
new file mode 100644
index 000000000000..f775d7d54240
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/reactphysics3d/package.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "reactphysics3d";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "DanielChappuis";
+    repo = "reactphysics3d";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-AUdsUXsygsGfS8H+AHEV1fSrrX7zGmfsaTONYUG3zqk=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "An open source C++ physics engine library";
+    homepage = "https://www.reactphysics3d.com";
+    maintainers = with maintainers; [ rexxDigital ];
+    license = licenses.zlib;
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/re/rectangle-pro/package.nix b/nixpkgs/pkgs/by-name/re/rectangle-pro/package.nix
new file mode 100644
index 000000000000..710ec7121c98
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/rectangle-pro/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, undmg
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "rectangle-pro";
+  version = "3.0.11";
+
+  src = fetchurl {
+    url = "https://rectangleapp.com/pro/downloads/Rectangle%20Pro%20${finalAttrs.version}.dmg";
+    hash = "sha256-Hs2eRO5DpYoY0rLfcmGZRHjmg+wddz/+LE0u4E9gCTk=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ undmg ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications
+    cp -r *.app $out/Applications
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Move and resize windows in macOS using keyboard shortcuts or snap areas";
+    homepage = "https://rectangleapp.com/pro";
+    license = licenses.unfree;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ emilytrau Enzime ];
+    platforms = platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/re/regols/package.nix b/nixpkgs/pkgs/by-name/re/regols/package.nix
new file mode 100644
index 000000000000..3b62c387d40f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/regols/package.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "regols";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "kitagry";
+    repo = "regols";
+    rev = "v${version}";
+    hash = "sha256-2ZwmIlv3kJ26p15t7NvB9sX2GO+B3ypeNl50b7XA0Iw=";
+  };
+
+  vendorHash = "sha256-N6gtkZSNLXz3B961grM3xHzm7x4/kzcLkDOgiFLGp8U=";
+
+  meta = with lib; {
+    description = "OPA Rego language server";
+    homepage = "https://github.com/kitagry/regols";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alias-dev ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/replxx/package.nix b/nixpkgs/pkgs/by-name/re/replxx/package.nix
new file mode 100644
index 000000000000..ae8d185bb530
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/replxx/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "replxx";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    owner = "AmokHuginnsson";
+    repo = "replxx";
+    rev = "release-${finalAttrs.version}";
+    hash = "sha256-WGiczMJ64YPq0DHKZRBDa7EGlRx7hPlpnk6zPdIVFh4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if enableStatic then "OFF" else "ON"}" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/AmokHuginnsson/replxx";
+    description = "A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ri/rimgo/package.nix b/nixpkgs/pkgs/by-name/ri/rimgo/package.nix
new file mode 100644
index 000000000000..73150d42b812
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ri/rimgo/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchFromGitea,
+  buildGoModule,
+  tailwindcss,
+}:
+buildGoModule rec {
+  pname = "rimgo";
+  version = "1.2.1";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "rimgo";
+    repo = "rimgo";
+    rev = "v${version}";
+    hash = "sha256-C6xixULZCDs+rIP7IWBVQNo34Yk/8j9ell2D0nUoHBg=";
+  };
+
+  vendorHash = "sha256-u5N7aI9RIQ3EmiyHv0qhMcKkvmpp+5G7xbzdQcbhybs=";
+
+  nativeBuildInputs = [ tailwindcss ];
+
+  preBuild = ''
+    tailwindcss -i static/tailwind.css -o static/app.css -m
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X codeberg.org/rimgo/rimgo/pages.VersionInfo=${version}"
+  ];
+
+  meta = with lib; {
+    description = "An alternative frontend for Imgur";
+    homepage = "https://codeberg.org/rimgo/rimgo";
+    license = licenses.agpl3Only;
+    mainProgram = "rimgo";
+    maintainers = with maintainers; [ quantenzitrone ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ri/ripsecrets/package.nix b/nixpkgs/pkgs/by-name/ri/ripsecrets/package.nix
new file mode 100644
index 000000000000..d578a13eadaa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ri/ripsecrets/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ripsecrets";
+  version = "0.1.7";
+
+  src = fetchFromGitHub {
+    owner = "sirwart";
+    repo = "ripsecrets";
+    rev = "v${version}";
+    hash = "sha256-NDSMxIq6eBXOv/mI662vsIIOfWQEzQ5fDGznC4+gFyE=";
+  };
+
+  cargoHash = "sha256-vp2gQUf6TWFkJ09STOlqlEB+jsGrVGAmix2eSgBDG/o=";
+
+  meta = with lib; {
+    description = "A command-line tool to prevent committing secret keys into your source code";
+    homepage = "https://github.com/sirwart/ripsecrets";
+    changelog = "https://github.com/sirwart/ripsecrets/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ripsecrets";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ri/river-bnf/package.nix b/nixpkgs/pkgs/by-name/ri/river-bnf/package.nix
new file mode 100644
index 000000000000..f869a6e2ff0c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ri/river-bnf/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, wayland
+, wayland-scanner
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation rec {
+  pname = "river-bnf";
+  version = "unstable-2023-10-10";
+
+  src = fetchFromSourcehut {
+    owner = "~leon_plickat";
+    repo = pname;
+    rev = "bb8ded380ed5d539777533065b4fd33646ad5603";
+    hash = "sha256-rm9Nt3WLgq9QOXzrkYBGp45EALNYFTQGInxfYIN0XcU=";
+  };
+
+  nativeBuildInputs = [
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    wayland.dev
+  ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace '/usr/local' $out
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Switch back'n'forth between river tags";
+    homepage = "https://git.sr.ht/~leon_plickat/river-bnf";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ adamcstephens ];
+    mainProgram = "river-bnf";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ro/robo/package.nix b/nixpkgs/pkgs/by-name/ro/robo/package.nix
new file mode 100644
index 000000000000..3caf4f7ee5b4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ro/robo/package.nix
@@ -0,0 +1,28 @@
+{
+  lib
+, php
+, fetchFromGitHub
+}:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "robo";
+  version = "4.0.4";
+
+  src = fetchFromGitHub {
+    owner = "consolidation";
+    repo = "robo";
+    rev = finalAttrs.version;
+    hash = "sha256-4sQc3ec34F5eBy9hquTqmzUgvFCTlml3LJdP39gPim4=";
+  };
+
+  vendorHash = "sha256-QX7AFtW6Vm9P0ABOuTs1U++nvWBzpvtxhTbK40zDYqc=";
+
+  meta = {
+    changelog = "https://github.com/consolidation/robo/blob/${finalAttrs.version}/CHANGELOG.md";
+    description = "Modern task runner for PHP";
+    homepage = "https://github.com/consolidation/robo";
+    license = lib.licenses.mit;
+    mainProgram = "robo";
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ro/robodoc/package.nix b/nixpkgs/pkgs/by-name/ro/robodoc/package.nix
new file mode 100644
index 000000000000..bc64a8315fe3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ro/robodoc/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "robodoc";
+  version = "4.99.44";
+
+  src = fetchFromGitHub {
+    owner = "gumpu";
+    repo = "ROBODoc";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-l3prSdaGhOvXmZfCPbsZJNocO7y20zJjLQpajRTJOqE=";
+  };
+
+  postConfigure = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Docs/makefile.am \
+      --replace 'man1_MANS = robodoc.1 robohdrs.1' 'man1_MANS ='
+  '';
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/gumpu/ROBODoc";
+    description = "Documentation Extraction Tool";
+    longDescription = ''
+      ROBODoc is program documentation tool. The idea is to include for every
+      function or procedure a standard header containing all sorts of
+      information about the procedure or function. ROBODoc extracts these
+      headers from the source file and puts them in a separate
+      autodocs-file. ROBODoc thus allows you to include the program
+      documentation in the source code and avoid having to maintain two separate
+      documents. Or as Petteri puts it: "robodoc is very useful - especially for
+      programmers who don't like writing documents with Word or some other
+      strange tool."
+
+      ROBODoc can format the headers in a number of different formats: HTML,
+      RTF, LaTeX, or XML DocBook. In HTML mode it can generate cross links
+      between headers. You can even include parts of your source code.
+
+      ROBODoc works with many programming languages: For instance C, Pascal,
+      Shell Scripts, Assembler, COBOL, Occam, Postscript, Forth, Tcl/Tk, C++,
+      Java -- basically any program in which you can use remarks/comments.
+    '';
+    license = with licenses; gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ro/robotfindskitten/package.nix b/nixpkgs/pkgs/by-name/ro/robotfindskitten/package.nix
new file mode 100644
index 000000000000..a955d337753e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ro/robotfindskitten/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, ncurses
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "robotfindskitten";
+  version = "2.8284271.702";
+
+  src = fetchFromGitHub {
+    owner = "robotfindskitten";
+    repo = "robotfindskitten";
+    rev = finalAttrs.version;
+    hash = "sha256-z6//Yfp3BtJAtUdY05m1eKVrTdH19MvK7LZOwX5S1CM=";
+  };
+
+  outputs = [ "out" "man" "info" ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    texinfo
+  ];
+
+  buildInputs = [
+    ncurses
+  ];
+
+  makeFlags = [
+    "execgamesdir=$(out)/bin"
+  ];
+
+  postInstall = ''
+    install -Dm644 nki/vanilla.nki -t $out/share/games/robotfindskitten/
+  '';
+
+  meta = {
+    description = "Yet another zen simulation; A simple find-the-kitten game";
+    homepage = "http://robotfindskitten.org/";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "robotfindskitten";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/rs/rs/package.nix b/nixpkgs/pkgs/by-name/rs/rs/package.nix
new file mode 100644
index 000000000000..141d72dfe077
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rs/rs/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+, libbsd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rs";
+  version = "20200313";
+
+  src = fetchurl {
+    url = "https://www.mirbsd.org/MirOS/dist/mir/rs/${pname}-${version}.tar.gz";
+    sha256 = "0gxwlfk7bzivpp2260w2r6gkyl7vdi05cggn1fijfnp8kzf1b4li";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [ libbsd ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ${stdenv.cc}/bin/cc utf8.c rs.c -o rs -lbsd
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm 755 rs -t $out/bin
+    installManPage rs.1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.mirbsd.org/htman/i386/man1/rs.htm";
+    description = "Reshape a data array from standard input";
+    longDescription = ''
+      rs reads the standard input, interpreting each line as a row of blank-
+      separated entries in an array, transforms the array according to the op-
+      tions, and writes it on the standard output. With no arguments (argc < 2)
+      it transforms stream input into a columnar format convenient for terminal
+      viewing, i.e. if the length (in bytes!) of the first line is smaller than
+      the display width, -et is implied, -t otherwise.
+
+      The shape of the input array is deduced from the number of lines and the
+      number of columns on the first line. If that shape is inconvenient, a more
+      useful one might be obtained by skipping some of the input with the -k
+      option. Other options control interpretation of the input columns.
+
+      The shape of the output array is influenced by the rows and cols specifi-
+      cations, which should be positive integers. If only one of them is a po-
+      sitive integer, rs computes a value for the other which will accommodate
+      all of the data. When necessary, missing data are supplied in a manner
+      specified by the options and surplus data are deleted. There are options
+      to control presentation of the output columns, including transposition of
+      the rows and columns.
+    '';
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix b/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix
new file mode 100644
index 000000000000..61b75130fe1b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix
@@ -0,0 +1,25 @@
+{ lib, python3Packages, fetchPypi }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "rst2html5";
+  version = "2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Ejjja/fm6wXTf9YtjCYZsNDB8X5oAtyPoUIsYFDuZfc=";
+  };
+
+  buildInputs = with python3Packages; [
+    beautifulsoup4
+    docutils
+    genshi
+    pygments
+  ];
+
+  meta = with lib;{
+    homepage = "https://rst2html5.readthedocs.io/en/latest/";
+    description = "Converts ReSTructuredText to (X)HTML5";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix b/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix
new file mode 100644
index 000000000000..3dd368e19257
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rusti-cal";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "arthurhenrique";
+    repo = "rusti-cal";
+    rev = "v${version}";
+    hash = "sha256-pdsP2nuJh30BzqIyxSQXak/rceA4hI9jBYy1dDVEIvI=";
+  };
+
+  cargoHash = "sha256-5eS+OMaNAVNyDMKFNfb0J0rLsikw2LCXhWk7MS9UV2k=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  meta = with lib; {
+    description = "Minimal command line calendar, similar to cal";
+    homepage = "https://github.com/arthurhenrique/rusti-cal";
+    license = [ licenses.mit ];
+    maintainers = [ maintainers.detegr ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ru/rustplayer/Cargo.lock b/nixpkgs/pkgs/by-name/ru/rustplayer/Cargo.lock
new file mode 100644
index 000000000000..433552efa741
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ru/rustplayer/Cargo.lock
@@ -0,0 +1,1998 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alsa"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b"
+dependencies = [
+ "alsa-sys",
+ "bitflags",
+ "libc",
+ "nix",
+]
+
+[[package]]
+name = "alsa-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
+name = "bindgen"
+version = "0.53.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
+dependencies = [
+ "bitflags",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36"
+dependencies = [
+ "bitflags",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bumpalo"
+version = "3.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+
+[[package]]
+name = "cassowary"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cexpr"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+dependencies = [
+ "nom 5.1.2",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "0.29.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "claxon"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
+
+[[package]]
+name = "combine"
+version = "4.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50b727aacc797f9fc28e355d21f34709ac4fc9adecfe470ad07b8f4464f53062"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "coreaudio-rs"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88"
+dependencies = [
+ "bitflags",
+ "coreaudio-sys",
+]
+
+[[package]]
+name = "coreaudio-sys"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f73df0f29f4c3c374854f076c47dc018f19acaa63538880dba0937ad4fa8d7"
+dependencies = [
+ "bindgen 0.53.3",
+]
+
+[[package]]
+name = "cpal"
+version = "0.13.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116"
+dependencies = [
+ "alsa",
+ "core-foundation-sys",
+ "coreaudio-rs",
+ "jni",
+ "js-sys",
+ "lazy_static",
+ "libc",
+ "mach",
+ "ndk",
+ "ndk-glue",
+ "nix",
+ "oboe",
+ "parking_lot 0.11.2",
+ "stdweb",
+ "thiserror",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+dependencies = [
+ "bitflags",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot 0.12.0",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0d720b8683f8dd83c65155f0530560cba68cd2bf395f6513a483caee57ff7f4"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a340f241d2ceed1deb47ae36c4144b2707ec7dd0b649f894cb39bb595986324"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+ "failure_derive",
+]
+
+[[package]]
+name = "failure_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "synstructure",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "ffmpeg-decoder"
+version = "0.1.3"
+dependencies = [
+ "ffmpeg-sys-next",
+ "log",
+ "rodio",
+ "thiserror",
+]
+
+[[package]]
+name = "ffmpeg-sys-next"
+version = "4.4.0"
+source = "git+https://github.com/Kingtous/rust-ffmpeg-sys.git?branch=fix/4.4.0#2c8b92401886d8a6d3b94e77fd73c84e95c627ee"
+dependencies = [
+ "bindgen 0.54.0",
+ "cc",
+ "libc",
+ "num_cpus",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+
+[[package]]
+name = "futures-task"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+
+[[package]]
+name = "futures-util"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.10.2+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gimli"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "h2"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hound"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a164bb2ceaeff4f42542bdb847c41517c78a60f5649671b2a07312b6e117549"
+
+[[package]]
+name = "http"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "hyper"
+version = "0.14.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c"
+
+[[package]]
+name = "itoa"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+
+[[package]]
+name = "jni"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jobserver"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "lewton"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
+dependencies = [
+ "byteorder",
+ "ogg",
+ "tinyvec",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
+
+[[package]]
+name = "libloading"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+dependencies = [
+ "cc",
+ "winapi",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "m3u8-rs"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50fe05791a7f418b59d6cddebdc293d77c9c1f652adbff855c071d4507cd883b"
+dependencies = [
+ "nom 7.1.1",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "memchr"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "minimp3"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "985438f75febf74c392071a975a29641b420dd84431135a6e6db721de4b74372"
+dependencies = [
+ "minimp3-sys",
+ "slice-deque",
+ "thiserror",
+]
+
+[[package]]
+name = "minimp3-sys"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e21c73734c69dc95696c9ed8926a2b393171d98b3f5f5935686a26a487ab9b90"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+dependencies = [
+ "adler",
+ "autocfg",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"
+dependencies = [
+ "libc",
+ "log",
+ "miow",
+ "ntapi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "winapi",
+]
+
+[[package]]
+name = "miow"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "mp3-duration"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "348bdc7300502f0801e5b57c448815713cd843b744ef9bda252a2698fdf90a0f"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "ndk"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
+dependencies = [
+ "bitflags",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e3c5cc68637e21fe8f077f6a1c9e0b9ca495bb74895226b476310f613325884"
+
+[[package]]
+name = "ndk-glue"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9ffb7443daba48349d545028777ca98853b018b4c16624aa01223bc29e078da"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-macro",
+ "ndk-sys",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
+dependencies = [
+ "darling",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "object"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "oboe"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2463c8f2e19b4e0d0710a21f8e4011501ff28db1c95d7a5482a553b2100502d2"
+dependencies = [
+ "jni",
+ "ndk",
+ "ndk-glue",
+ "num-derive",
+ "num-traits",
+ "oboe-sys",
+]
+
+[[package]]
+name = "oboe-sys"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ogg"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+
+[[package]]
+name = "open"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a82915836ef43159bb6a3c64d884c42329ccd0b8afdca737cf1e3dd701709dc"
+dependencies = [
+ "pathdiff",
+ "winapi",
+]
+
+[[package]]
+name = "openssl"
+version = "0.10.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
+dependencies = [
+ "bitflags",
+ "cfg-if 1.0.0",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core 0.8.5",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.1",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
+dependencies = [
+ "cfg-if 1.0.0",
+ "instant",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
+dependencies = [
+ "thiserror",
+ "toml",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7776223e2696f1aa4c6b0170e83212f47296a00424305117d013dfe86fb0fe55"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "mime",
+ "native-tls",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-native-tls",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "rodio"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0939e9f626e6c6f1989adb6226a039c855ca483053f0ee7c98b90e41cf731e"
+dependencies = [
+ "claxon",
+ "cpal",
+ "hound",
+ "lewton",
+ "minimp3",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustplayer"
+version = "1.1.1"
+dependencies = [
+ "bytes",
+ "crossterm",
+ "dirs",
+ "failure",
+ "ffmpeg-decoder",
+ "m3u8-rs",
+ "mp3-duration",
+ "open",
+ "rand",
+ "regex",
+ "reqwest",
+ "rodio",
+ "tokio",
+ "tui",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "security-framework"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.136"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+
+[[package]]
+name = "serde_json"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "shlex"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
+
+[[package]]
+name = "slice-deque"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31ef6ee280cdefba6d2d0b4b78a84a1c1a3f3a4cec98c2d4231c8bc225de0f25"
+dependencies = [
+ "libc",
+ "mach",
+ "winapi",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
+
+[[package]]
+name = "socket2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "stdweb"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "unicode-xid",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "tokio"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
+dependencies = [
+ "bytes",
+ "libc",
+ "memchr",
+ "mio",
+ "num_cpus",
+ "once_cell",
+ "parking_lot 0.12.0",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "winapi",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.6.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "log",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
+
+[[package]]
+name = "tracing"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+
+[[package]]
+name = "tui"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
+dependencies = [
+ "bitflags",
+ "cassowary",
+ "crossterm",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2"
+
+[[package]]
+name = "web-sys"
+version = "0.3.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316"
+
+[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi",
+]
diff --git a/nixpkgs/pkgs/by-name/ru/rustplayer/dynamic-lib.patch b/nixpkgs/pkgs/by-name/ru/rustplayer/dynamic-lib.patch
new file mode 100644
index 000000000000..c1f5ca165fd7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ru/rustplayer/dynamic-lib.patch
@@ -0,0 +1,13 @@
+diff --git a/thirdparty/ffmpeg-decoder-rs/Cargo.toml b/thirdparty/ffmpeg-decoder-rs/Cargo.toml
+index 9db9ac9..4546253 100644
+--- a/thirdparty/ffmpeg-decoder-rs/Cargo.toml
++++ b/thirdparty/ffmpeg-decoder-rs/Cargo.toml
+@@ -20,7 +20,7 @@ default = []
+ rodio_source = ['rodio']
+ 
+ [dependencies]
+-ffmpeg-sys-next = { git="https://github.com/Kingtous/rust-ffmpeg-sys.git", branch="fix/4.4.0", default-features=false, features=["avcodec", "avformat", "swresample", "static"] }
++ffmpeg-sys-next = { git="https://github.com/Kingtous/rust-ffmpeg-sys.git", branch="fix/4.4.0", default-features=false, features=["avcodec", "avformat", "swresample"] }
+ 
+ thiserror = "1.0"
+ log = "0.4"
diff --git a/nixpkgs/pkgs/by-name/ru/rustplayer/package.nix b/nixpkgs/pkgs/by-name/ru/rustplayer/package.nix
new file mode 100644
index 000000000000..71c86fe5dde1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ru/rustplayer/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, alsa-lib
+, ffmpeg_4
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "rustplayer";
+  version = "unstable-2022-12-29";
+
+  src = fetchFromGitHub {
+    owner = "Kingtous";
+    repo = "RustPlayer";
+    rev = "a369bc19ab4a8c568c73be25c5e6117e1ee5d848";
+    sha256 = "sha256-x82EdA7ezCzux1C85IcI2ZQ3M95sH6/k97Rv6lqc5eo=";
+  };
+
+  # This patch is from the source
+  patches = [
+    ./dynamic-lib.patch
+  ];
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ffmpeg-sys-next-4.4.0" = "sha256-TBgf+J+ud7nnVjf0r98/rujFPEayjEaVi+vnSE6/5Ak=";
+    };
+  };
+  nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
+  buildInputs = [ alsa-lib openssl ffmpeg_4 ];
+
+  checkFlags = [
+    # network required
+    "--skip=fetch_and_play"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Kingtous/RustPlayer";
+    description = "A local audio player and network m3u8 radio player using a terminal interface";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ oluceps ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix b/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix
new file mode 100644
index 000000000000..de0c4e985727
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, unstableGitUpdater
+, curl
+, gtkmm3
+, glibmm
+, gnutls
+, yajl
+, pkg-config
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "samrewritten";
+  version = "unstable-2023-05-23";
+
+  src = fetchFromGitHub {
+    owner = "PaulCombal";
+    repo = "SamRewritten";
+    # The latest release is too old, use latest commit instead
+    rev = "39d524a72678a226bf9140db6b97641f554563c3";
+    hash = "sha256-sS/lVY5EWXdTOg7cDWPbi/n5TNt+pRAF1x7ZEaYG4wM=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    curl
+    gtkmm3
+    glibmm
+    gnutls
+    yajl
+  ];
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Steam Achievement Manager For Linux. Rewritten in C++";
+    homepage = "https://github.com/PaulCombal/SamRewritten";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ ludovicopiero ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/sc/scala-update/package.nix b/nixpkgs/pkgs/by-name/sc/scala-update/package.nix
new file mode 100644
index 000000000000..d15292c4d32e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/scala-update/package.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, coursier, buildGraalvmNativeImage }:
+
+let
+  baseName = "scala-update";
+  version = "0.2.2";
+  deps = stdenv.mkDerivation {
+    name = "${baseName}-deps-${version}";
+    buildCommand = ''
+      export COURSIER_CACHE=$(pwd)
+      ${coursier}/bin/cs fetch io.github.kitlangton:scala-update_2.13:${version} > deps
+      mkdir -p $out/share/java
+      cp $(< deps) $out/share/java/
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = "kNnFzzHn+rFq4taqRYjBYaDax0MHW+vIoSFVN3wxA8M=";
+  };
+in buildGraalvmNativeImage {
+  pname = baseName;
+  inherit version;
+
+  buildInputs = [ deps ];
+
+  src = "${deps}/share/java/${baseName}_2.13-${version}.jar";
+
+  extraNativeImageBuildArgs =
+    [ "--no-fallback" "--enable-url-protocols=https" "update.Main" ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    native-image ''${nativeImageBuildArgs[@]} -cp $(JARS=("${deps}/share/java"/*.jar); IFS=:; echo "''${JARS[*]}")
+
+    runHook postBuild
+  '';
+
+  installCheckPhase = ''
+    $out/bin/${baseName} --version | grep -q "${version}"
+  '';
+
+  meta = with lib; {
+    description = "Update your Scala dependencies interactively";
+    homepage = "https://github.com/kitlangton/scala-update";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rtimush ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sc/scalingo/package.nix b/nixpkgs/pkgs/by-name/sc/scalingo/package.nix
new file mode 100644
index 000000000000..3b5682846987
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/scalingo/package.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "scalingo";
+  version = "1.29.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "cli";
+    rev = version;
+    hash = "sha256-xBf+LIwlpauJd/0xJIQdfEa0rxph3BJPuMY4+0s+Bb4=";
+  };
+
+  vendorHash = null;
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  postInstall = ''
+    rm $out/bin/dists
+  '';
+
+  meta = with lib; {
+    description = "Command line client for the Scalingo PaaS";
+    homepage = "https://doc.scalingo.com/platform/cli/start";
+    changelog = "https://github.com/Scalingo/cli/blob/master/CHANGELOG.md";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ cimm ];
+    platforms = with lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sc/scd2html/package.nix b/nixpkgs/pkgs/by-name/sc/scd2html/package.nix
new file mode 100644
index 000000000000..17cd4f211685
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/scd2html/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, scdoc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scd2html";
+  version = "1.0.0";
+
+  src = fetchFromSourcehut {
+    owner = "~bitfehler";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-oZSHv5n/WOrvy77tC94Z8pYugLpHkcv7U1PrzR+8fHM=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    scdoc
+  ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "LDFLAGS+=-static" "LDFLAGS+="
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "scd2html generates HTML from scdoc source files";
+    homepage = "https://git.sr.ht/~bitfehler/scd2html";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ianmjones ];
+    platforms = platforms.linux;
+    mainProgram = "scd2html";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sc/scdoc/package.nix b/nixpkgs/pkgs/by-name/sc/scdoc/package.nix
new file mode 100644
index 000000000000..3d8d759a769a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/scdoc/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, buildPackages
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "scdoc";
+  version = "1.11.2-unstable-2023-03-08";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "scdoc";
+    rev = "afeda241f3f9b2c27e461f32d9c2a704ab82ef61";
+    hash = "sha256-jIYygjUXP/6o5d9drlZjdr25KjEQx8oy4TaQwQEu8fM=";
+  };
+
+  outputs = [ "out" "man" "dev" ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "LDFLAGS+=-static" "LDFLAGS+="
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    "HOST_SCDOC=${lib.getExe buildPackages.scdoc}"
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "A simple man page generator written in C99 for POSIX systems";
+    homepage = "https://git.sr.ht/~sircmpwn/scdoc";
+    changelog = "https://git.sr.ht/~sircmpwn/scdoc/refs/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    mainProgram = "scdoc";
+    maintainers = with lib.maintainers; [ primeos AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/sc/scimark/package.nix b/nixpkgs/pkgs/by-name/sc/scimark/package.nix
new file mode 100644
index 000000000000..c9a88e6d2b59
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/scimark/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "scimark";
+  version = "4c";
+
+  src = fetchurl {
+    url = "https://math.nist.gov/scimark2/scimark${finalAttrs.version}.zip";
+    hash = "sha256-kcg5vKYp0B7+bC/CmFMO/tMwxf9q6nvuFv0vRSy3MbE=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  dontConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 scimark4 -t $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://math.nist.gov/scimark2/index.html";
+    description = "Scientific and numerical computing benchmark (ANSI C version)";
+    downloadPage = "https://math.nist.gov/scimark2/download_c.html";
+    license = lib.licenses.publicDomain;
+    mainProgram = "scimark4";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
+  };
+})
+# TODO [ AndersonTorres ]: Java version
diff --git a/nixpkgs/pkgs/by-name/sc/screentest/package.nix b/nixpkgs/pkgs/by-name/sc/screentest/package.nix
new file mode 100644
index 000000000000..d64f3300256f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sc/screentest/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, intltool
+, pkg-config
+, gtk2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "screentest";
+  version = "unstable-2021-05-10";
+
+  src = fetchFromGitHub {
+    owner = "TobiX";
+    repo = "screentest";
+    rev = "780e6cbbbbd6ba93e246e7747fe593b40c4e2747";
+    hash = "sha256-TJ47c77vQ/aRBJ2uEiFLuAR4dd4CMEo+iAAx0HCFbmA=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    pkg-config
+    gtk2 # for autoconf macros
+  ];
+
+  buildInputs = [
+    gtk2
+  ];
+
+  meta = with lib; {
+    description = "A simple screen testing tool";
+    homepage = "https://github.com/TobiX/screentest";
+    changelog = "https://github.com/TobiX/screentest/blob/${finalAttrs.src.rev}/NEWS";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ evils ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/se/searxng/package.nix b/nixpkgs/pkgs/by-name/se/searxng/package.nix
new file mode 100644
index 000000000000..db5c9f6b3419
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/se/searxng/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
+  pname = "searxng";
+  version = "unstable-2023-10-01";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "d56b31d67473e0970bc457469b0cbec2e35f8b10";
+    hash = "sha256-/lMjL2dl7UVYRjafFKmV3XsIH6QehUWCozCuBuxFgpQ=";
+  };
+
+  postPatch = ''
+    sed -i 's/==.*$//' requirements.txt
+  '';
+
+  preBuild =
+    let
+      versionString = lib.concatStringsSep "." (builtins.tail (lib.splitString "-" version));
+      commitAbbrev = builtins.substring 0 8 src.rev;
+    in
+    ''
+      export SEARX_DEBUG="true";
+
+      cat > searx/version_frozen.py <<EOF
+      VERSION_STRING="${versionString}+${commitAbbrev}"
+      VERSION_TAG="${versionString}+${commitAbbrev}"
+      DOCKER_TAG="${versionString}-${commitAbbrev}"
+      GIT_URL="https://github.com/searxng/searxng"
+      GIT_BRANCH="master"
+      EOF
+    '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    babel
+    certifi
+    python-dateutil
+    fasttext-predict
+    flask
+    flask-babel
+    brotli
+    jinja2
+    lxml
+    pygments
+    pytomlpp
+    pyyaml
+    redis
+    uvloop
+    setproctitle
+    httpx
+    httpx-socks
+    markdown-it-py
+  ] ++ httpx.optional-dependencies.http2
+  ++ httpx-socks.optional-dependencies.asyncio;
+
+  # tests try to connect to network
+  doCheck = false;
+
+  postInstall = ''
+    # Create a symlink for easier access to static data
+    mkdir -p $out/share
+    ln -s ../${python3.sitePackages}/searx/static $out/share/
+
+    # copy config schema for the limiter
+    cp searx/botdetection/limiter.toml $out/${python3.sitePackages}/searx/botdetection/limiter.toml
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/searxng/searxng";
+    description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/se/serial-unit-testing/package.nix b/nixpkgs/pkgs/by-name/se/serial-unit-testing/package.nix
new file mode 100644
index 000000000000..dd45dc760cf7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/se/serial-unit-testing/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, udev
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "serial-unit-testing";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "markatk";
+    repo = "serial-unit-testing";
+    rev = "v${version}";
+    hash = "sha256-SLwTwEQdwbus9RFskFjU8m4fS9Pnp8HsgnKkBvTqmSI=";
+  };
+
+  cargoHash = "sha256-PoV2v0p0L3CTtC9VMAx2Z/ZsSAIFi2gh2TtOp64S6ZQ=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    udev
+  ];
+
+  # tests require a serial port
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automate testing of serial communication with any serial port device";
+    homepage = "https://github.com/markatk/serial-unit-testing";
+    changelog = "https://github.com/markatk/serial-unit-testing/blob/v${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rudolfvesely ];
+    mainProgram = "sut";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sh/shepherd/package.nix b/nixpkgs/pkgs/by-name/sh/shepherd/package.nix
new file mode 100644
index 000000000000..4cd45aaea0b3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sh/shepherd/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+}:
+
+stdenv.mkDerivation rec {
+  pname = "shepherd";
+  version = "1.16.0";
+
+  src = fetchFromGitHub {
+    owner = "NerdWalletOSS";
+    repo = "shepherd";
+    rev = "v${version}";
+    hash = "sha256-LY8Vde4YpGuKnQ5UnSOpsQDY7AOyZRziUrfZb5dRiX4=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-tJXJ8ePr5ArAV+0JcuJsTo/B2PUcgsXfZrSDCpna/9k=";
+  };
+
+  nativeBuildInputs  = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/@nerdwallet/shepherd"
+    cp -r . "$out/lib/node_modules/@nerdwallet/shepherd"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/shepherd" \
+      --add-flags "$out/lib/node_modules/@nerdwallet/shepherd/lib/cli.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/NerdWalletOSS/shepherd/blob/${src.rev}/CHANGELOG.md";
+    description = "A utility for applying code changes across many repositories";
+    homepage = "https://github.com/NerdWalletOSS/shepherd";
+    license = lib.licenses.asl20;
+    mainProgram = "shepherd";
+    maintainers = with lib.maintainers; [ dbirks ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix b/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix
new file mode 100644
index 000000000000..ac7a6ec1f18f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, dart-sass
+, git
+}:
+
+buildGoModule rec {
+  pname = "shopware-cli";
+  version = "0.3.6";
+  src = fetchFromGitHub {
+    repo = "shopware-cli";
+    owner = "FriendsOfShopware";
+    rev = version;
+    hash = "sha256-3Js44cLS6GLI6wFuT2wxgwyMF3beXaULVeaejfxxtA0=";
+  };
+
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
+  nativeCheckInputs = [ git dart-sass ];
+
+  vendorHash = "sha256-QZ/zU67oUW75T8DOzjQwmEAr6gjIg/6ZO4Vm/47Lc40=";
+
+  postInstall = ''
+    export HOME="$(mktemp -d)"
+    installShellCompletion --cmd shopware-cli \
+      --bash <($out/bin/shopware-cli completion bash) \
+      --zsh <($out/bin/shopware-cli completion zsh) \
+      --fish <($out/bin/shopware-cli completion fish)
+  '';
+
+  preFixup = ''
+    wrapProgram $out/bin/shopware-cli \
+      --prefix PATH : ${lib.makeBinPath [ dart-sass ]}
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X 'github.com/FriendsOfShopware/shopware-cli/cmd.version=${version}'"
+  ];
+
+  meta = with lib; {
+    description = "Command line tool for Shopware 6";
+    homepage = "https://github.com/FriendsOfShopware/shopware-cli";
+    changelog = "https://github.com/FriendsOfShopware/shopware-cli/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ shyim ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix b/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix
new file mode 100644
index 000000000000..0e1d3d8abcc4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, appimageTools
+, fetchurl
+}:
+
+let
+  pname = "simplex-chat-desktop";
+  version = "5.3.1";
+
+  src = fetchurl {
+    url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-x86_64.AppImage";
+    hash = "sha256-vykdi7SXKKsjYE/yixGrKQoWuUIOAjofLUn/fsdmLMc=";
+  };
+
+  appimageContents = appimageTools.extract {
+    inherit pname version src;
+  };
+in appimageTools.wrapType2 {
+    inherit pname version src;
+
+    extraPkgs = pkgs: with pkgs; [
+      makeWrapper
+    ];
+
+    extraBwrapArgs = [
+      "--setenv _JAVA_AWT_WM_NONREPARENTING 1"
+    ];
+
+    extraInstallCommands = ''
+      mv $out/bin/${pname}-${version} $out/bin/${pname}
+
+      install --mode=444 -D ${appimageContents}/chat.simplex.app.desktop --target-directory=$out/share/applications
+      substituteInPlace $out/share/applications/chat.simplex.app.desktop \
+        --replace 'Exec=simplex' 'Exec=${pname}'
+      cp -r ${appimageContents}/usr/share/icons $out/share
+    '';
+
+  meta = with lib; {
+    description = "Desktop application for SimpleX Chat";
+    homepage = "https://simplex.chat";
+    changelog = "https://github.com/simplex-chat/simplex-chat/releases/tag/v${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ yuu ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/si/sirius/package.nix b/nixpkgs/pkgs/by-name/si/sirius/package.nix
new file mode 100644
index 000000000000..2af3c28de922
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/si/sirius/package.nix
@@ -0,0 +1,118 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, mpi
+, mpiCheckPhaseHook
+, openssh
+, gfortran
+, blas
+, lapack
+, gsl
+, libxc
+, hdf5
+, spglib
+, spfft
+, spla
+, costa
+, scalapack
+, boost
+, eigen
+, libvdwxc
+, llvmPackages
+, gpuBackend ? "none"
+, cudaPackages
+, rocmPackages
+}:
+
+assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
+
+stdenv.mkDerivation rec {
+  pname = "SIRIUS";
+  version = "7.4.3";
+
+  src = fetchFromGitHub {
+    owner = "electronic-structure";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-s4rO+dePvtvn41wxCvbqgQGrEckWmfng7sPX2M8OPB0=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/gpu/acc_blas_api.hpp \
+      --replace '#include <rocblas.h>' '#include <rocblas/rocblas.h>'
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+    pkg-config
+  ];
+
+  buildInputs = [
+    blas
+    lapack
+    gsl
+    libxc
+    hdf5
+    spglib
+    spfft
+    spla
+    costa
+    scalapack
+    boost
+    eigen
+    libvdwxc
+  ]
+  ++ lib.optional (gpuBackend == "cuda") cudaPackages.cudatoolkit
+  ++ lib.optionals (gpuBackend == "rocm") [
+    rocmPackages.clr
+    rocmPackages.rocblas
+  ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
+  ;
+
+  propagatedBuildInputs = [ mpi ];
+
+  cmakeFlags = [
+    "-DUSE_SCALAPACK=ON"
+    "-DBUILD_TESTING=ON"
+    "-DUSE_VDWXC=ON"
+    "-DCREATE_FORTRAN_BINDINGS=ON"
+    "-DUSE_OPENMP=ON"
+    "-DBUILD_TESTING=ON"
+  ]
+  ++ lib.optionals (gpuBackend == "cuda") [
+    "-DUSE_CUDA=ON"
+    "-DCUDA_TOOLKIT_ROOT_DIR=${cudaPackages.cudatoolkit}"
+  ]
+  ++ lib.optionals (gpuBackend == "rocm") [
+    "-DUSE_ROCM=ON"
+    "-DHIP_ROOT_DIR=${rocmPackages.clr}"
+  ];
+
+  doCheck = true;
+
+  # Can not run parallel checks generally as it requires exactly multiples of 4 MPI ranks
+  checkPhase = ''
+    runHook preCheck
+
+    ctest --output-on-failure --label-exclude integration_test
+    ctest --output-on-failure -L cpu_serial
+
+    runHook postCheck
+  '';
+
+  nativeCheckInputs = [
+    mpiCheckPhaseHook
+    openssh
+  ];
+
+  meta = with lib; {
+    description = "Domain specific library for electronic structure calculations";
+    homepage = "https://github.com/electronic-structure/SIRIUS";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sl/sleek-grub-theme/package.nix b/nixpkgs/pkgs/by-name/sl/sleek-grub-theme/package.nix
new file mode 100644
index 000000000000..efeb01e4d812
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sl/sleek-grub-theme/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, withBanner ? "Grub Bootloader" # use override to specify your own banner text
+, withStyle ? "white" # use override to specify one of "dark" / "orange" / "bigSur"
+}:
+
+assert builtins.any (s: withStyle == s) ["white" "dark" "orange" "bigSur"];
+
+stdenv.mkDerivation {
+  pname = "sleek-grub-theme";
+  version = "unstable-2022-06-04";
+
+  src = fetchFromGitHub ({
+    owner = "sandesh236";
+    repo = "sleek--themes";
+    rev = "981326a8e35985dc23f1b066fdbe66ff09df2371";
+    hash = "sha256-yD4JuoFGTXE/aI76EtP4rEWCc5UdFGi7Ojys6Yp8Z58=";
+  });
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/
+
+    cp -r 'Sleek theme-${withStyle}'/sleek/* $out/
+    sed -i "s/Grub Bootloader/${withBanner}/" $out/theme.txt
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Grub bootloader themes, contains light/dark/orange/bigSur styles";
+    homepage = "https://github.com/sandesh236/sleek--themes";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ luochen1990 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sl/slurm-nm/package.nix b/nixpkgs/pkgs/by-name/sl/slurm-nm/package.nix
new file mode 100644
index 000000000000..5e9fa47127fc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sl/slurm-nm/package.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, meson
+, ncurses
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+  pname = "slurm-nm";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "mattthias";
+    repo = "slurm";
+    rev = "upstream/${version}";
+    hash = "sha256-w77SIXFctMwwNw9cQm0HQaEaMs/5NXQjn1LpvkpCCB8=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [ ncurses ];
+
+  meta = with lib; {
+    description = "A generic network load monitor";
+    homepage = "https://github.com/mattthias/slurm";
+    license = licenses.gpl2Plus;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ mikaelfangel ];
+    mainProgram = "slurm";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sm/smallwm/package.nix b/nixpkgs/pkgs/by-name/sm/smallwm/package.nix
new file mode 100644
index 000000000000..ceee59a326fa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sm/smallwm/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, doxygen
+, graphviz
+, libX11
+, libXrandr
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "smallwm";
+  version = "unstable-2020-02-28";
+
+  src = fetchFromGitHub {
+    owner = "adamnew123456";
+    repo = "SmallWM";
+    rev = "c2dc72afa87241bcf7e646630f4aae216ce78613";
+    hash = "sha256-6FPpw1HE0iV/ayl2NvVUApqUcwBElRLf9o216gPyEDM=";
+  };
+
+  nativeBuildInputs = [
+    doxygen
+    graphviz
+  ];
+
+  buildInputs = [
+    libX11
+    libXrandr
+  ];
+
+  strictDeps = true;
+
+  dontConfigure = true;
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  buildFlags = [ "all" "doc" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 $out/bin $out/share/doc/smallwm-${finalAttrs.version}
+    install -m755 bin/smallwm -t $out/bin
+    cp -r README.markdown doc/html doc/latex $out/share/doc/smallwm-${finalAttrs.version}
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A small X window manager, extended from tinywm";
+    homepage = "https://github.com/adamnew123456/SmallWM";
+    license = lib.licenses.bsd2;
+    mainProgram = "smallwm";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/so/sound-of-sorting/package.nix b/nixpkgs/pkgs/by-name/so/sound-of-sorting/package.nix
new file mode 100644
index 000000000000..c6cb6e6a1cf9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/so/sound-of-sorting/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, SDL2
+, wxGTK32
+, darwin
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sound-of-sorting";
+  version = "0.6.5-unstable-2022-10-12";
+
+  src = fetchFromGitHub {
+    owner = "bingmann";
+    repo = "sound-of-sorting";
+    rev = "5cfcaf752593c8cbcf52555dd22745599a7d8b1b";
+    hash = "sha256-cBrTvFoz6WZIsh5qPPiWxQ338Z0OfcIefiI8CZF6nn8=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    wxGTK32
+    SDL2
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Cocoa
+  ];
+
+  meta = {
+    description = "Audibilization and Visualization of Sorting Algorithms";
+    homepage = "https://panthema.net/2013/sound-of-sorting/";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "sound-of-sorting";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (SDL2.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/sp/spfft/package.nix b/nixpkgs/pkgs/by-name/sp/spfft/package.nix
new file mode 100644
index 000000000000..72ae473d14a5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sp/spfft/package.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fftw
+, cmake
+, mpi
+, gfortran
+, llvmPackages
+, gpuBackend ? "none"
+, cudaPackages
+, rocmPackages
+}:
+
+assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
+
+stdenv.mkDerivation rec {
+  pname = "SpFFT";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "eth-cscs";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-70fPbIYbW50CoMdRS93hZKSbMEIQvZGFNE+eiRvuw0o=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+  ];
+
+  buildInputs = [
+    fftw
+  ]
+  ++ lib.optional (gpuBackend == "cuda") cudaPackages.cudatoolkit
+  ++ lib.optionals (gpuBackend == "rocm") [
+    rocmPackages.clr
+    rocmPackages.rocfft
+    rocmPackages.hipfft
+  ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
+  ;
+
+  propagatedBuildInputs = [ mpi ];
+
+  cmakeFlags = [
+    "-DSPFFT_OMP=ON"
+    "-DSPFFT_MPI=ON"
+    "-DSPFFT_SINGLE_PRECISION=OFF"
+    "-DSPFFT_FORTRAN=ON"
+    # Required due to broken CMake files
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ]
+  ++ lib.optional (gpuBackend == "cuda") "-DSPFFT_GPU_BACKEND=CUDA"
+  ++ lib.optionals (gpuBackend == "rocm") [
+    "-DSPFFT_GPU_BACKEND=ROCM"
+    "-DHIP_ROOT_DIR=${rocmPackages.clr}"
+  ];
+
+
+  meta = with lib; {
+    description = "Sparse 3D FFT library with MPI, OpenMP, CUDA and ROCm support";
+    homepage = "https://github.com/eth-cscs/SpFFT";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sheepforce ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix b/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix
new file mode 100644
index 000000000000..e79f4cb18bd9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, libX11
+, libXrandr
+}:
+
+stdenv.mkDerivation  {
+  pname = "spice-autorandr";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "seife";
+    repo = "spice-autorandr";
+    rev = "0f61dc921b638761ee106b5891384c6348820b26";
+    hash = "sha256-eBvzalWT3xI8+uNns0/ZyRes91ePpj0beKb8UBVqo0E=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libX11 libXrandr ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp $pname $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Automatically adjust the client window resolution in Linux KVM guests using the SPICE driver.";
+    longDescription = ''
+      Some desktop environments update the display resolution automatically,
+      this package is only useful when running without a DE or with a DE that
+      does not update display resolution automatically.
+
+      This package relies on `spice-vdagent` running an updating the xrandr modes. Enable
+      `spice-vdagent` by adding `services.spice-autorandr.enable = true` to your `configuration.nix`.
+    '';
+    homepage = "https://github.com/seife/spice-autorandr";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      dmytrokyrychuk
+    ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sp/spla/package.nix b/nixpkgs/pkgs/by-name/sp/spla/package.nix
new file mode 100644
index 000000000000..1f8abde4b723
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sp/spla/package.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, mpi
+, blas
+, gfortran
+, llvmPackages
+, gpuBackend ? "none"
+, cudaPackages
+, rocmPackages
+}:
+
+assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
+
+stdenv.mkDerivation rec {
+  pname = "spla";
+  version = "1.5.5";
+
+  src = fetchFromGitHub {
+    owner = "eth-cscs";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-71QpwTsRogH+6Bik9DKwezl9SqwoLxQt4SZ7zw5X6DE=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/gpu_util/gpu_blas_api.hpp \
+      --replace '#include <rocblas.h>' '#include <rocblas/rocblas.h>'
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+  ];
+
+  buildInputs = [
+    blas
+  ]
+  ++ lib.optional (gpuBackend == "cuda") cudaPackages.cudatoolkit
+  ++ lib.optionals (gpuBackend == "rocm") [
+    rocmPackages.clr
+    rocmPackages.rocblas
+  ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
+  ;
+
+  propagatedBuildInputs = [ mpi ];
+
+  cmakeFlags = [
+    "-DSPLA_OMP=ON"
+    "-DSPLA_FORTRAN=ON"
+    "-DSPLA_INSTALL=ON"
+    # Required due to broken CMake files
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ]
+  ++ lib.optional (gpuBackend == "cuda") "-DSPLA_GPU_BACKEND=CUDA"
+  ++ lib.optional (gpuBackend == "rocm") [ "-DSPLA_GPU_BACKEND=ROCM" ]
+  ;
+
+  meta = with lib; {
+    description = "Specialized Parallel Linear Algebra, providing distributed GEMM functionality for specific matrix distributions with optional GPU acceleration";
+    homepage = "https://github.com/eth-cscs/spla";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sheepforce ];#
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ss/sssnake/package.nix b/nixpkgs/pkgs/by-name/ss/sssnake/package.nix
new file mode 100644
index 000000000000..d50d624781b0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ss/sssnake/package.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  ncurses,
+}:
+stdenv.mkDerivation rec {
+  pname = "sssnake";
+  version = "0.3.2";
+  src = fetchFromGitHub {
+    owner = "angeljumbo";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-zkErOV6Az0kJdwyXzMCnVW1997zpAB79TBvf/41Igic=";
+  };
+  buildInputs = [ncurses];
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+  meta = with lib; {
+    description = "Cli snake game that plays itself";
+    homepage = "https://github.com/angeljumbo/sssnake";
+    license = with licenses; [mit];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [quantenzitrone];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/st/static-server/package.nix b/nixpkgs/pkgs/by-name/st/static-server/package.nix
new file mode 100644
index 000000000000..3a5f0748f968
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/st/static-server/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildGo121Module
+, fetchFromGitHub
+, curl
+, stdenv
+, testers
+, static-server
+, substituteAll
+}:
+
+buildGo121Module rec {
+  pname = "static-server";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "eliben";
+    repo = "static-server";
+    rev = "v${version}";
+    hash = "sha256-AZcNh/kF6IdAceA7qe+nhRlwU4yGh19av/S1Zt7iKIs=";
+  };
+
+  vendorHash = "sha256-1p3dCLLo+MTPxf/Y3zjxTagUi+tq7nZSj4ZB/aakJGY=";
+
+  patches = [
+    # patch out debug.ReadBuidlInfo since version information is not available with buildGoModule
+    (substituteAll {
+      src = ./version.patch;
+      inherit version;
+    })
+  ];
+
+  nativeCheckInputs = [
+    curl
+  ];
+
+  ldflags = [ "-s" "-w" ];
+
+  # tests sometimes fail with SIGQUIT on darwin
+  doCheck = !stdenv.isDarwin;
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = static-server;
+    };
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "A simple, zero-configuration HTTP server CLI for serving static files";
+    homepage = "https://github.com/eliben/static-server";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "static-server";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/st/static-server/version.patch b/nixpkgs/pkgs/by-name/st/static-server/version.patch
new file mode 100644
index 000000000000..c92d7e482ed4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/st/static-server/version.patch
@@ -0,0 +1,23 @@
+--- a/internal/server/server.go
++++ b/internal/server/server.go
+@@ -15,7 +15,6 @@ import (
+ 	"net"
+ 	"net/http"
+ 	"os"
+-	"runtime/debug"
+ 	"strings"
+ )
+ 
+@@ -50,11 +49,7 @@ func Main() int {
+ 	flags.Parse(os.Args[1:])
+ 
+ 	if *versionFlag {
+-		if buildInfo, ok := debug.ReadBuildInfo(); ok {
+-			fmt.Printf("%v %v\n", programName, buildInfo.Main.Version)
+-		} else {
+-			errorLog.Printf("version info unavailable! run 'go version -m %v'", programName)
+-		}
++		fmt.Printf("%v %v\n", programName, "@version@")
+ 		os.Exit(0)
+ 	}
+ 
diff --git a/nixpkgs/pkgs/by-name/st/steamguard-cli/package.nix b/nixpkgs/pkgs/by-name/st/steamguard-cli/package.nix
new file mode 100644
index 000000000000..d93cfa4b281c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/st/steamguard-cli/package.nix
@@ -0,0 +1,37 @@
+{ installShellFiles
+, lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "steamguard-cli";
+  version = "0.12.3";
+
+  src = fetchFromGitHub {
+    owner = "dyc3";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-qfyo63u6gBkGNxVBmFsz9YXs6duRU/VnFly40C13vI8=";
+  };
+
+  cargoHash = "sha256-B8/WCSHC905wDxYGLYVMT0QxgMiGR0/VMVzOlyTKPss=";
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd steamguard \
+      --bash <($out/bin/steamguard completion --shell bash) \
+      --fish <($out/bin/steamguard completion --shell fish) \
+      --zsh <($out/bin/steamguard completion --shell zsh) \
+  '';
+
+  meta = with lib; {
+    changelog = "https://github.com/dyc3/steamguard-cli/releases/tag/v${version}";
+    description = "A linux utility for generating 2FA codes for Steam and managing Steam trade confirmations.";
+    homepage = "https://github.com/dyc3/steamguard-cli";
+    license = with licenses; [ gpl3Only ];
+    mainProgram = "steamguard";
+    maintainers = with maintainers; [ surfaceflinger ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/su/sunpaper/package.nix b/nixpkgs/pkgs/by-name/su/sunpaper/package.nix
new file mode 100644
index 000000000000..54d8d3d871ac
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/su/sunpaper/package.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, sunwait
+, wallutils
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "sunpaper";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "hexive";
+    repo = "sunpaper";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-8s7SS79wCS0nRR7IpkshP5QWJqqKEeBu6EtFPDM+2cM=";
+  };
+
+  buildInputs = [
+    sunwait
+    wallutils
+  ];
+
+  postPatch = ''
+    substituteInPlace sunpaper.sh \
+      --replace "sunwait" "${lib.getExe sunwait}" \
+      --replace "setwallpaper" "${lib.getExe' wallutils "setwallpaper"}" \
+      --replace '$HOME/sunpaper/images/' "$out/share/sunpaper/images/"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 sunpaper.sh $out/bin/sunpaper
+    mkdir -p "$out/share/sunpaper/images"
+    cp -R images $out/share/sunpaper/
+
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/sunpaper --help > /dev/null
+  '';
+
+  meta = {
+    description = "A utility to change wallpaper based on local weather, sunrise and sunset times";
+    homepage = "https://github.com/hexive/sunpaper";
+    license = lib.licenses.asl20;
+    mainProgram = "sunpaper";
+    maintainers = with lib.maintainers; [ eclairevoyant jevy ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/su/supersonic/package.nix b/nixpkgs/pkgs/by-name/su/supersonic/package.nix
new file mode 100644
index 000000000000..db635f073a63
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/su/supersonic/package.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
+, pkg-config
+, desktopToDarwinBundle
+, xorg
+, wayland
+, wayland-protocols
+, libxkbcommon
+, libglvnd
+, mpv
+, darwin
+, waylandSupport ? false
+}:
+
+assert waylandSupport -> stdenv.isLinux;
+
+buildGoModule rec {
+  pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "dweymouth";
+    repo = "supersonic";
+    rev = "v${version}";
+    hash = "sha256-elDVkhRW1mTez56OKQJJ0m0VxP8/Bq+HcXf5iokeY5I=";
+  };
+
+  vendorHash = "sha256-z1sDlyc7HW+tYfG0Z4EjUCEM3Su4JjmWIKxU2MV6GOA=";
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    pkg-config
+  ] ++ lib.optionals stdenv.isDarwin [
+    desktopToDarwinBundle
+  ];
+
+  # go-glfw doesn't support both X11 and Wayland in single build
+  tags = lib.optionals waylandSupport [ "wayland" ];
+
+  buildInputs = [
+    libglvnd
+    mpv
+  ] ++ lib.optionals stdenv.isLinux [
+    xorg.libXxf86vm
+    xorg.libX11
+  ] ++ lib.optionals (stdenv.isLinux && !waylandSupport) [
+    xorg.libXrandr
+    xorg.libXinerama
+    xorg.libXcursor
+    xorg.libXi
+    xorg.libXext
+  ] ++ lib.optionals (stdenv.isLinux && waylandSupport) [
+    wayland
+    wayland-protocols
+    libxkbcommon
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.Cocoa
+    darwin.apple_sdk_11_0.frameworks.Kernel
+    darwin.apple_sdk_11_0.frameworks.OpenGL
+    darwin.apple_sdk_11_0.frameworks.UserNotifications
+    darwin.apple_sdk_11_0.frameworks.MediaPlayer
+  ];
+
+  postInstall = ''
+    for dimension in 128 256 512;do
+        dimensions=''${dimension}x''${dimension}
+        mkdir -p $out/share/icons/hicolor/$dimensions/apps
+        cp res/appicon-$dimension.png $out/share/icons/hicolor/$dimensions/apps/${meta.mainProgram}.png
+    done
+  '' + lib.optionalString waylandSupport ''
+    mv $out/bin/supersonic $out/bin/${meta.mainProgram}
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = meta.mainProgram;
+      exec = meta.mainProgram;
+      icon = meta.mainProgram;
+      desktopName = "Supersonic" + lib.optionalString waylandSupport " (Wayland)";
+      genericName = "Subsonic Client";
+      comment = meta.description;
+      type = "Application";
+      categories = [ "Audio" "AudioVideo" ];
+    })
+  ];
+
+  meta = with lib; {
+    mainProgram = "supersonic" + lib.optionalString waylandSupport "-wayland";
+    description = "A lightweight cross-platform desktop client for Subsonic music servers";
+    homepage = "https://github.com/dweymouth/supersonic";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ zane sochotnicky ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sw/swipe-guess/package.nix b/nixpkgs/pkgs/by-name/sw/swipe-guess/package.nix
new file mode 100644
index 000000000000..2f6d5f8fe9a5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sw/swipe-guess/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+}:
+
+stdenv.mkDerivation rec {
+  pname = "swipe-guess";
+  version = "0.2.1";
+
+  src = fetchFromSourcehut {
+    owner = "~earboxer";
+    repo = "swipeGuess";
+    rev = "v${version}";
+    hash = "sha256-8bPsnqjLeeZ7btTre9j1T93VWY9+FdBdJdxyvBVt34s=";
+  };
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    ${lib.getExe stdenv.cc} swipeGuess.c -o swipeGuess
+
+    runHook postBuild
+  '';
+
+  postInstall = ''
+    install -Dm555 swipeGuess -t $out/bin
+  '';
+
+  meta = {
+    description = "Completion plugin for touchscreen-keyboards on mobile devices";
+    homepage = "https://git.sr.ht/~earboxer/swipeGuess/";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "swipeGuess";
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sy/symbolicator/Cargo.lock b/nixpkgs/pkgs/by-name/sy/symbolicator/Cargo.lock
new file mode 100644
index 000000000000..1752195bb12a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sy/symbolicator/Cargo.lock
@@ -0,0 +1,5544 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+dependencies = [
+ "lazy_static",
+ "regex",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+dependencies = [
+ "backtrace",
+]
+
+[[package]]
+name = "apple-crash-report-parser"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc62d1d734597ddedd2ba0673780ee0a57b4de9a6e05f8731f2361d90b9c3e3"
+dependencies = [
+ "chrono",
+ "lazy_static",
+ "regex",
+ "uuid",
+]
+
+[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "ast_node"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "async-compression"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2"
+dependencies = [
+ "brotli",
+ "flate2",
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "aws-config"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc6b3804dca60326e07205179847f17a4fce45af3a1106939177ad41ac08a6de"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-sdk-sso",
+ "aws-sdk-sts",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-json",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "fastrand",
+ "hex",
+ "http",
+ "hyper",
+ "ring",
+ "time",
+ "tokio",
+ "tower",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-credential-types"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a66ac8ef5fa9cf01c2d999f39d16812e90ec1467bd382cbbb74ba23ea86201"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-types",
+ "fastrand",
+ "tokio",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-http"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e626370f9ba806ae4c439e49675fd871f5767b093075cdf4fef16cac42ba900"
+dependencies = [
+ "aws-credential-types",
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "http",
+ "http-body",
+ "lazy_static",
+ "percent-encoding",
+ "pin-project-lite",
+ "tracing",
+]
+
+[[package]]
+name = "aws-runtime"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ac5cf0ff19c1bca0cea7932e11b239d1025a45696a4f44f72ea86e2b8bdd07"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "fastrand",
+ "http",
+ "percent-encoding",
+ "tracing",
+ "uuid",
+]
+
+[[package]]
+name = "aws-sdk-s3"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c681fef332c3462634cd97fced8d1ac3cfdf790829bd7bfb4006cfba76712053"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-runtime",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-checksums",
+ "aws-smithy-client",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "bytes",
+ "http",
+ "http-body",
+ "once_cell",
+ "percent-encoding",
+ "regex",
+ "tokio-stream",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "aws-sdk-sso"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "903f888ff190e64f6f5c83fb0f8d54f9c20481f1dc26359bb8896f5d99908949"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "http",
+ "regex",
+ "tokio-stream",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sdk-sts"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47ad6bf01afc00423d781d464220bf69fb6a674ad6629cbbcb06d88cdc2be82"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-query",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "http",
+ "regex",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sigv4"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7b28f4910bb956b7ab320b62e98096402354eca976c587d1eeccd523d9bac03"
+dependencies = [
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "bytes",
+ "form_urlencoded",
+ "hex",
+ "hmac",
+ "http",
+ "once_cell",
+ "percent-encoding",
+ "regex",
+ "sha2",
+ "time",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-async"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cdb73f85528b9d19c23a496034ac53703955a59323d581c06aa27b4e4e247af"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "aws-smithy-checksums"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afb15946af1b8d3beeff53ad991d9bff68ac22426b6d40372b958a75fa61eaed"
+dependencies = [
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "bytes",
+ "crc32c",
+ "crc32fast",
+ "hex",
+ "http",
+ "http-body",
+ "md-5",
+ "pin-project-lite",
+ "sha1",
+ "sha2",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-client"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c27b2756264c82f830a91cb4d2d485b2d19ad5bea476d9a966e03d27f27ba59a"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-types",
+ "bytes",
+ "fastrand",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "lazy_static",
+ "pin-project-lite",
+ "rustls",
+ "tokio",
+ "tower",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-eventstream"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "850233feab37b591b7377fd52063aa37af615687f5896807abe7f49bd4e1d25b"
+dependencies = [
+ "aws-smithy-types",
+ "bytes",
+ "crc32fast",
+]
+
+[[package]]
+name = "aws-smithy-http"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54cdcf365d8eee60686885f750a34c190e513677db58bbc466c44c588abf4199"
+dependencies = [
+ "aws-smithy-eventstream",
+ "aws-smithy-types",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http",
+ "http-body",
+ "hyper",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "pin-utils",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-http-tower"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "822de399d0ce62829a69dfa8c5cd08efdbe61a7426b953e2268f8b8b52a607bd"
+dependencies = [
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "bytes",
+ "http",
+ "http-body",
+ "pin-project-lite",
+ "tower",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-json"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1e7ab8fa7ad10c193af7ae56d2420989e9f4758bf03601a342573333ea34f"
+dependencies = [
+ "aws-smithy-types",
+]
+
+[[package]]
+name = "aws-smithy-query"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28556a3902091c1f768a34f6c998028921bdab8d47d92586f363f14a4a32d047"
+dependencies = [
+ "aws-smithy-types",
+ "urlencoding",
+]
+
+[[package]]
+name = "aws-smithy-runtime"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "745e096b3553e7e0f40622aa04971ce52765af82bebdeeac53aa6fc82fe801e6"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "bytes",
+ "fastrand",
+ "http",
+ "http-body",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-runtime-api"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93d0ae0c9cfd57944e9711ea610b48a963fb174a53aabacc08c5794a594b1d02"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "bytes",
+ "http",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-types"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d90dbc8da2f6be461fa3c1906b20af8f79d14968fe47f2b7d29d086f62a51728"
+dependencies = [
+ "base64-simd",
+ "itoa",
+ "num-integer",
+ "ryu",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "aws-smithy-xml"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e01d2dedcdd8023043716cfeeb3c6c59f2d447fce365d8e194838891794b23b6"
+dependencies = [
+ "xmlparser",
+]
+
+[[package]]
+name = "aws-types"
+version = "0.56.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85aa0451bf8af1bf22a4f028d5d28054507a14be43cb8ac0597a8471fba9edfe"
+dependencies = [
+ "aws-credential-types",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "http",
+ "rustc_version 0.4.0",
+ "tracing",
+]
+
+[[package]]
+name = "axum"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "multer",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-server"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063"
+dependencies = [
+ "arc-swap",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
+dependencies = [
+ "outref",
+ "vsimd",
+]
+
+[[package]]
+name = "better_scoped_tls"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de"
+dependencies = [
+ "scoped-tls",
+]
+
+[[package]]
+name = "binary-merge"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597bb81c80a54b6a4381b23faba8d7774b144c94cbd1d6fe3f1329bd776554ab"
+
+[[package]]
+name = "bindgen"
+version = "0.68.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
+dependencies = [
+ "bitflags 2.4.1",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.38",
+ "which",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "breakpad-symbols"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d74d84f4b64599b9ce996914673a5b4d60181c3895c7eb26369459ccc41fb37d"
+dependencies = [
+ "async-trait",
+ "cachemap2",
+ "circular",
+ "debugid",
+ "futures-util",
+ "minidump-common",
+ "nom",
+ "range-map",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "brotli"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da74e2b81409b1b743f8f0c62cc6254afefb8b8e50bbfe3735550f7aeefa3448"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "brownstone"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5839ee4f953e811bfdcf223f509cb2c6a3e1447959b0bff459405575bc17f22"
+dependencies = [
+ "arrayvec",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytecount"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad152d03a2c813c80bb94fedbf3a3f02b28f793e39e7c214c8a0bcc196343de7"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "bytes-utils"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9"
+dependencies = [
+ "bytes",
+ "either",
+]
+
+[[package]]
+name = "bzip2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
+dependencies = [
+ "bzip2-sys",
+ "libc",
+]
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "cachemap2"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7bba2f68a9fefca870fed897de7c655f9d5c1eaf1cd9517db96c9a3861f648b"
+
+[[package]]
+name = "cadence"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f39286bc075b023101dccdb79456a1334221c768b8faede0c2aff7ed29a9482d"
+dependencies = [
+ "crossbeam-channel",
+]
+
+[[package]]
+name = "camino"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver 1.0.20",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "circular"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea"
+
+[[package]]
+name = "clang-sys"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "clap"
+version = "4.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+
+[[package]]
+name = "cmake"
+version = "0.1.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "console"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+dependencies = [
+ "encode_unicode 0.3.6",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "cpp_demangle"
+version = "0.4.1"
+source = "git+https://github.com/getsentry/cpp_demangle?branch=sentry-patches#88aad3dbf8964b002ab581d8d21f35b2c73895e9"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32c"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
+dependencies = [
+ "rustc_version 0.4.0",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossterm"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c"
+dependencies = [
+ "bitflags 1.3.2",
+ "crossterm_winapi",
+ "lazy_static",
+ "libc",
+ "mio 0.7.14",
+ "parking_lot 0.11.2",
+ "signal-hook",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0da8964ace4d3e4a044fd027919b2237000b24315a37c916f61809f1ff2140b9"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "custom_debug"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89e0ae2c2a42be29595d05c50e3ce6096c0698a97e021c3289790f0750cc8e2"
+dependencies = [
+ "custom_debug_derive",
+]
+
+[[package]]
+name = "custom_debug_derive"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08a9f3941234c9f62ceaa2782974827749de9b0a8a6487275a278da068e1baf7"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.109",
+ "synstructure",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+
+[[package]]
+name = "data-url"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "serde",
+ "uuid",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dmsort"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0bc8fbe9441c17c9f46f75dfe27fa1ddb6c68a461ccaed0481419219d4f10d3"
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "elementtree"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3efd4742acf458718a6456e0adf0b4d734d6b783e452bbf1ac36bf31f4085cb3"
+dependencies = [
+ "string_cache",
+]
+
+[[package]]
+name = "elsa"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "714f766f3556b44e7e4776ad133fcc3445a489517c25c704ace411bb14790194"
+dependencies = [
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encode_unicode"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "error-chain"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fallible-iterator"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "filetime"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "findshlibs"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
+dependencies = [
+ "cc",
+ "lazy_static",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "from_variant"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "swc_macros_common",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gcp_auth"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d3b20d3058763d26d88e6e7a49998841e5296735b00dbfb064ff7cb142933dd"
+dependencies = [
+ "async-trait",
+ "base64 0.21.4",
+ "dirs-next",
+ "hyper",
+ "hyper-rustls",
+ "ring",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+ "tokio",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "which",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+dependencies = [
+ "fallible-iterator 0.3.0",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "goblin"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134"
+dependencies = [
+ "log",
+ "plain",
+ "scroll",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 1.9.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "home"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi",
+]
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-range-header"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "humantime-serde"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c"
+dependencies = [
+ "humantime",
+ "serde",
+]
+
+[[package]]
+name = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.4.9",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "log",
+ "rustls",
+ "rustls-native-certs",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "indent_write"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3"
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.1",
+]
+
+[[package]]
+name = "inplace-vec-builder"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf64c2edc8226891a71f127587a2861b132d2b942310843814d5001d99a1d307"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "insta"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "pest",
+ "pest_derive",
+ "serde",
+ "similar",
+ "yaml-rust",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "ipconfig"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
+dependencies = [
+ "socket2 0.5.4",
+ "widestring",
+ "windows-sys 0.48.0",
+ "winreg",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+
+[[package]]
+name = "ipnetwork"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "is-macro"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e"
+dependencies = [
+ "Inflector",
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "jemalloc-sys"
+version = "0.5.4+5.3.0-patched"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "jemallocator"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc"
+dependencies = [
+ "jemalloc-sys",
+ "libc",
+]
+
+[[package]]
+name = "jobserver"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "joinery"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5"
+
+[[package]]
+name = "js-source-scopes"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8da074711c234172331e301df3f78c7a3988e6e8fab0a128a1fb9ff235f384d"
+dependencies = [
+ "indexmap 1.9.3",
+ "sourcemap",
+ "swc_common",
+ "swc_ecma_parser",
+ "swc_ecma_visit",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonwebtoken"
+version = "8.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+dependencies = [
+ "base64 0.21.4",
+ "pem",
+ "ring",
+ "serde",
+ "serde_json",
+ "simple_asn1",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "leb128"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+
+[[package]]
+name = "lexical"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
+dependencies = [
+ "lexical-core",
+]
+
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.149"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+
+[[package]]
+name = "lock_api"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "lru-cache"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "mach2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "matchit"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+
+[[package]]
+name = "maybe-owned"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4"
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minidump"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e20da5c0aab8b6d683d8a15ca70db468d3f6ddfe38269837c22c7bab7ba2627c"
+dependencies = [
+ "debugid",
+ "encoding_rs",
+ "memmap2",
+ "minidump-common",
+ "num-traits",
+ "range-map",
+ "scroll",
+ "thiserror",
+ "time",
+ "tracing",
+ "uuid",
+]
+
+[[package]]
+name = "minidump-common"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b23ab3a13de24f89fa3060579288f142ac4d138d37eec8a398ba59b0ca4d577"
+dependencies = [
+ "bitflags 2.4.1",
+ "debugid",
+ "num-derive",
+ "num-traits",
+ "range-map",
+ "scroll",
+ "smart-default",
+]
+
+[[package]]
+name = "minidump-processor"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e402963e1997711e1cc491a35fc2c4a4822d4eb95d939e0401c72cb9faacb19f"
+dependencies = [
+ "async-trait",
+ "breakpad-symbols",
+ "debugid",
+ "futures-util",
+ "memmap2",
+ "minidump",
+ "minidump-common",
+ "minidump-unwind",
+ "scroll",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+ "yaxpeax-x86",
+]
+
+[[package]]
+name = "minidump-unwind"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bfe80a00f234a23ae2e42336e0b7e40d6b1c330712777bb7e2c7bebb6c3bf80"
+dependencies = [
+ "async-trait",
+ "breakpad-symbols",
+ "minidump",
+ "minidump-common",
+ "scroll",
+ "tracing",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.7.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
+dependencies = [
+ "libc",
+ "log",
+ "miow",
+ "ntapi",
+ "winapi",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "miow"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "moka"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8017ec3548ffe7d4cef7ac0e12b044c01164a74c0f3119420faeaf13490ad8b"
+dependencies = [
+ "async-lock",
+ "async-trait",
+ "crossbeam-channel",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "futures-util",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "quanta",
+ "rustc_version 0.4.0",
+ "skeptic",
+ "smallvec",
+ "tagptr",
+ "thiserror",
+ "triomphe",
+ "uuid",
+]
+
+[[package]]
+name = "msvc-demangler"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfb67c6dd0fa9b00619c41c5700b6f92d5f418be49b45ddb9970fbd4569df3c8"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "multer"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
+dependencies = [
+ "bytes",
+ "encoding_rs",
+ "futures-util",
+ "http",
+ "httparse",
+ "log",
+ "memchr",
+ "mime",
+ "spin 0.9.8",
+ "version_check",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nom-supreme"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bd3ae6c901f1959588759ff51c95d24b491ecb9ff91aa9c2ef4acc5b1dcab27"
+dependencies = [
+ "brownstone",
+ "indent_write",
+ "joinery",
+ "memchr",
+ "nom",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "openssl"
+version = "0.10.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+dependencies = [
+ "bitflags 2.4.1",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "os_info"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
+dependencies = [
+ "log",
+ "serde",
+ "winapi",
+]
+
+[[package]]
+name = "outref"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core 0.8.6",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.8",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "pdb"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82040a392923abe6279c00ab4aff62d5250d1c8555dc780e4b02783a7aa74863"
+dependencies = [
+ "fallible-iterator 0.2.0",
+ "scroll",
+ "uuid",
+]
+
+[[package]]
+name = "pdb-addr2line"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4e89a9f2f40b2389ba6da0814c8044bf942bece03dffa1514f84e3b525f4f9a"
+dependencies = [
+ "bitflags 1.3.2",
+ "elsa",
+ "maybe-owned",
+ "pdb",
+ "range-collections",
+ "thiserror",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "pem"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+dependencies = [
+ "base64 0.13.1",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "pest"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "plain"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
+
+[[package]]
+name = "pmutil"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "prettytable-rs"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a"
+dependencies = [
+ "csv",
+ "encode_unicode 1.0.0",
+ "is-terminal",
+ "lazy_static",
+ "term",
+ "unicode-width",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "process-event"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "clap",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "symbolic-common",
+]
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "pulldown-cmark"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
+dependencies = [
+ "bitflags 1.3.2",
+ "memchr",
+ "unicase",
+]
+
+[[package]]
+name = "quanta"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "mach2",
+ "once_cell",
+ "raw-cpuid",
+ "wasi",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-collections"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61fdfd79629e2b44a1d34b4d227957174cb858e6b86ee45fad114edbcfc903ab"
+dependencies = [
+ "binary-merge",
+ "inplace-vec-builder",
+ "smallvec",
+]
+
+[[package]]
+name = "range-map"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12a5a2d6c7039059af621472a4389be1215a816df61aa4d531cfe85264aee95f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "raw-cpuid"
+version = "10.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "rayon"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall 0.2.16",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "reqwest"
+version = "0.11.18"
+source = "git+https://github.com/getsentry/reqwest?branch=restricted-connector#04ea4c720aca814c3f1de500b3e6fe3b0feeae4c"
+dependencies = [
+ "async-compression",
+ "base64 0.21.4",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-util",
+ "tower-service",
+ "trust-dns-resolver",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error",
+]
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin 0.5.2",
+ "untrusted",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver 1.0.20",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+dependencies = [
+ "base64 0.21.4",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "scroll"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da"
+dependencies = [
+ "scroll_derive",
+]
+
+[[package]]
+name = "scroll_derive"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "sentry"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0097a48cd1999d983909f07cb03b15241c5af29e5e679379efac1c06296abecc"
+dependencies = [
+ "httpdate",
+ "native-tls",
+ "reqwest",
+ "sentry-anyhow",
+ "sentry-backtrace",
+ "sentry-contexts",
+ "sentry-core",
+ "sentry-debug-images",
+ "sentry-panic",
+ "sentry-tower",
+ "sentry-tracing",
+ "tokio",
+ "ureq",
+]
+
+[[package]]
+name = "sentry-anyhow"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4fd76cd5c14676228996a31aa214adb049920b103bbc5b5a4114d05323995c5"
+dependencies = [
+ "anyhow",
+ "sentry-backtrace",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-backtrace"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a7b80fa1dd6830a348d38a8d3a9761179047757b7dca29aef82db0118b9670"
+dependencies = [
+ "backtrace",
+ "once_cell",
+ "regex",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-contexts"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7615dc588930f1fd2e721774f25844ae93add2dbe2d3c2f995ce5049af898147"
+dependencies = [
+ "hostname",
+ "libc",
+ "os_info",
+ "rustc_version 0.4.0",
+ "sentry-core",
+ "uname",
+]
+
+[[package]]
+name = "sentry-core"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f51264e4013ed9b16558cce43917b983fa38170de2ca480349ceb57d71d6053"
+dependencies = [
+ "once_cell",
+ "rand",
+ "sentry-types",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "sentry-debug-images"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fe6180fa564d40bb942c9f0084ffb5de691c7357ead6a2b7a3154fae9e401dd"
+dependencies = [
+ "findshlibs",
+ "once_cell",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-panic"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "323160213bba549f9737317b152af116af35c0410f4468772ee9b606d3d6e0fa"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-tower"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ffe3ab7bf7f65c9f8ccd20aa136ce5b2140aa6d6a11339e823cd43a7d694a9e"
+dependencies = [
+ "http",
+ "pin-project",
+ "sentry-core",
+ "tower-layer",
+ "tower-service",
+ "url",
+]
+
+[[package]]
+name = "sentry-tracing"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38033822128e73f7b6ca74c1631cef8868890c6cb4008a291cf73530f87b4eac"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-core",
+ "tracing-core",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "sentry-types"
+version = "0.31.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e663b3eb62ddfc023c9cf5432daf5f1a4f6acb1df4d78dd80b740b32dd1a740"
+dependencies = [
+ "debugid",
+ "hex",
+ "rand",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.189"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.189"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_path_to_error"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+dependencies = [
+ "indexmap 2.0.2",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
+name = "signal-hook"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729"
+dependencies = [
+ "libc",
+ "mio 0.7.14",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
+[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "skeptic"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
+dependencies = [
+ "bytecount",
+ "cargo_metadata",
+ "error-chain",
+ "glob",
+ "pulldown-cmark",
+ "tempfile",
+ "walkdir",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+
+[[package]]
+name = "smart-default"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "static_assertions",
+ "version_check",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "sourcemap"
+version = "6.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "libc",
+ "psm",
+ "winapi",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "phf_shared",
+ "precomputed-hash",
+ "serde",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "string_enum"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "swc_atoms"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f54563d7dcba626d4acfe14ed12def7ecc28e004debe3ecd2c3ee07cc47e449"
+dependencies = [
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "string_cache",
+ "string_cache_codegen",
+ "triomphe",
+]
+
+[[package]]
+name = "swc_common"
+version = "0.31.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88d00f960c667c59c133f30492f4d07f26242fcf988a066d3871e6d3d838d528"
+dependencies = [
+ "ast_node",
+ "better_scoped_tls",
+ "cfg-if",
+ "either",
+ "from_variant",
+ "new_debug_unreachable",
+ "num-bigint",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "siphasher",
+ "string_cache",
+ "swc_atoms",
+ "swc_eq_ignore_macros",
+ "swc_visit",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "swc_ecma_ast"
+version = "0.106.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebf4d6804b1da4146c4c0359d129e3dd43568d321f69d7953d9abbca4ded76ba"
+dependencies = [
+ "bitflags 2.4.1",
+ "is-macro",
+ "num-bigint",
+ "scoped-tls",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "unicode-id",
+]
+
+[[package]]
+name = "swc_ecma_parser"
+version = "0.136.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45d40421c607d7a48334f78a9b24a5cbde1f36250f9986746ec082208d68b39f"
+dependencies = [
+ "either",
+ "lexical",
+ "num-bigint",
+ "serde",
+ "smallvec",
+ "smartstring",
+ "stacker",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "tracing",
+ "typed-arena",
+]
+
+[[package]]
+name = "swc_ecma_visit"
+version = "0.92.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f61da6cac0ec3b7e62d367cfbd9e38e078a4601271891ad94f0dac5ff69f839"
+dependencies = [
+ "num-bigint",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_eq_ignore_macros"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "swc_macros_common"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "swc_visit"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3"
+dependencies = [
+ "either",
+ "swc_visit_macros",
+]
+
+[[package]]
+name = "swc_visit_macros"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99"
+dependencies = [
+ "Inflector",
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "symbolic"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a912286ceb858457147868b59790ba9296ae3b178b01de8d628da71c2ddb800"
+dependencies = [
+ "symbolic-cfi",
+ "symbolic-common",
+ "symbolic-debuginfo",
+ "symbolic-demangle",
+ "symbolic-il2cpp",
+ "symbolic-ppdb",
+ "symbolic-sourcemapcache",
+ "symbolic-symcache",
+]
+
+[[package]]
+name = "symbolic-cfi"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cdfebccc9e4b18af8203440bdffacba82975b07c7736568e89b05ab703330e2"
+dependencies = [
+ "symbolic-common",
+ "symbolic-debuginfo",
+ "thiserror",
+]
+
+[[package]]
+name = "symbolic-common"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fac08504d60cf5bdffeb8a6a028f1a4868a5da1098bb19eb46239440039163fb"
+dependencies = [
+ "debugid",
+ "memmap2",
+ "serde",
+ "stable_deref_trait",
+ "uuid",
+]
+
+[[package]]
+name = "symbolic-debuginfo"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f197ae562da1dec76244875041cbd244e517bf6bc88a9537ae874c555b019c7"
+dependencies = [
+ "debugid",
+ "dmsort",
+ "elementtree",
+ "elsa",
+ "fallible-iterator 0.3.0",
+ "flate2",
+ "gimli",
+ "goblin",
+ "lazy_static",
+ "nom",
+ "nom-supreme",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "pdb-addr2line",
+ "regex",
+ "scroll",
+ "serde",
+ "serde_json",
+ "smallvec",
+ "symbolic-common",
+ "symbolic-ppdb",
+ "thiserror",
+ "wasmparser",
+ "zip",
+]
+
+[[package]]
+name = "symbolic-demangle"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b212728d4f6c527c1d50d6169e715f6e02d849811843c13e366d8ca6d0cf5c4"
+dependencies = [
+ "cc",
+ "cpp_demangle",
+ "msvc-demangler",
+ "rustc-demangle",
+ "symbolic-common",
+]
+
+[[package]]
+name = "symbolic-il2cpp"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed26a4b1f8891a17ce1962d2c38093431dce2741078f5e7d7efcd13741ca2ff6"
+dependencies = [
+ "indexmap 2.0.2",
+ "serde_json",
+ "symbolic-common",
+ "symbolic-debuginfo",
+]
+
+[[package]]
+name = "symbolic-ppdb"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13d6a54ddbea124f82a17564effd044078054f8bab037eb9fcdfee776d5bfbde"
+dependencies = [
+ "flate2",
+ "indexmap 1.9.3",
+ "serde",
+ "serde_json",
+ "symbolic-common",
+ "thiserror",
+ "uuid",
+ "watto",
+]
+
+[[package]]
+name = "symbolic-sourcemapcache"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf09a8b5eccc4a89664a1cdc1951a36b3ad6bc8d447c801aa9bf2b903d63cba"
+dependencies = [
+ "itertools",
+ "js-source-scopes",
+ "sourcemap",
+ "symbolic-common",
+ "thiserror",
+ "tracing",
+ "watto",
+]
+
+[[package]]
+name = "symbolic-symcache"
+version = "12.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea05762ece95fa2bd2b06b389e953fdf7392cf8cbab06314892df71f54815bc6"
+dependencies = [
+ "indexmap 2.0.2",
+ "symbolic-common",
+ "symbolic-debuginfo",
+ "symbolic-il2cpp",
+ "thiserror",
+ "tracing",
+ "watto",
+]
+
+[[package]]
+name = "symbolicator"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "axum",
+ "axum-server",
+ "clap",
+ "console",
+ "futures",
+ "hostname",
+ "insta",
+ "jemallocator",
+ "reqwest",
+ "sentry",
+ "serde",
+ "serde_json",
+ "symbolic",
+ "symbolicator-crash",
+ "symbolicator-js",
+ "symbolicator-native",
+ "symbolicator-service",
+ "symbolicator-sources",
+ "symbolicator-test",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-metrics",
+ "tokio-util",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+ "tracing-subscriber",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "symbolicator-crash"
+version = "23.10.1"
+dependencies = [
+ "bindgen",
+ "cmake",
+]
+
+[[package]]
+name = "symbolicator-js"
+version = "23.10.1"
+dependencies = [
+ "data-url",
+ "futures",
+ "humantime",
+ "insta",
+ "moka",
+ "once_cell",
+ "regex",
+ "reqwest",
+ "sentry",
+ "serde",
+ "serde_json",
+ "sha2",
+ "symbolic",
+ "symbolicator-service",
+ "symbolicator-sources",
+ "symbolicator-test",
+ "tempfile",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "symbolicator-native"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "apple-crash-report-parser",
+ "async-trait",
+ "chrono",
+ "futures",
+ "insta",
+ "minidump",
+ "minidump-processor",
+ "minidump-unwind",
+ "moka",
+ "once_cell",
+ "regex",
+ "sentry",
+ "serde",
+ "serde_json",
+ "symbolic",
+ "symbolicator-service",
+ "symbolicator-sources",
+ "symbolicator-test",
+ "tempfile",
+ "test-assembler",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "symbolicator-service"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "aws-config",
+ "aws-credential-types",
+ "aws-sdk-s3",
+ "aws-types",
+ "cadence",
+ "chrono",
+ "filetime",
+ "flate2",
+ "futures",
+ "gcp_auth",
+ "humantime",
+ "humantime-serde",
+ "idna 0.4.0",
+ "ipnetwork",
+ "jsonwebtoken",
+ "moka",
+ "once_cell",
+ "rand",
+ "reqwest",
+ "sentry",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sha-1",
+ "sha2",
+ "symbolic",
+ "symbolicator-sources",
+ "symbolicator-test",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "url",
+ "uuid",
+ "zip",
+ "zstd",
+]
+
+[[package]]
+name = "symbolicator-sources"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "aws-types",
+ "glob",
+ "insta",
+ "once_cell",
+ "serde",
+ "serde_yaml",
+ "symbolic",
+ "url",
+]
+
+[[package]]
+name = "symbolicator-stress"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "axum",
+ "clap",
+ "futures",
+ "humantime",
+ "sentry",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "symbolicator-js",
+ "symbolicator-native",
+ "symbolicator-service",
+ "symbolicator-test",
+ "tempfile",
+ "tokio",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "symbolicator-test"
+version = "23.10.1"
+dependencies = [
+ "axum",
+ "humantime",
+ "insta",
+ "regex",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "symbolicator-sources",
+ "tempfile",
+ "tokio",
+ "tower-http",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "symbolicli"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "clap",
+ "dirs",
+ "prettytable-rs",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "symbolic",
+ "symbolicator-js",
+ "symbolicator-native",
+ "symbolicator-service",
+ "symbolicator-sources",
+ "tempfile",
+ "tokio",
+ "toml",
+ "tracing",
+ "tracing-subscriber",
+ "url",
+]
+
+[[package]]
+name = "symsorter"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "clap",
+ "console",
+ "once_cell",
+ "rayon",
+ "regex",
+ "serde",
+ "serde_json",
+ "symbolic",
+ "walkdir",
+ "zip",
+ "zstd",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unicode-xid",
+]
+
+[[package]]
+name = "tagptr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
+
+[[package]]
+name = "tempfile"
+version = "3.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
+[[package]]
+name = "test-assembler"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a6da51de149453f5c43fa67d5e73cccd75b3c5727a38a2f18c5f3c47f2db582"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+dependencies = [
+ "deranged",
+ "itoa",
+ "libc",
+ "num_threads",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio 0.8.8",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2 0.5.4",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "tokio-metrics"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eace09241d62c98b7eeb1107d4c5c64ca3bd7da92e8c218c153ab3a78f9be112"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap 2.0.2",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+dependencies = [
+ "bitflags 2.4.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "httpdate",
+ "mime",
+ "mime_guess",
+ "percent-encoding",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "pin-project",
+ "tracing",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-serde"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+dependencies = [
+ "serde",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "time",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+ "tracing-serde",
+]
+
+[[package]]
+name = "triomphe"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "trust-dns-proto"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.3",
+ "ipnet",
+ "lazy_static",
+ "rand",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "lru-cache",
+ "parking_lot 0.12.1",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "trust-dns-proto",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "uname"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-id"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "ureq"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3"
+dependencies = [
+ "base64 0.21.4",
+ "log",
+ "native-tls",
+ "once_cell",
+ "url",
+]
+
+[[package]]
+name = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.4.0",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+dependencies = [
+ "getrandom",
+ "serde",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vsimd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+
+[[package]]
+name = "wasm-split"
+version = "23.10.1"
+dependencies = [
+ "anyhow",
+ "clap",
+ "hex",
+ "uuid",
+ "wasmbin",
+]
+
+[[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wasmbin"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13cb41ab290430997d8b30474677ba9924d4545f3bcddc8b318de8b8df274c52"
+dependencies = [
+ "custom_debug",
+ "leb128",
+ "once_cell",
+ "thiserror",
+ "wasmbin-derive",
+]
+
+[[package]]
+name = "wasmbin-derive"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d81164066a0c96c81c1faf881c8e1f055fd9e67bb6313b605c6c9a3dcf0ee0b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "synstructure",
+ "thiserror",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b"
+dependencies = [
+ "indexmap 1.9.3",
+ "url",
+]
+
+[[package]]
+name = "watto"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6746b5315e417144282a047ebb82260d45c92d09bf653fa9ec975e3809be942b"
+dependencies = [
+ "leb128",
+ "thiserror",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[package]]
+name = "widestring"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "winnow"
+version = "0.5.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "xmlparser"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yaxpeax-arch"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1ba5c2f163fa2f866c36750c6c931566c6d93231ae9410083b0738953b609d5"
+dependencies = [
+ "crossterm",
+ "num-traits",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "yaxpeax-x86"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "459ab06161ba99053d77dc66beb37ab4209da16cd01591dcc56e86643375cbde"
+dependencies = [
+ "cfg-if",
+ "num-traits",
+ "serde",
+ "serde_derive",
+ "yaxpeax-arch",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+
+[[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "byteorder",
+ "bzip2",
+ "crc32fast",
+ "crossbeam-utils",
+ "flate2",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
+dependencies = [
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.9+zstd.1.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
diff --git a/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix b/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix
new file mode 100644
index 000000000000..c744f572a59e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, bzip2
+, openssl
+, zstd
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "symbolicator";
+  version = "23.10.1";
+
+  src = fetchFromGitHub {
+    owner = "getsentry";
+    repo = "symbolicator";
+    rev = version;
+    hash = "sha256-G8ElLH6u07uJR2Jz05rM59tnVADaDQ768lK477NuWuM=";
+    fetchSubmodules = true;
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "cpp_demangle-0.4.1" = "sha256-9QopX2TOJc8bZ+UlSOFdjoe8NTJLVGrykyFL732tE3A=";
+      "reqwest-0.11.18" = "sha256-t6fs2bbBfgcspCrGfWIFCYbYZ7GPcBWI0dy68YdklOQ=";
+    };
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [
+    bzip2
+    openssl
+    zstd
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  env = {
+    SYMBOLICATOR_GIT_VERSION = src.rev;
+    SYMBOLICATOR_RELEASE = version;
+    ZSTD_SYS_USE_PKG_CONFIG = true;
+  };
+
+  # tests require network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Native Symbolication as a Service";
+    homepage = "https://getsentry.github.io/symbolicator/";
+    changelog = "https://github.com/getsentry/symbolicator/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "symbolicator";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sy/syncrclone/package.nix b/nixpkgs/pkgs/by-name/sy/syncrclone/package.nix
new file mode 100644
index 000000000000..b4a24b574608
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sy/syncrclone/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "syncrclone";
+  version = "unstable-2023-03-23";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "jwink3101";
+    repo = "syncrclone";
+    rev = "137c9c4cc737a383b23cd9a5a21bb079e6a8fc59";
+    hash = "sha256-v81hPeu5qnMG6Sb95D88jy5x/GO781bf7efCYjbOaxs=";
+  };
+
+  pythonImportsCheck = [
+    "syncrclone"
+  ];
+
+  meta = with lib; {
+    description = "Bidirectional sync tool for rclone";
+    homepage = "https://github.com/Jwink3101/syncrclone";
+    changelog = "https://github.com/Jwink3101/syncrclone/blob/${src.rev}/docs/changelog.md";
+    sourceProvenance = with sourceTypes; [ fromSource ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ prominentretail ];
+    mainProgram = "syncrclone";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sy/synthesia/package.nix b/nixpkgs/pkgs/by-name/sy/synthesia/package.nix
new file mode 100644
index 000000000000..44c48bb59b03
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sy/synthesia/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, fetchurl
+, stdenvNoCC
+, runtimeShell
+, copyDesktopItems
+, makeDesktopItem
+, wineWowPackages
+}:
+
+let
+  icon = fetchurl {
+    name = "synthesia.png";
+    url = "https://cdn.synthesia.app/images/headerIcon.png";
+    hash = "sha256-M9cQqHwwjko5pchdNtIMjYwd4joIvBphAYnpw73qYzM=";
+  };
+in
+stdenvNoCC.mkDerivation rec {
+  pname = "synthesia";
+  version = "10.9";
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      desktopName = "Synthesia";
+      comment = meta.description;
+      exec = pname;
+      icon = pname;
+      categories = [ "Game" "Audio" ];
+      startupWMClass = "synthesia.exe";
+    })
+  ];
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    wineWowPackages.stable
+  ];
+
+  src = fetchurl {
+    url = "https://cdn.synthesia.app/files/Synthesia-${version}-installer.exe";
+    hash = "sha256-BFTsbesfMqxY1731ss6S0w8BcUaoqjVrr62VeU1BfrU=";
+  };
+
+  dontUnpack = true;
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cat <<'EOF' > $out/bin/${pname}
+    #!${runtimeShell}
+    export PATH=${wineWowPackages.stable}/bin:$PATH
+    export WINEARCH=win64
+    export WINEPREFIX="''${SYNTHESIA_HOME:-"''${XDG_DATA_HOME:-"''${HOME}/.local/share"}/${pname}"}/wine"
+    export WINEDLLOVERRIDES="mscoree=" # disable mono
+    if [ ! -d "$WINEPREFIX" ] ; then
+      mkdir -p "$WINEPREFIX"
+      wine ${src} /S
+    fi
+    wine "$WINEPREFIX/drive_c/Program Files (x86)/Synthesia/Synthesia.exe"
+    EOF
+    chmod +x $out/bin/${pname}
+    install -Dm644 ${icon} $out/share/icons/hicolor/48x48/apps/${pname}.png
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A fun way to learn how to play the piano";
+    homepage = "https://synthesiagame.com/";
+    downloadPage = "https://synthesiagame.com/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ners ];
+    platforms = wineWowPackages.stable.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sy/systemctl-tui/package.nix b/nixpkgs/pkgs/by-name/sy/systemctl-tui/package.nix
new file mode 100644
index 000000000000..5da79686b5f8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sy/systemctl-tui/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, rustPlatform
+, fetchCrate
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "systemctl-tui";
+  version = "0.2.2";
+
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-q/LzehMspiqxQOgALh1smhmL1803xr4GzIw9t+jE6NM=";
+  };
+
+  cargoHash = "sha256-GNuWag8Y1aSkBMzXcHpwfVU80zmhusLIOrKtZSe/jI0=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.AppKit
+  ];
+
+  meta = with lib; {
+    description = "A simple TUI for interacting with systemd services and their logs";
+    homepage = "https://crates.io/crates/systemctl-tui";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siph ];
+    mainProgram = "systemctl-tui";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ta/taschenrechner/package.nix b/nixpkgs/pkgs/by-name/ta/taschenrechner/package.nix
new file mode 100644
index 000000000000..eeb2b841abff
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ta/taschenrechner/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "taschenrechner";
+  version = "1.3.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.fem-net.de";
+    owner = "mabl";
+    repo = "taschenrechner";
+    rev = version;
+    hash = "sha256-PF9VCdlgA4c4Qw8Ih3JT29/r2e7i162lVAbW1QSOlWo=";
+  };
+
+  cargoHash = "sha256-SFgStvpcqEwus1JBs5ZyMHO1UD0oWV7mvS6o4v5gIFc=";
+
+  meta = with lib; {
+    description = "A cli-calculator written in Rust";
+    homepage = "https://gitlab.fem-net.de/mabl/taschenrechner";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ netali ];
+    mainProgram = "taschenrechner";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tc/tcsh/package.nix b/nixpkgs/pkgs/by-name/tc/tcsh/package.nix
new file mode 100644
index 000000000000..4fa358fbb7c3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tc/tcsh/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, libxcrypt
+, ncurses
+, buildPackages
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tcsh";
+  version = "6.24.10";
+
+  src = fetchurl {
+    url = "mirror://tcsh/tcsh-${finalAttrs.version}.tar.gz";
+    hash = "sha256-E0dcD763QTnTPteTvwD/u7KsLcn7HURGekEHYKujZmQ=";
+  };
+
+  strictDeps = true;
+
+  depsBuildBuild = [
+    buildPackages.stdenv.cc
+  ];
+
+  buildInputs = [
+    libxcrypt
+    ncurses
+  ];
+
+  passthru.shellPath = "/bin/tcsh";
+
+  meta = {
+    homepage = "https://www.tcsh.org/";
+    description = "An enhanced version of the Berkeley UNIX C shell (csh)";
+    longDescription = ''
+      tcsh is an enhanced but completely compatible version of the Berkeley UNIX
+      C shell, csh. It is a command language interpreter usable both as an
+      interactive login shell and a shell script command processor.
+
+      It includes:
+      - command-line editor
+      - programmable word completion
+      - spelling correction
+      - history mechanism
+      - job control
+    '';
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/te/tecoc/package.nix b/nixpkgs/pkgs/by-name/te/tecoc/package.nix
new file mode 100644
index 000000000000..a5531b3aa874
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/te/tecoc/package.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, ncurses
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tecoc";
+  version = "unstable-2023-06-21";
+
+  src = fetchFromGitHub {
+    owner = "blakemcbride";
+    repo = "TECOC";
+    rev = "b4a96395a18c7e64ccaef0e25fdde3b7ef33ac4b";
+    hash = "sha256-KTOGsTtxJh2sneU2VoDNUHcL3m8zt+3rBZTDvK1n02A=";
+  };
+
+  buildInputs = [ ncurses ];
+
+  makefile = if stdenv.hostPlatform.isDarwin
+             then "makefile.osx"
+             else if stdenv.hostPlatform.isFreeBSD
+             then "makefile.bsd"
+             else if stdenv.hostPlatform.isOpenBSD
+             then "makefile.bsd"
+             else if stdenv.hostPlatform.isWindows
+             then "makefile.win"
+             else "makefile.linux"; # I think Linux is a safe default...
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "-C src/" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -d $out/bin $out/share/doc/tecoc $out/lib/teco/macros
+    install -m755 src/tecoc $out/bin
+    install -m644 src/aaout.txt doc/* $out/share/doc/tecoc
+    install -m644 lib/* lib2/* $out/lib/teco/macros
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    pushd $out/bin
+    ln -s tecoc Make
+    ln -s tecoc mung
+    ln -s tecoc teco
+    ln -s tecoc Inspect
+    popd
+  '';
+
+  passthru.updateScript = unstableGitUpdater {
+    url = finalAttrs.meta.homepage;
+  };
+
+  meta = {
+    homepage = "https://github.com/blakemcbride/TECOC";
+    description = "A clone of the good old TECO editor";
+    longDescription = ''
+      For those who don't know: TECO is the acronym of Tape Editor and COrrector
+      (because it was a paper tape edition tool in its debut days). Now the
+      acronym follows after Text Editor and Corrector, or Text Editor
+      Character-Oriented.
+
+      TECO is a character-oriented text editor, originally developed by Dan
+      Murphy at MIT circa 1962. It is also a Turing-complete imperative
+      interpreted programming language for text manipulation, done via
+      user-loaded sets of macros. In fact, the venerable Emacs was born as a set
+      of Editor MACroS for TECO.
+
+      TECOC is a portable C implementation of TECO-11.
+    '';
+    license = {
+      url = "https://github.com/blakemcbride/TECOC/blob/${finalAttrs.src.rev}/doc/readme-1st.txt";
+    };
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/te/textsnatcher/package.nix b/nixpkgs/pkgs/by-name/te/textsnatcher/package.nix
new file mode 100644
index 000000000000..21b75c31a37f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/te/textsnatcher/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, vala
+, wrapGAppsHook
+, pkg-config
+, pantheon
+, libhandy
+, libportal
+, glib
+, gtk3
+, desktop-file-utils
+, scrot
+, tesseract
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textsnatcher";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "RajSolai";
+    repo = "TextSnatcher";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-phqtPjwKB5BoCpL+cMeHvRLL76ZxQ5T74cpAsgN+/JM=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    desktop-file-utils
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    pantheon.granite
+    libhandy
+    libportal
+    gtk3
+    glib
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ scrot tesseract ]}
+    )
+  '';
+
+  meta = with lib; {
+    description = "Copy Text from Images with ease, Perform OCR operations in seconds";
+    homepage = "https://textsnatcher.rf.gd/";
+    changelog = "https://github.com/RajSolai/TextSnatcher/releases/tag/v${finalAttrs.version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ galaxy ];
+    mainProgram = "com.github.rajsolai.textsnatcher";
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/th/the-legend-of-edgar/package.nix b/nixpkgs/pkgs/by-name/th/the-legend-of-edgar/package.nix
new file mode 100644
index 000000000000..eab0b772336b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/th/the-legend-of-edgar/package.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, SDL2_ttf
+, gettext
+, libpng
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "the-legend-of-edgar";
+  version = "1.36-unstable-2023-07-11";
+
+  src = fetchFromGitHub {
+    owner = "riksweeney";
+    repo = "edgar";
+    rev = "8344b385b65e8226455c7e88bd5aca57caa3c520";
+    hash = "sha256-dOLKMsyQkVZ7gBiURfr/tFbu3xSqei8A/M2HSZgAFnI=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+    libpng
+    zlib
+  ];
+
+  dontConfigure = true;
+
+  makefile = "makefile";
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "BIN_DIR=${placeholder "out"}/bin/"
+  ];
+
+  hardeningDisable = [
+    "fortify"
+  ];
+
+  meta = {
+    homepage = "https://www.parallelrealities.co.uk/games/edgar";
+    description = "A 2D platform game with a persistent world";
+    longDescription = ''
+      When Edgar's father fails to return home after venturing out one dark and
+      stormy night, Edgar fears the worst: he has been captured by the evil
+      sorcerer who lives in a fortress beyond the forbidden swamp.
+
+      Donning his armour, Edgar sets off to rescue him, but his quest will not
+      be easy...
+
+      The Legend of Edgar is a platform game, not unlike those found on the
+      Amiga and SNES. Edgar must battle his way across the world, solving
+      puzzles and defeating powerful enemies to achieve his quest.
+    '';
+    license = lib.licenses.gpl1Plus;
+    mainProgram = "edgar";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/th/thud/package.nix b/nixpkgs/pkgs/by-name/th/thud/package.nix
new file mode 100644
index 000000000000..f007174df860
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/th/thud/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "thud";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "donovanglover";
+    repo = "thud";
+    rev = version;
+    hash = "sha256-3MxmVKs0huXPnL9mqDniaIarkAvJmwSOMii2ntXtOos=";
+  };
+
+  cargoHash = "sha256-Hk3HlcA253FAA9hw5p9W+Mvec84zLo7bEmM2/BbmjiM=";
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  postInstall = ''
+    install -Dm644 assets/thud.thumbnailer $out/share/thumbnailers/thud.thumbnailer
+    substituteInPlace $out/share/thumbnailers/thud.thumbnailer --replace "thud" "$out/bin/thud"
+
+    installManPage man/thud.1
+
+    installShellCompletion --cmd thud \
+      --bash <(cat completions/thud.bash) \
+      --fish <(cat completions/thud.fish) \
+      --zsh <(cat completions/_thud)
+  '';
+
+  meta = with lib; {
+    description = "Generate directory thumbnails for GTK-based file browsers from images inside them";
+    homepage = "https://github.com/donovanglover/thud";
+    license = licenses.mit;
+    maintainers = with maintainers; [ donovanglover ];
+    mainProgram = "thud";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ti/tilda/package.nix b/nixpkgs/pkgs/by-name/ti/tilda/package.nix
new file mode 100644
index 000000000000..031d3225a391
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ti/tilda/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, expat
+, gettext
+, gtk3
+, libconfuse
+, makeWrapper
+, pcre2
+, pkg-config
+, vte
+, nixosTests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tilda";
+  version = "1.5.4";
+
+  src = fetchFromGitHub {
+    owner = "lanoxx";
+    repo = "tilda";
+    rev = "tilda-${finalAttrs.version}";
+    hash = "sha256-uDx28jmjNUyzJbgTJiHbjI9U5mYb9bnfl/9AjbxNUWA=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    gettext
+    gtk3
+    libconfuse
+    pcre2
+    vte
+  ];
+
+  # ugly hack for xgettext to work during build
+  env.LD_LIBRARY_PATH = "${lib.getLib expat}/lib";
+
+  # The config locking scheme relies on the binary being called "tilda"
+  # (`pgrep -C tilda`), so a simple `wrapProgram` won't suffice:
+  postInstall = ''
+    mkdir $out/bin/wrapped
+    mv "$out/bin/tilda" "$out/bin/wrapped/tilda"
+    makeWrapper "$out/bin/wrapped/tilda" "$out/bin/tilda" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  passthru.tests.test = nixosTests.terminal-emulators.tilda;
+
+  meta = {
+    homepage = "https://github.com/lanoxx/tilda/";
+    description = "A Gtk based drop down terminal for Linux and Unix";
+    license = lib.licenses.gpl3Plus;
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ti/tinywm/package.nix b/nixpkgs/pkgs/by-name/ti/tinywm/package.nix
new file mode 100644
index 000000000000..03b6db11c565
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ti/tinywm/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tinywm";
+  version = "1.1-unstable-2014-04-22";
+
+  src = fetchFromGitHub {
+    owner = "mackstann";
+    repo = "tinywm";
+    rev = "9d05612f41fdb8bc359f1fd9cc930bf16315abb1";
+    hash = "sha256-q2DEMTxIp/nwTBTGEZMHEAqQs99iJwQgimHS0YQj+eg=";
+  };
+
+  buildInputs = [ libX11 ];
+
+  strictDeps = true;
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    $CC -Wall -pedantic -I${libX11}/include tinywm.c -L${libX11}/lib -lX11 -o tinywm
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 $out/bin $out/share/doc/tinywm-${finalAttrs.version}
+    install -m755 tinywm -t $out/bin/
+    # The annotated source code is a piece of documentation
+    install -m644 annotated.c README -t $out/share/doc/tinywm-${finalAttrs.version}
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "http://incise.org/tinywm.html";
+    description = "A tiny window manager for X11";
+    longDescription = ''
+      TinyWM is a tiny window manager that I created as an exercise in
+      minimalism. It is also maybe helpful in learning some of the very basics
+      of creating a window manager. It is only around 50 lines of C. There is
+      also a Python version using python-xlib.
+
+      It lets you do four basic things:
+
+      - Move windows interactively with Alt+Button1 drag (left mouse button)
+      - Resize windows interactively with Alt+Button3 drag (right mouse button)
+      - Raise windows with Alt+F1 (not high on usability I know, but I needed a
+        keybinding in there somewhere)
+      - Focus windows with the mouse pointer (X does this on its own)
+    '';
+    license = lib.licenses.publicDomain;
+    mainProgram = "tinywm";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/tk/tkdiff/189.patch b/nixpkgs/pkgs/by-name/tk/tkdiff/189.patch
new file mode 100644
index 000000000000..c638727d3bd4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tk/tkdiff/189.patch
@@ -0,0 +1,71 @@
+Index: tkdiff
+===================================================================
+diff --git a/tkdiff b/tkdiff
+--- a/tkdiff	(revision 188)
++++ b/tkdiff	(revision 189)
+@@ -111,7 +111,7 @@
+ }
+ 
+ # Determine the name of the temporary directory, the rc file name,
+-# and possible VPATH EnvVar, all of which are platform dependent.
++# NULLdev, and possible VPATH EnvVar, all of which are platform dependent.
+ #
+ # Much MAY likely be overridden by a preference in .tkdiffrc,
+ # EXCEPT (obviously) when no such file actually exists yet
+@@ -126,6 +126,9 @@
+             set opts(tmpdir) C:/temp
+         }
+ 
++        # Reserved filename which is actually a NULL device
++        set opts(NULLdev) "nul"
++
+         # Split up and store a VPATH if it exists
+         if {[info exists ::env(VPATH)]} {
+             set finfo(Vpath) [split $::env(VPATH) ";"]
+@@ -145,6 +148,9 @@
+             set opts(tmpdir) $::env(TMPDIR)
+         }  {set opts(tmpdir) /tmp }
+ 
++        # Reserved filename which is actually a NULL device (Unix-like platforms)
++        set opts(NULLdev) "/dev/null"
++
+         # Split up and store a VPATH if it exists
+         if {[info exists ::env(VPATH)]} {
+             set finfo(Vpath) [split $::env(VPATH) ":"]
+@@ -2106,7 +2112,7 @@
+ #           1  Failed   (PLUS a 'pushed' HARD-error message to the caller)
+ ###############################################################################
+ proc get-file {fn ndx {probe 0}} {
+-    global g finfo
++    global g opts finfo
+ 
+     # Ancestor files are stored into a slightly adjusted array element name 
+     #   N.B> 'ndx' AS PASSED *can* be an EXPRESSION (not just a number): resolve!
+@@ -2121,7 +2127,7 @@
+     } elseif {!$tildechk} {
+         # DO NOT REPORT non-existence if this attempt was ONLY a probe
+         if {$probe} { return 1 } { set MSG "File '$fn' does not exist" }
+-    } elseif {[file isfile $fn]} {
++    } elseif {[file isfile $fn] || $fn == $opts(NULLdev)} {
+         set finfo(${A}lbl,$ndx) [shortNm [set finfo(${A}pth,$ndx) "$fn"]]
+     } else { set MSG "'$fn' exists, but is not a file" }
+ 
+@@ -2857,7 +2863,7 @@
+ # Align various label decorations to the CURRENT input file pairing
+ ###############################################################################
+ proc alignDecor {pairnum} {
+-    global g w finfo
++    global g w opts finfo
+ 
+     # Establish if 3way mode is NOW active and what file indices are in use
+     set g(is3way) [info exists finfo(albl,$pairnum)]
+@@ -2874,7 +2880,8 @@
+             set finfo(lbl,$LR) $finfo(ulbl,$ndx($n))    ;# Override lbl display
+         } else {set finfo(lbl,$LR) $finfo(lbl,$ndx($n))}
+ 
+-        if {![info exists finfo(tmp,$ndx($n))]} {
++        if {![info exists finfo(tmp,$ndx($n))] \
++            && $finfo(pth,$ndx($n)) != $opts(NULLdev)} {
+             #   (N.B> Tip data will ALSO be used by report generation heading)
+             set    g(tooltip,${LR}Label) "{$finfo(pth,$ndx($n))\n"
+             append g(tooltip,${LR}Label) \
diff --git a/nixpkgs/pkgs/by-name/tk/tkdiff/package.nix b/nixpkgs/pkgs/by-name/tk/tkdiff/package.nix
new file mode 100644
index 000000000000..478ee4e29ff9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tk/tkdiff/package.nix
@@ -0,0 +1,43 @@
+{ diffutils, fetchzip, lib, makeBinaryWrapper, stdenv, tk }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "tkdiff";
+  version = "5.6";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/tkdiff/tkdiff-${builtins.replaceStrings ["."] ["-"] finalAttrs.version}.zip";
+    hash = "sha256-EpbIdjsejkkTaSpoZRM5AHz0r1Cio+YzRryK0BoghBk=";
+  };
+
+  # fix regression: allow /dev/null again. eg: "tkdiff /dev/null file"
+  # svn diff --git -r188:189 https://svn.code.sf.net/p/tkdiff/code/trunk
+  patches = [ ./189.patch ];
+
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin tkdiff
+    wrapProgram $out/bin/tkdiff \
+      --prefix PATH : ${lib.makeBinPath [ diffutils tk ]}
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A graphical front end to the diff program";
+    homepage = "https://tkdiff.sourceforge.io/";
+    license = lib.licenses.gpl2Plus;
+    longDescription = ''
+      TkDiff is a graphical front end to the diff program. It provides a
+      side-by-side view of the differences between two text files, along
+      with several innovative features such as diff bookmarks, a graphical
+      map of differences for quick navigation, and a facility for slicing
+      diff regions to achieve exactly the merge output desired.
+    '';
+    mainProgram = "tkdiff";
+    maintainers = with lib.maintainers; [ robert-manchester ];
+    platforms = tk.meta.platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/tm/tmuxifier/package.nix b/nixpkgs/pkgs/by-name/tm/tmuxifier/package.nix
new file mode 100644
index 000000000000..ef0be1687f43
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tm/tmuxifier/package.nix
@@ -0,0 +1,56 @@
+{ lib, stdenv, fetchFromGitHub, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  pname = "tmuxifier";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "jimeh";
+    repo = "tmuxifier";
+    rev = "v${version}";
+    hash = "sha256-7TvJnvtZEo5h45PcSy3tJN09UblswV0mQbTaKjgLyqw=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    sed -i "s@set -e@TMUXIFIER=$out\nTMUXIFIER_LAYOUT_PATH=\"\''${TMUXIFIER_LAYOUT_PATH:-\$HOME/.tmux-layouts}\"\nset -e@" \
+        bin/tmuxifier
+    sed -i "s@\$TMUXIFIER/lib/@\$TMUXIFIER/lib/tmuxifier/@g" \
+        bin/tmuxifier libexec/* lib/*
+    sed -i "s@\$TMUXIFIER/templates/@\$TMUXIFIER/share/tmuxifier/templates/@g; s@\$TMUXIFIER/init.@\$TMUXIFIER/share/tmuxifier/init/init.@g" \
+        libexec/*
+    sed -i "s@\$TMUXIFIER/completion/tmuxifier.bash@\$TMUXIFIER/share/bash-completion/completions/tmuxifier.bash@g; s@\$TMUXIFIER/completion/tmuxifier.zsh@\$TMUXIFIER/share/zsh/site-functions/_tmuxifier@g" \
+        init.sh
+    sed -i "s@\$TMUXIFIER/completion/tmuxifier.tcsh@\$TMUXIFIER/share/tmuxifier/completion/tmuxifier.tcsh@g" \
+        init.tcsh
+    sed -i "s@\$TMUXIFIER/completion/tmuxifier.fish@\$TMUXIFIER/share/fish/vendor_completions.d/tmuxifier.fish@g" \
+        init.fish
+
+    install -t $out/bin -Dm555 bin/tmuxifier
+    install -t $out/share/tmuxifier/init -Dm444 init.fish init.sh init.tcsh
+    install -t $out/share/tmuxifier/templates -Dm444 templates/*
+    install -t $out/lib/tmuxifier -Dm444 lib/*
+    cp -r libexec $out
+    installShellCompletion --cmd tmuxifier \
+        --bash completion/tmuxifier.bash \
+        --fish completion/tmuxifier.fish \
+        --zsh completion/tmuxifier.zsh
+    install -t $out/share/tmuxifier/completion -Dm444 completion/tmuxifier.tcsh
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Powerful session, window & pane management for Tmux";
+    homepage = "https://github.com/jimeh/tmuxifier";
+    license = licenses.mit;
+    mainProgram = "tmuxifier";
+    maintainers = with maintainers; [ wigust ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tp/tpm2-totp/package.nix b/nixpkgs/pkgs/by-name/tp/tpm2-totp/package.nix
new file mode 100644
index 000000000000..766c6e138af6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tp/tpm2-totp/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, tpm2-tss
+, autoreconfHook
+, autoconf-archive
+, pkg-config
+, qrencode
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tpm2-totp";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "tpm2-software";
+    repo = "tpm2-totp";
+    rev = "v${version}";
+    hash = "sha256-aeWhI2GQcWa0xAqlmHfcbCMg78UqcD6eanLlEVNVnRM=";
+  };
+
+  preConfigure = ''
+    echo '0.3.0' > VERSION
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    pkg-config
+  ];
+
+  buildInputs = [
+    tpm2-tss
+    qrencode
+  ];
+
+  meta = with lib; {
+    description = "Attest the trustworthiness of a device against a human using time-based one-time passwords";
+    homepage = "https://github.com/tpm2-software/tpm2-totp";
+    changelog = "https://github.com/tpm2-software/tpm2-totp/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.bsd3;
+    mainProgram = "tpm2-totp";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raitobezarius ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tr/tradingview/package.nix b/nixpkgs/pkgs/by-name/tr/tradingview/package.nix
new file mode 100644
index 000000000000..7268b4386568
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tr/tradingview/package.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, squashfsTools
+, makeBinaryWrapper
+, alsa-lib
+, atk
+, at-spi2-atk
+, cups
+, gtk3
+, libdrm
+, libsecret
+, libxkbcommon
+, mesa
+, pango
+, sqlite
+, systemd
+, wayland
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tradingview";
+  version = "2.6.1";
+  revision = "44";
+  src = fetchurl {
+    url = "https://api.snapcraft.io/api/v1/snaps/download/nJdITJ6ZJxdvfu8Ch7n5kH5P99ClzBYV_${revision}.snap";
+    hash = "sha512-Hd00TWjPskd0QDzpOSwQCuMw20nW4n1xxRkT1rA95pzbXtw7XFxrJdMWkzWDbucuokU2qR2b5tovAHAgw9E0tQ==";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeBinaryWrapper
+    squashfsTools
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    alsa-lib
+    atk
+    at-spi2-atk
+    cups
+    gtk3
+    libdrm
+    libsecret
+    libxkbcommon
+    mesa
+    pango
+    sqlite
+    systemd
+    wayland
+    xorg.libxcb
+    xorg.libX11
+    xorg.libXext
+  ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    unsquashfs $src
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -r squashfs-root/* $out
+
+    mkdir -p $out/share/applications
+    mv $out/meta/gui/tradingview.desktop $out/share/applications
+    substituteInPlace $out/share/applications/tradingview.desktop --replace \$\{SNAP} $out
+
+    mkdir $out/bin
+    makeBinaryWrapper $out/tradingview $out/bin/tradingview --prefix LD_LIBRARY_PATH : ${ lib.makeLibraryPath buildInputs }
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Charting platform for traders and investors";
+    homepage = "https://www.tradingview.com/desktop/";
+    changelog = "https://www.tradingview.com/support/solutions/43000673888/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ prominentretail ];
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "tradingview";
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/tr/tradingview/update.sh b/nixpkgs/pkgs/by-name/tr/tradingview/update.sh
new file mode 100644
index 000000000000..863521bfde92
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tr/tradingview/update.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq git gnused gnugrep
+
+#
+# Get latest version of TradingView from Snapcraft.
+#
+
+snap_info=($(
+  curl -s -H 'X-Ubuntu-Series: 16' \
+    'https://api.snapcraft.io/api/v1/snaps/details/tradingview' \
+  | jq --raw-output \
+    '.revision,.download_sha512,.version,.last_updated'
+))
+
+# "revision" is the actual version identifier; "version" is for human consumption.
+revision="${snap_info[0]}"
+sha512="${snap_info[1]}"
+sri=$(nix hash to-sri --type "sha512" $sha512)
+upstream_version="${snap_info[2]}"
+last_updated="${snap_info[3]}"
+
+echo "Latest release is $upstream_version from $last_updated."
+
+#
+# Read the current TradingView version.
+#
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+tradingview_nix="$nixpkgs/pkgs/applications/finance/tradingview/default.nix"
+current_nix_version=$(
+  grep 'version\s*=' "$tradingview_nix" \
+  | sed -Ene 's/.*"(.*)".*/\1/p'
+)
+
+echo "Current nix version: $current_nix_version"
+
+if [[ "$current_nix_version" = "$upstream_version" ]]; then
+  echo "TradingView is already up-to-date"
+  exit 0
+fi
+
+#
+# Find and replace.
+#
+
+echo "Updating from ${current_nix_version} to ${upstream_version}, released ${last_updated}"
+
+sed --regexp-extended \
+  -e 's/revision\s*=\s*"[0-9]+"\s*;/revision = "'"${revision}"'";/' \
+  -e 's/hash\s*=\s*"[^"]*"\s*;/hash = "'"${sri}"'";/' \
+  -e 's/version\s*=\s*".*"\s*;/version = "'"${upstream_version}"'";/' \
+  -i "$tradingview_nix"
+
+#
+# Attempt a build.
+#
+
+export NIXPKGS_ALLOW_UNFREE=1
+
+if ! nix-build -A tradingview "$nixpkgs"; then
+  echo "The updated TradingView failed to build."
+  exit 1
+fi
+
+#
+# Commit changes.
+#
+git add "$tradingview_nix"
+git commit -m "tradingview: ${current_nix_version} -> ${upstream_version}"
+
diff --git a/nixpkgs/pkgs/by-name/tr/trealla/package.nix b/nixpkgs/pkgs/by-name/tr/trealla/package.nix
new file mode 100644
index 000000000000..6aee9c1598b9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tr/trealla/package.nix
@@ -0,0 +1,96 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libffi
+, openssl
+, readline
+, valgrind
+, xxd
+, gitUpdater
+, checkLeaks ? false
+, enableFFI ? true
+, enableSSL ? true
+, enableThreads ? true
+, lineEditingLibrary ? "isocline"
+}:
+
+assert lib.elem lineEditingLibrary [ "isocline" "readline" ];
+stdenv.mkDerivation (finalAttrs: {
+  pname = "trealla";
+  version = "2.29.36";
+
+  src = fetchFromGitHub {
+    owner = "trealla-prolog";
+    repo = "trealla";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-tQp2DOBW71Wm1aQqspW9tuH8aM8ir+ilZiENdElB/+0=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '-I/usr/local/include' "" \
+      --replace '-L/usr/local/lib' "" \
+      --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
+  '';
+
+  nativeBuildInputs = [
+    xxd
+  ];
+
+  buildInputs =
+    lib.optional enableFFI libffi
+    ++ lib.optional enableSSL openssl
+    ++ lib.optional (lineEditingLibrary == "readline") readline;
+
+  nativeCheckInputs = lib.optionals finalAttrs.doCheck [ valgrind ];
+
+  strictDeps = true;
+
+  makeFlags = [
+    "GIT_VERSION=\"v${finalAttrs.version}\""
+  ]
+  ++ lib.optional (lineEditingLibrary == "isocline") "ISOCLINE=1"
+  ++ lib.optional (!enableFFI) "NOFFI=1"
+  ++ lib.optional (!enableSSL) "NOSSL=1"
+  ++ lib.optional enableThreads "THREADS=1";
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 -t $out/bin tpl
+    runHook postInstall
+  '';
+
+  doCheck = !valgrind.meta.broken;
+
+  checkFlags = [
+    "test"
+  ] ++ lib.optional checkLeaks "leaks";
+
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+  };
+
+  meta = {
+    homepage = "https://trealla-prolog.github.io/trealla/";
+    description = "A compact, efficient Prolog interpreter written in ANSI C";
+    longDescription = ''
+      Trealla is a compact, efficient Prolog interpreter with ISO Prolog
+      aspirations.
+      Trealla is not WAM-based. It uses tree-walking, structure-sharing and
+      deep-binding. Source is byte-code compiled to an AST that is interpreted
+      at runtime. The intent and continued aim of Trealla is to be a small,
+      easily ported, Prolog core.
+      The name Trealla comes from the Liaden Universe books by Lee & Miller
+      (where it doesn't seem to mean anything) and also a reference to the
+      Trealla region of Western Australia.
+    '';
+    changelog = "https://github.com/trealla-prolog/trealla/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ siraben AndersonTorres ];
+    mainProgram = "tpl";
+    platforms = lib.platforms.all;
+    broken = stdenv.isDarwin && stdenv.isx86_64;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix b/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix
new file mode 100644
index 000000000000..6c8b7055fc68
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config
+, openssl, libiconv, CoreServices, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "trunk-ng";
+  version = "0.17.10";
+
+  src = fetchFromGitHub {
+    owner = "ctron";
+    repo = "trunk";
+    rev = "v${version}";
+    hash = "sha256-F2g/GMxnS5r44i3NIJGOic9f+H5+JbFi3dqMqI6h6JQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = if stdenv.isDarwin
+    then [ libiconv CoreServices Security ]
+    else [ openssl ];
+
+  # requires network
+  checkFlags = [ "--skip=tools::tests::download_and_install_binaries" ];
+
+  cargoHash = "sha256-37nCqRTgbsg2cXu4xwYC/qfodPIxx97Qns8FQe9NroQ=";
+
+  meta = with lib; {
+    homepage = "https://github.com/ctron/trunk";
+    description = "Build, bundle & ship your Rust WASM application to the web";
+    maintainers = with maintainers; [ ctron ];
+    license = with licenses; [ asl20 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tu/tusc-sh/package.nix b/nixpkgs/pkgs/by-name/tu/tusc-sh/package.nix
new file mode 100644
index 000000000000..387b68f85222
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tu/tusc-sh/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, writeShellApplication
+, curl
+, coreutils
+, jq
+}:
+
+let
+  tusc = stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "tusc-sh";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "adhocore";
+    repo = "tusc.sh";
+    rev = finalAttrs.version;
+    hash = "sha256-9bTv6ih9N3nPtY5fioZvUCSvCHHB0+yVpxA++z8uGWY=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 tusc.sh -t $out/bin
+
+    runHook postInstall
+  '';
+
+});
+in
+writeShellApplication {
+  name = "tusc";
+  runtimeInputs = [ tusc curl coreutils jq ];
+  text = ''
+    tusc.sh "$@"
+  '';
+  meta = with lib; {
+    description = "Tus 1.0.0 client protocol implementation for bash";
+    homepage = "https://github.com/adhocore/tusc.sh";
+    changelog = "https://github.com/adhocore/tusc.sh/blob/${tusc.version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ happysalada ];
+    mainProgram = "tusc";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tu/tuxmux/package.nix b/nixpkgs/pkgs/by-name/tu/tuxmux/package.nix
new file mode 100644
index 000000000000..9714c63696ab
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tu/tuxmux/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, openssl
+, pkg-config
+, installShellFiles
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tuxmux";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "edeneast";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-QySDC/aEU9Fo0UbRUNvgBQLfESYzENGfS8Tl/ycn1YY=";
+  };
+
+  cargoHash = "sha256-MlLTaN+KMeF0A1hh0oujLYWqjwrbmoNzoRoXjeCUf7I=";
+
+  buildInputs = [ openssl ] ++ (lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]);
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion $releaseDir/../completions/tm.{bash,fish}
+    installShellCompletion --zsh $releaseDir/../completions/_tm
+
+    installManPage $releaseDir/../man/*
+  '';
+
+  meta = with lib; {
+    description = "Tmux session manager";
+    homepage = "https://github.com/edeneast/tuxmux";
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ edeneast ];
+    mainProgram = "tm";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tx/txr/package.nix b/nixpkgs/pkgs/by-name/tx/txr/package.nix
new file mode 100644
index 000000000000..1b7062d9ddcc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tx/txr/package.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, coreutils
+, libffi
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "txr";
+  version = "291";
+
+  src = fetchurl {
+    url = "https://www.kylheku.com/cgit/txr/snapshot/txr-${finalAttrs.version}.tar.bz2";
+    hash = "sha256-Btk3PanJa6hyoM+hfQq+EhIMaL2edyhfxx96Kpy+aaA=";
+  };
+
+  buildInputs = [ libffi ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  checkTarget = "tests";
+
+  postPatch = ''
+    substituteInPlace tests/017/realpath.tl --replace /usr/bin /bin
+    substituteInPlace tests/017/realpath.expected --replace /usr/bin /bin
+
+    substituteInPlace tests/018/process.tl --replace /usr/bin/env ${lib.getBin coreutils}/bin/env
+  '';
+
+  preCheck = let
+    disabledTests = lib.concatStringsSep " " [
+      # - tries to set sticky bits
+      "tests/018/chmod.tl"
+      # - warning: unbound function crypt
+      "tests/018/crypt.tl"
+    ];
+  in ''
+    rm ${disabledTests}
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/vim-plugins/txr/{syntax,ftdetect}
+
+    cp {tl,txr}.vim $out/share/vim-plugins/txr/syntax/
+
+    cat > $out/share/vim-plugins/txr/ftdetect/txr.vim <<EOF
+      au BufRead,BufNewFile *.txr set filetype=txr | set lisp
+      au BufRead,BufNewFile *.tl,*.tlo set filetype=tl | set lisp
+    EOF
+    mkdir -p $out/share/nvim
+    ln -s $out/share/vim-plugins/txr $out/share/nvim/site
+  '';
+
+  meta = {
+    homepage = "https://nongnu.org/txr";
+    description = "An Original, New Programming Language for Convenient Data Munging";
+    longDescription = ''
+      TXR is a general-purpose, multi-paradigm programming language. It
+      comprises two languages integrated into a single tool: a text scanning and
+      extraction language referred to as the TXR Pattern Language (sometimes
+      just "TXR"), and a general-purpose dialect of Lisp called TXR Lisp.
+
+      TXR can be used for everything from "one liner" data transformation tasks
+      at the command line, to data scanning and extracting scripts, to full
+      application development in a wide range of areas.
+    '';
+    changelog = "https://www.kylheku.com/cgit/txr/tree/RELNOTES?h=txr-${finalAttrs.version}";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ AndersonTorres dtzWill ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/uc/ucg/package.nix b/nixpkgs/pkgs/by-name/uc/ucg/package.nix
new file mode 100644
index 000000000000..99d1b90c43df
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/uc/ucg/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, callPackage
+, pkg-config
+, pcre
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ucg";
+  version = "unstable-2022-09-03";
+
+  src = fetchFromGitHub {
+    owner = "gvansickle";
+    repo = "ucg";
+    rev = "cbb185e8adad6546b7e1c5e9ca59a81f98dca49f";
+    hash = "sha256-Osdyxp8DoEjcr2wQLCPqOQ2zQf/0JWYxaDpZB02ACWo=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    pcre
+  ];
+
+  passthru.tests = {
+    simple = callPackage ./tests/simple.nix {
+      ucg = finalAttrs.finalPackage;
+    };
+  };
+
+  meta =  {
+    homepage = "https://gvansickle.github.io/ucg/";
+    description = "Grep-like tool for searching large bodies of source code";
+    longDescription = ''
+      UniversalCodeGrep (ucg) is an extremely fast grep-like tool specialized
+      for searching large bodies of source code. It is intended to be largely
+      command-line compatible with Ack, to some extent with ag, and where
+      appropriate with grep. Search patterns are specified as PCRE regexes.
+    '';
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "ucg";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+    broken = stdenv.isAarch64 || stdenv.isDarwin;
+  };
+})
+# TODO: report upstream
diff --git a/nixpkgs/pkgs/by-name/uc/ucg/tests/simple.nix b/nixpkgs/pkgs/by-name/uc/ucg/tests/simple.nix
new file mode 100644
index 000000000000..09910d0829da
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/uc/ucg/tests/simple.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenv
+, ucg
+}:
+
+stdenv.mkDerivation {
+  pname = "ucg-test";
+  inherit (ucg) version;
+
+  nativeBuildInputs = [ ucg ];
+
+  dontInstall = true;
+
+  buildCommand = ''
+    testFile=$(mktemp /tmp/ucg-test.XXXX)
+    echo -ne 'Lorem ipsum dolor sit amet\n2.7182818284590' > $testFile
+    ucg 'dolor' $testFile || { rm $testFile; exit -1; }
+    ucg --ignore-case 'lorem' $testFile || { rm $testFile; exit -1; }
+    ucg --word-regexp '2718' $testFile && { rm $testFile; exit -1; }
+    ucg 'pisum' $testFile && { rm $testFile; exit -1; }
+    rm $testFile
+    touch $out
+  '';
+
+  meta.timeout = 10;
+}
diff --git a/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix b/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix
new file mode 100644
index 000000000000..b1d4a6474e21
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix
@@ -0,0 +1,140 @@
+{ lib
+, stdenv
+, buildPackages
+, fetchurl
+, linuxHeaders
+, libiconvReal
+, extraConfig ? ""
+}:
+
+let
+  isCross = (stdenv.buildPlatform != stdenv.hostPlatform);
+  configParser = ''
+    function parseconfig {
+        set -x
+        while read LINE; do
+            NAME=`echo "$LINE" | cut -d \  -f 1`
+            OPTION=`echo "$LINE" | cut -d \  -f 2`
+
+            if test -z "$NAME"; then
+                continue
+            fi
+
+            echo "parseconfig: removing $NAME"
+            sed -i /^$NAME=/d .config
+
+            #if test "$OPTION" != n; then
+                echo "parseconfig: setting $NAME=$OPTION"
+                echo "$NAME=$OPTION" >> .config
+            #fi
+        done
+        set +x
+    }
+  '';
+
+  # UCLIBC_SUSV4_LEGACY defines 'tmpnam', needed for gcc libstdc++ builds.
+  nixConfig = ''
+    RUNTIME_PREFIX "/"
+    DEVEL_PREFIX "/"
+    UCLIBC_HAS_WCHAR y
+    UCLIBC_HAS_FTW y
+    UCLIBC_HAS_RPC y
+    DO_C99_MATH y
+    UCLIBC_HAS_PROGRAM_INVOCATION_NAME y
+    UCLIBC_HAS_RESOLVER_SUPPORT y
+    UCLIBC_SUSV4_LEGACY y
+    UCLIBC_HAS_THREADS_NATIVE y
+    KERNEL_HEADERS "${linuxHeaders}/include"
+  '' + lib.optionalString (stdenv.hostPlatform.gcc.float or "" == "soft") ''
+    UCLIBC_HAS_FPU n
+  '' + lib.optionalString (stdenv.isAarch32 && isCross) ''
+    CONFIG_ARM_EABI y
+    ARCH_WANTS_BIG_ENDIAN n
+    ARCH_BIG_ENDIAN n
+    ARCH_WANTS_LITTLE_ENDIAN y
+    ARCH_LITTLE_ENDIAN y
+    UCLIBC_HAS_FPU n
+  '';
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "uclibc-ng";
+  version = "1.0.44";
+
+  src = fetchurl {
+    url = "https://downloads.uclibc-ng.org/releases/${finalAttrs.version}/uClibc-ng-${finalAttrs.version}.tar.xz";
+    sha256 = "sha256-ffnZh5VYJzgvHCQA2lE0Vr7Ltvhovf03c3Jl8cvuyZQ=";
+  };
+
+  # 'ftw' needed to build acl, a coreutils dependency
+  configurePhase = ''
+    make defconfig
+    ${configParser}
+    cat << EOF | parseconfig
+    ${nixConfig}
+    ${extraConfig}
+    ${stdenv.hostPlatform.uclibc.extraConfig or ""}
+    EOF
+    ( set +o pipefail; yes "" | make oldconfig )
+  '';
+
+  hardeningDisable = [ "stackprotector" ];
+
+  # Cross stripping hurts.
+  dontStrip = isCross;
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  makeFlags = [
+    "ARCH=${stdenv.hostPlatform.linuxArch}"
+    "TARGET_ARCH=${stdenv.hostPlatform.linuxArch}"
+    "VERBOSE=1"
+  ] ++ lib.optionals (isCross) [
+    "CROSS=${stdenv.cc.targetPrefix}"
+  ];
+
+  # `make libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrwlock.h`:
+  # error: bits/sysnum.h: No such file or directory
+  enableParallelBuilding = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    make $makeFlags PREFIX=$out VERBOSE=1 install
+    (cd $out/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .)
+    # libpthread.so may not exist, so I do || true
+    sed -i s@/lib/@$out/lib/@g $out/lib/libc.so $out/lib/libpthread.so || true
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    # Derivations may check for the existance of this attribute, to know what to
+    # link to.
+    libiconv = libiconvReal;
+  };
+
+  meta = {
+    homepage = "https://uclibc-ng.org";
+    description = "Embedded C library";
+    longDescription = ''
+      uClibc-ng is a small C library for developing embedded Linux systems. It
+      is much smaller than the GNU C Library, but nearly all applications
+      supported by glibc also work perfectly with uClibc-ng.
+
+      Porting applications from glibc to uClibc-ng typically involves just
+      recompiling the source code. uClibc-ng supports shared libraries and
+      threading. It currently runs on standard Linux and MMU-less (also known as
+      uClinux) systems with support for Aarch64, Alpha, ARC, ARM, AVR32,
+      Blackfin, CRIS, C-Sky, C6X, FR-V, H8/300, HPPA, i386, IA64, KVX, LM32,
+      M68K/Coldfire, Metag, Microblaze, MIPS, MIPS64, NDS32, NIOS2, OpenRISC,
+      PowerPC, RISCV64, Sparc, Sparc64, SuperH, Tile, X86_64 and XTENSA
+      processors. Alpha, FR-V, HPPA, IA64, LM32, NIOS2, Tile and Sparc64 are
+      experimental and need more testing.
+    '';
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ rasendubi AndersonTorres ];
+    platforms = lib.platforms.linux;
+    badPlatforms = lib.platforms.aarch64;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ud/udev-gothic-nf/package.nix b/nixpkgs/pkgs/by-name/ud/udev-gothic-nf/package.nix
new file mode 100644
index 000000000000..5a993276cad1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ud/udev-gothic-nf/package.nix
@@ -0,0 +1,25 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "udev-gothic-nf";
+  version = "1.3.1";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/udev-gothic/releases/download/v${version}/UDEVGothic_NF_v${version}.zip";
+    hash = "sha256-4392vZX5CWg+tEpti1N+WQSx4ES5ZXoSiow6ufxqmsY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 *.ttf -t $out/share/fonts/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A programming font that combines BIZ UD Gothic, JetBrains Mono and nerd-fonts";
+    homepage = "https://github.com/yuru7/udev-gothic";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ haruki7049 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ud/udev-gothic/package.nix b/nixpkgs/pkgs/by-name/ud/udev-gothic/package.nix
new file mode 100644
index 000000000000..ef50de5d6000
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ud/udev-gothic/package.nix
@@ -0,0 +1,25 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "udev-gothic";
+  version = "1.3.1";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/udev-gothic/releases/download/v${version}/UDEVGothic_v${version}.zip";
+    hash = "sha256-W1ekR3fWuS/ks1reCBAvZ5lR+aGh9qfaxn80Q2KlRM0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 *.ttf -t $out/share/fonts/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A programming font that combines BIZ UD Gothic and JetBrains Mono";
+    homepage = "https://github.com/yuru7/udev-gothic";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ haruki7049 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ui/uiua/package.nix b/nixpkgs/pkgs/by-name/ui/uiua/package.nix
new file mode 100644
index 000000000000..9ddfd1d8cf13
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ui/uiua/package.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, audioSupport ? true
+, darwin
+, alsa-lib
+
+# passthru.tests.run
+, runCommand
+, uiua
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "uiua";
+  version = "0.0.23";
+
+  src = fetchFromGitHub {
+    owner = "uiua-lang";
+    repo = "uiua";
+    rev = version;
+    hash = "sha256-+Q/dn0pGZ3R+UlAt9stQZU1n+WITujJzTxY5dpXc+Bc=";
+  };
+
+  cargoHash = "sha256-R4jQ9Or9vh3dtqJH7nPvYM4o1h277sFUf+nC1VQl1Uk=";
+
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    rustPlatform.bindgenHook
+  ] ++ lib.optionals audioSupport [
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreServices
+  ] ++ lib.optionals (audioSupport && stdenv.isDarwin) [
+    darwin.apple_sdk.frameworks.AudioUnit
+  ] ++ lib.optionals (audioSupport && stdenv.isLinux) [
+    alsa-lib
+  ];
+
+  buildFeatures = lib.optional audioSupport "audio";
+
+  passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
+    uiua init;
+    diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')
+    touch $out;
+  '';
+
+  meta = {
+    changelog = "https://github.com/uiua-lang/uiua/releases/tag/${src.rev}";
+    description = "A stack-oriented array programming language with a focus on simplicity, beauty, and tacit code";
+    longDescription = ''
+      Uiua combines the stack-oriented and array-oriented paradigms in a single
+      language. Combining these already terse paradigms results in code with a very
+      high information density and little syntactic noise.
+    '';
+    homepage = "https://www.uiua.org/";
+    license = lib.licenses.mit;
+    mainProgram = "uiua";
+    maintainers = with lib.maintainers; [ cafkafk tomasajt ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ui/uiua386/package.nix b/nixpkgs/pkgs/by-name/ui/uiua386/package.nix
new file mode 100644
index 000000000000..fefec669b7ba
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ui/uiua386/package.nix
@@ -0,0 +1,23 @@
+{ lib, stdenvNoCC, uiua }:
+
+stdenvNoCC.mkDerivation {
+  pname = "uiua386";
+
+  inherit (uiua) src version;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/truetype ./site/Uiua386.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "An Uiua font";
+    homepage = "https://uiua.org/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ skykanin ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/un/unbook/package.nix b/nixpkgs/pkgs/by-name/un/unbook/package.nix
new file mode 100644
index 000000000000..b567cad5dc5f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/un/unbook/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, makeWrapper
+, calibre
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "unbook";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "ludios";
+    repo = "unbook";
+    rev = version;
+    hash = "sha256-KYnSIT/zIrbDFRWIaQRto0sPPmpJC8V7f00j4t/AsGQ=";
+  };
+
+  cargoHash = "sha256-AjyeTFgjl3XLplo8w9jne5FyKd2EciwbAKKiaDshpcA=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/unbook --prefix PATH : ${lib.makeBinPath [ calibre ]}
+  '';
+
+  meta = with lib; {
+    description = "An ebook to self-contained-HTML converter";
+    homepage = "https://unbook.ludios.org";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ jmbaur ];
+    mainProgram = "unbook";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/un/unimap/Cargo.lock b/nixpkgs/pkgs/by-name/un/unimap/Cargo.lock
new file mode 100644
index 000000000000..e85e16360aad
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/un/unimap/Cargo.lock
@@ -0,0 +1,1638 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "async-trait"
+version = "0.1.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "blake2b_simd"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits 0.2.16",
+ "time",
+ "wasm-bindgen",
+ "winapi",
+]
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+ "yaml-rust 0.3.5",
+]
+
+[[package]]
+name = "colored"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+dependencies = [
+ "is-terminal",
+ "lazy_static",
+ "windows-sys",
+]
+
+[[package]]
+name = "config"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369"
+dependencies = [
+ "lazy_static",
+ "nom",
+ "rust-ini",
+ "serde 1.0.186",
+ "serde-hjson",
+ "serde_json",
+ "toml",
+ "yaml-rust 0.4.5",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "csv"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde 1.0.186",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+
+[[package]]
+name = "dirs"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "enum-as-inner"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+ "failure_derive",
+]
+
+[[package]]
+name = "failure_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "synstructure",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "ipconfig"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
+dependencies = [
+ "socket2 0.3.19",
+ "widestring",
+ "winapi",
+ "winreg",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "js-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lexical-core"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+dependencies = [
+ "arrayvec",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.147"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+
+[[package]]
+name = "lock_api"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "lru-cache"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"
+dependencies = [
+ "lexical-core",
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.16",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "openssl"
+version = "0.10.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "openssl-src"
+version = "111.27.0+1.1.1v"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "prettytable-rs"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e"
+dependencies = [
+ "atty",
+ "csv",
+ "encode_unicode",
+ "lazy_static",
+ "term",
+ "unicode-width",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.10",
+]
+
+[[package]]
+name = "rayon"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "num_cpus",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
+dependencies = [
+ "getrandom 0.1.16",
+ "redox_syscall 0.1.57",
+ "rust-argon2",
+]
+
+[[package]]
+name = "regex"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
+dependencies = [
+ "base64",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rust-ini"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustix"
+version = "0.38.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "serde"
+version = "0.8.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
+
+[[package]]
+name = "serde"
+version = "1.0.186"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f5db24220c009de9bd45e69fb2938f4b6d2df856aa9304ce377b3180f83b7c1"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-hjson"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8"
+dependencies = [
+ "lazy_static",
+ "num-traits 0.1.43",
+ "regex",
+ "serde 0.8.23",
+]
+
+[[package]]
+name = "serde-xml-rs"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65162e9059be2f6a3421ebbb4fef3e74b7d9e7c60c50a0e292c6239f19f1edfa"
+dependencies = [
+ "log",
+ "serde 1.0.186",
+ "thiserror",
+ "xml-rs",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.186"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad697f7e0b65af4983a4ce8f56ed5b357e8d3c36651bf6a7e13639c17b8e670"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.105"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde 1.0.186",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+
+[[package]]
+name = "socket2"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unicode-xid",
+]
+
+[[package]]
+name = "term"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
+dependencies = [
+ "byteorder",
+ "dirs",
+ "winapi",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+]
+
+[[package]]
+name = "time"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+dependencies = [
+ "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+dependencies = [
+ "backtrace",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2 0.5.3",
+ "windows-sys",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde 1.0.186",
+]
+
+[[package]]
+name = "trust-dns-proto"
+version = "0.20.4"
+source = "git+https://github.com/Findomain/trust-dns?branch=custombranch#f339a5e806bed9109ad205d2143d8b18701d2ab0"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.3",
+ "ipnet",
+ "lazy_static",
+ "log",
+ "rand",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.20.4"
+source = "git+https://github.com/Findomain/trust-dns?branch=custombranch#f339a5e806bed9109ad205d2143d8b18701d2ab0"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "log",
+ "lru-cache",
+ "parking_lot",
+ "rand",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "trust-dns-proto",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unimap"
+version = "0.6.0"
+dependencies = [
+ "atty",
+ "chrono",
+ "clap",
+ "colored",
+ "config",
+ "failure",
+ "lazy_static",
+ "log",
+ "openssl",
+ "prettytable-rs",
+ "rand",
+ "rayon",
+ "serde 1.0.186",
+ "serde-xml-rs",
+ "serde_derive",
+ "trust-dns-resolver",
+ "winapi",
+]
+
+[[package]]
+name = "url"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.4.0",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+
+[[package]]
+name = "widestring"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "winreg"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1"
+
+[[package]]
+name = "yaml-rust"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
diff --git a/nixpkgs/pkgs/by-name/un/unimap/package.nix b/nixpkgs/pkgs/by-name/un/unimap/package.nix
new file mode 100644
index 000000000000..7563c1f50535
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/un/unimap/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, makeBinaryWrapper
+, stdenv
+, pkg-config
+, openssl
+, nmap
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "unimap";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Edu4rdSHL";
+    repo = "unimap";
+    rev = version;
+    hash = "sha256-7UbzE5VXycjo7KNpPe2oqwyZDT4Vk8rQZ6HXT1q9Cw4=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "trust-dns-proto-0.20.4" = "sha256-+oAjyyTXbKir8e5kn8CUmQy5qmzQ47ryvBBdZtzj1TY=";
+    };
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+    makeBinaryWrapper
+  ] ++ lib.optionals (stdenv.hostPlatform.isAarch && stdenv.isLinux) [
+    pkg-config
+  ];
+
+  # only depends on openssl on aarch/arm linux
+  buildInputs = lib.optionals (stdenv.hostPlatform.isAarch && stdenv.isLinux) [
+    openssl
+  ];
+
+  env = lib.optionalAttrs (stdenv.hostPlatform.isAarch && stdenv.isLinux) {
+    OPENSSL_NO_VENDOR = true;
+  };
+
+  postInstall = ''
+    installManPage unimap.1
+    wrapProgram $out/bin/unimap \
+      --prefix PATH : ${lib.makeBinPath [ nmap ]}
+  '';
+
+  meta = with lib; {
+    description = "Scan only once by IP address and reduce scan times with Nmap for large amounts of data";
+    homepage = "https://github.com/Edu4rdSHL/unimap";
+    changelog = "https://github.com/Edu4rdSHL/unimap/releases/tag/${src.rev}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "unimap";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/up/upiano/package.nix b/nixpkgs/pkgs/by-name/up/upiano/package.nix
new file mode 100644
index 000000000000..d13ff18bd425
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/up/upiano/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "upiano";
+  version = "0.1.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "eliasdorneles";
+    repo = "upiano";
+    rev = "v${version}";
+    hash = "sha256-5WhflvUCjzW4ZJ+PLUTMbKcUnQa3ChkDjl0R5YvjBWk=";
+    forceFetchGit = true;
+    fetchLFS = true;
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyfluidsynth
+    textual
+  ];
+
+  pythonImportsCheck = [ "upiano" ];
+
+  meta = with lib; {
+    description = "A Piano in your terminal";
+    homepage = "https://github.com/eliasdorneles/upiano";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "upiano";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/up/uplosi/package.nix b/nixpkgs/pkgs/by-name/up/uplosi/package.nix
new file mode 100644
index 000000000000..05e38ca8026c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/up/uplosi/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchFromGitHub
+, buildGo121Module
+}:
+buildGo121Module rec {
+  pname = "uplosi";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "edgelesssys";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-9hOeKnjH6r3CPQSe6fQ6PXlVPEJ9NiyXvp5N1krG2XA=";
+  };
+
+  vendorHash = "sha256-RsjUPLe8omoN+XGyNhHDxzNfZR7VVTkh/f/On1oCRqM=";
+
+  CGO_ENABLED = "0";
+  ldflags = [ "-s" "-w" "-buildid=" "-X main.version=${version}" ];
+  flags = [ "-trimpath" ];
+
+  meta = with lib; {
+    description = "Upload OS images to cloud provider";
+    homepage = "https://github.com/edgelesssys/uplosi";
+    changelog = "https://github.com/edgelesssys/uplosi/releases/tag/v${version}";
+    license = licenses.asl20;
+    mainProgram = "uplosi";
+    maintainers = with maintainers; [ katexochen malt3 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ux/uxn/package.nix b/nixpkgs/pkgs/by-name/ux/uxn/package.nix
new file mode 100644
index 000000000000..a0c13b8ebb36
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ux/uxn/package.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, SDL2
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "uxn";
+  version = "unstable-2023-09-29";
+
+  src = fetchFromSourcehut {
+    owner = "~rabbits";
+    repo = "uxn";
+    rev = "c71842aa8472f26c0ea7fbf92624659313c038ba";
+    hash = "sha256-Lo1AkK81Hv8A0jBfpR4lxlBJcWkh9LttURiXVoibKSs=";
+  };
+
+  outputs = [ "out" "projects" ];
+
+  nativeBuildInputs = [
+    SDL2
+  ];
+
+  buildInputs = [
+    SDL2
+  ];
+
+  strictDeps = true;
+
+  postPatch = ''
+    patchShebangs build.sh
+    substituteInPlace build.sh \
+      --replace "-L/usr/local/lib " "" \
+      --replace "\$(brew --prefix)/lib/libSDL2.a " ""
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    ./build.sh --no-run
+
+    runHook postBuild
+  '';
+
+  # ./build.sh --install is meant to install in $HOME, therefore not useful for
+  # package maintainers
+  installPhase = ''
+    runHook preInstall
+
+    install -d $out/bin/
+    cp bin/uxnasm bin/uxncli bin/uxnemu $out/bin/
+    install -d $projects/share/uxn/
+    cp -r projects $projects/share/uxn/
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    homepage = "https://wiki.xxiivv.com/site/uxn.html";
+    description = "An assembler and emulator for the Uxn stack machine";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    mainProgram = "uxnemu";
+    inherit (SDL2.meta) platforms;
+    # ofborg complains about an error trying to link inexistent SDL2 library
+    # For full logs, run:
+    # 'nix log /nix/store/bmyhh0lpifl9swvkpflqldv43vcrgci1-uxn-unstable-2023-08-10.drv'.
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ve/vercel-pkg/package.nix b/nixpkgs/pkgs/by-name/ve/vercel-pkg/package.nix
new file mode 100644
index 000000000000..d3313069e4d0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ve/vercel-pkg/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pkg";
+  version = "5.8.1";
+
+  src = fetchFromGitHub {
+    owner = "vercel";
+    repo = "pkg";
+    rev = version;
+    hash = "sha256-h3rHR3JE9hVcd3oiE7VL2daYXGTQo7NcOHGC6pmE/xs=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-KesP3X7LwZ7KSIxcCPXdn/sWcX9TJlwT9z/SdotS2ZQ=";
+  };
+
+  nativeBuildInputs  = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline prepare
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/pkg"
+    cp -r . "$out/lib/node_modules/pkg"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/pkg" \
+      --add-flags "$out/lib/node_modules/pkg/lib-es5/bin.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Package your Node.js project into an executable";
+    homepage = "https://github.com/vercel/pkg";
+    license = lib.licenses.mit;
+    mainProgram = "pkg";
+    maintainers = with lib.maintainers; [ cmcdragonkai ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ve/vesktop/package.nix b/nixpkgs/pkgs/by-name/ve/vesktop/package.nix
new file mode 100644
index 000000000000..d528fec7563a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ve/vesktop/package.nix
@@ -0,0 +1,146 @@
+{ lib
+, stdenv
+, stdenvNoCC
+, gcc13Stdenv
+, fetchFromGitHub
+, substituteAll
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, vencord
+, electron
+, pipewire
+, libpulseaudio
+, libicns
+, jq
+, moreutils
+, nodePackages
+}:
+stdenv.mkDerivation rec {
+  pname = "vesktop";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "Vencord";
+    repo = "Vesktop";
+    rev = "v${version}";
+    hash = "sha256-jSGad3qMhAdiGdwomQO6BIyHIbKrGLRGniGrJN97gN8=";
+  };
+
+  pnpm-deps = stdenvNoCC.mkDerivation {
+    pname = "${pname}-pnpm-deps";
+    inherit src version patches ELECTRON_SKIP_BINARY_DOWNLOAD;
+
+    nativeBuildInputs = [
+      jq
+      moreutils
+      nodePackages.pnpm
+    ];
+
+    # https://github.com/NixOS/nixpkgs/blob/763e59ffedb5c25774387bf99bc725df5df82d10/pkgs/applications/misc/pot/default.nix#L56
+    installPhase = ''
+      export HOME=$(mktemp -d)
+
+      pnpm config set store-dir $out
+      pnpm install --frozen-lockfile --ignore-script
+
+      rm -rf $out/v3/tmp
+      for f in $(find $out -name "*.json"); do
+        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
+        jq --sort-keys . $f | sponge $f
+      done
+    '';
+
+    dontFixup = true;
+    outputHashMode = "recursive";
+    outputHash = "sha256-lTeL+8QujWzx4ys2T+G55NUP51c8i5lB1vAkUtzkJlA=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    nodePackages.pnpm
+    nodePackages.nodejs
+    makeWrapper
+  ];
+
+  patches = [
+    (substituteAll { inherit vencord; src = ./use_system_vencord.patch; })
+  ];
+
+  ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
+
+  preBuild = ''
+    export HOME=$(mktemp -d)
+    export STORE_PATH=$(mktemp -d)
+
+    cp -r ${pnpm-deps}/* "$STORE_PATH"
+    chmod -R +w "$STORE_PATH"
+
+    pnpm config set store-dir "$STORE_PATH"
+    pnpm install --offline --frozen-lockfile --ignore-script
+    patchShebangs node_modules/{*,.*}
+  '';
+
+  postBuild = ''
+    pnpm build
+    # using `pnpm exec` here apparently makes it ignore ELECTRON_SKIP_BINARY_DOWNLOAD
+    ./node_modules/.bin/electron-builder \
+      --dir \
+      -c.electronDist=${electron}/libexec/electron \
+      -c.electronVersion=${electron.version}
+  '';
+
+  # this is consistent with other nixpkgs electron packages and upstream, as far as I am aware
+  # yes, upstream really packages it as "vesktop" but uses "vencorddesktop" file names
+  installPhase =
+    let
+      # this is mainly required for venmic
+      libPath = lib.makeLibraryPath [
+        libpulseaudio
+        pipewire
+        gcc13Stdenv.cc.cc.lib
+      ];
+    in
+    ''
+      runHook preInstall
+
+      mkdir -p $out/opt/Vesktop/resources
+      cp dist/linux-unpacked/resources/app.asar $out/opt/Vesktop/resources
+
+      pushd build
+      ${libicns}/bin/icns2png -x icon.icns
+      for file in icon_*x32.png; do
+        file_suffix=''${file//icon_}
+        install -Dm0644 $file $out/share/icons/hicolor/''${file_suffix//x32.png}/apps/vencorddesktop.png
+      done
+
+      makeWrapper ${electron}/bin/electron $out/bin/vencorddesktop \
+        --prefix LD_LIBRARY_PATH : ${libPath} \
+        --add-flags $out/opt/Vesktop/resources/app.asar \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+
+      runHook postInstall
+    '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "vencorddesktop";
+      desktopName = "Vesktop";
+      exec = "vencorddesktop %U";
+      icon = "vencorddesktop";
+      startupWMClass = "VencordDesktop";
+      genericName = "Internet Messenger";
+      keywords = [ "discord" "vencord" "electron" "chat" ];
+    })
+  ];
+
+  meta = with lib; {
+    description = "An alternate client for Discord with Vencord built-in";
+    homepage = "https://github.com/Vencord/Vesktop";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ getchoo Scrumplex vgskye ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    mainProgram = "vencorddesktop";
+    broken = stdenv.hostPlatform.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ve/vesktop/use_system_vencord.patch b/nixpkgs/pkgs/by-name/ve/vesktop/use_system_vencord.patch
new file mode 100644
index 000000000000..242fdcbb21e7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ve/vesktop/use_system_vencord.patch
@@ -0,0 +1,13 @@
+diff --git a/src/main/constants.ts b/src/main/constants.ts
+index d5c5fa6..a1b32f1 100644
+--- a/src/main/constants.ts
++++ b/src/main/constants.ts
+@@ -16,7 +16,7 @@ export const VENCORD_THEMES_DIR = join(DATA_DIR, "themes");
+ // needs to be inline require because of circular dependency
+ // as otherwise "DATA_DIR" (which is used by ./settings) will be uninitialised
+ export const VENCORD_FILES_DIR =
+-    (require("./settings") as typeof import("./settings")).Settings.store.vencordDir || join(DATA_DIR, "vencordDist");
++    (require("./settings") as typeof import("./settings")).Settings.store.vencordDir || "@vencord@";
+ 
+ export const USER_AGENT = `Vesktop/${app.getVersion()} (https://github.com/Vencord/Vesktop)`;
+ 
diff --git a/nixpkgs/pkgs/by-name/vi/virtio-win/package.nix b/nixpkgs/pkgs/by-name/vi/virtio-win/package.nix
new file mode 100644
index 000000000000..5c1bb96b9e25
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vi/virtio-win/package.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchurl, libarchive }:
+
+stdenv.mkDerivation rec {
+  pname = "virtio-win";
+  version = "0.1.240-1";
+
+  src = fetchurl {
+    url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-${version}/virtio-win.iso";
+    hash = "sha256-69SCWGaPf3jgJu0nbCip0Z2D4CD/oICtaZENyGu8vMY=";
+  };
+
+  nativeBuildInputs = [
+    libarchive
+  ];
+
+  unpackCmd = "mkdir source; bsdtar -xf $curSrc -C source";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -R ./. $out/
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Windows VirtIO Drivers";
+    homepage = "https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html";
+    changelog = "https://fedorapeople.org/groups/virt/virtio-win/CHANGELOG";
+    license = [ licenses.bsd3 ];
+    maintainers = with maintainers; [ anthonyroussel ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/vi/virtio-win/update.sh b/nixpkgs/pkgs/by-name/vi/virtio-win/update.sh
new file mode 100755
index 000000000000..99a0f30fe4a6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vi/virtio-win/update.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl pup common-updater-scripts
+
+set -eu -o pipefail
+
+version="$(curl -Ls https://fedorapeople.org/groups/virt/virtio-win/repo/latest/ | \
+        pup 'a[href*="virtio-win-"] text{}' | \
+        sed -E 's/virtio-win-(.*)\.noarch\.rpm/\1/' | \
+        sort -Vu | \
+        tail -n1)"
+
+update-source-version virtio-win "$version"
diff --git a/nixpkgs/pkgs/by-name/wa/wait4x/package.nix b/nixpkgs/pkgs/by-name/wa/wait4x/package.nix
new file mode 100644
index 000000000000..9daad7d2a198
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/wait4x/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+let
+  pname = "wait4x";
+  version = "2.13.0";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "atkrad";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-vhYWt1vRL1iTtdZRhk3HsBnmhcp4hieN+8vsyQS4hpo=";
+  };
+
+  vendorHash = "sha256-WY8FPRjjAFcDLMbU22pL3rFTw7fBPwCbXJDjhHDI4Kw=";
+
+  # Tests make network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Wait4X allows you to wait for a port or a service to enter the requested state";
+    homepage = "https://github.com/atkrad/wait4x";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jfvillablanca ];
+    mainProgram = "wait4x";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wa/waybar-mpris/package.nix b/nixpkgs/pkgs/by-name/wa/waybar-mpris/package.nix
new file mode 100644
index 000000000000..253829d9abec
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/waybar-mpris/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchgit
+, buildGoModule
+, installShellFiles
+}:
+
+buildGoModule {
+  pname = "waybar-mpris";
+  version = "unstable-2022-01-27";
+
+  src = fetchgit {
+    url = "https://git.hrfee.pw/hrfee/waybar-mpris";
+    rev = "485ec0ec0af80a0d63c10e94aebfc59b16aab46b";
+    hash = "sha256-BjLxWnDNsR2ZnNklNiKzi1DeoPpaZsRdKbVSwNwYhJ4=";
+  };
+
+  vendorHash = "sha256-85jFSAOfNMihv710LtfETmkKRqcdRuFCHVuPkW94X/Y=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  CGO_LDFLAGS = "-s -w";
+
+  GOFLAGS = "-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw";
+
+  meta = with lib; {
+    description = "A waybar component/utility for displaying and controlling MPRIS2 compliant media players individually";
+    homepage = "https://git.hrfee.pw/hrfee/waybar-mpris";
+    license = licenses.mit;
+    mainProgram = "waybar-mpris";
+    maintainers = with maintainers; [ khaneliman ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/wa/waybox/package.nix b/nixpkgs/pkgs/by-name/wa/waybox/package.nix
new file mode 100644
index 000000000000..3274660b0752
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/waybox/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libGL
+, libxkbcommon
+, libxml2
+, mesa
+, meson
+, ninja
+, pixman
+, pkg-config
+, udev
+, wayland
+, wayland-protocols
+, wayland-scanner
+, wlroots
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "waybox";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "wizbright";
+    repo = "waybox";
+    rev = finalAttrs.version;
+    hash = "sha256-G8dRa4hgev3x58uqp5To5OzF3zcPSuT3NL9MPnWf2M8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    meson
+    ninja
+    pkg-config
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    libGL
+    libxkbcommon
+    libxml2
+    mesa # for libEGL
+    pixman
+    udev
+    wayland
+    wayland-protocols
+    wlroots
+  ];
+
+  strictDeps = true;
+
+  dontUseCmakeConfigure = true;
+
+  passthru.providedSessions = [ "waybox" ];
+
+  meta = {
+    homepage = "https://github.com/wizbright/waybox";
+    description = "An openbox clone on Wayland";
+    license = lib.licenses.mit;
+    mainProgram = "waybox";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (wayland.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wa/waycheck/package.nix b/nixpkgs/pkgs/by-name/wa/waycheck/package.nix
new file mode 100644
index 000000000000..edda82b7f7af
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/waycheck/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, qt6
+, wayland
+, glib
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "waycheck";
+  version = "1.0.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "serebit";
+    repo = "waycheck";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-oGpiFwbPBQHF0wRHliltU8B+QmClcoFfbjpAYzOFPqs=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+    qt6.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    wayland
+    qt6.qtwayland
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  preInstall = ''
+    substituteInPlace ../scripts/mesonPostInstall.sh \
+      --replace "update-desktop-database -q" "update-desktop-database $out/share/applications"
+  '';
+
+  meta = with lib; {
+    description = "Simple GUI that displays the protocols implemented by a Wayland compositor";
+    homepage = "https://gitlab.freedesktop.org/serebit/waycheck";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ julienmalka federicoschonborn ];
+    mainProgram = "waycheck";
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wa/wayidle/package.nix b/nixpkgs/pkgs/by-name/wa/wayidle/package.nix
new file mode 100644
index 000000000000..e563137c1dff
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/wayidle/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromSourcehut
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wayidle";
+  version = "0.1.1";
+
+  src = fetchFromSourcehut {
+    owner = "~whynothugo";
+    repo = "wayidle";
+    rev = "v${version}";
+    hash = "sha256-6wULrwGnXLdrX/THanJThbykKjNKpGukw9dj0jX0/dM=";
+  };
+
+  cargoHash = "sha256-zF2s3XSXnN7jVtv/0axzHiIJd/cb6wMYAOQILXp1U5U=";
+
+  meta = with lib; {
+    description = "Execute a program when a Wayland compositor reports being N seconds idle";
+    homepage = "https://git.sr.ht/~whynothugo/wayidle";
+    license = licenses.isc;
+    maintainers = with maintainers; [ tomfitzhenry ];
+    mainProgram = "wayidle";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix b/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix
new file mode 100644
index 000000000000..22e197a4987a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix
@@ -0,0 +1,27 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  meson,
+  ninja,
+}:
+stdenv.mkDerivation rec {
+  pname = "wayland-logout";
+  version = "1.4";
+  src = fetchFromGitHub {
+    owner = "soreau";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-VSAw6go4v937HWazXfMz8OdHgOnUtrlDXkslsV4eDIg=";
+  };
+  nativeBuildInputs = [meson ninja];
+  meta = with lib; {
+    description = ''
+      A utility designed to kill a single instance of a wayland compositor
+    '';
+    homepage = "https://github.com/soreau/wayland-logout";
+    maintainers = with maintainers; [quantenzitrone];
+    license = with licenses; [mit];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wb/wb32-dfu-updater/package.nix b/nixpkgs/pkgs/by-name/wb/wb32-dfu-updater/package.nix
new file mode 100644
index 000000000000..fb144b7d6e2b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wb/wb32-dfu-updater/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libusb1
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wb32-dfu-updater";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "WestberryTech";
+    repo = finalAttrs.pname;
+    rev = finalAttrs.version;
+    hash = "sha256-DKsDVO00JFhR9hIZksFVJLRwC6PF9LCRpf++QywFO2w=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "USB programmer for downloading and uploading firmware to/from USB devices.";
+    longDescription = ''
+      wb32-dfu-updater is a host tool used to download and upload firmware to/from WB32 MCU via USB. (wb32-dfu-updater_cli is the command line version).
+    '';
+    homepage = "https://github.com/WestberryTech/wb32-dfu-updater";
+    license = licenses.asl20;
+    maintainers = [ maintainers.liketechnik ];
+    mainProgram = "wb32-dfu-updater_cli";
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wh/whatsapp-emoji-font/package.nix b/nixpkgs/pkgs/by-name/wh/whatsapp-emoji-font/package.nix
new file mode 100644
index 000000000000..5e34282891b9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wh/whatsapp-emoji-font/package.nix
@@ -0,0 +1,46 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, imagemagick
+, nix-update-script
+, pngquant
+, python3Packages
+, which
+, zopfli
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "whatsapp-emoji-linux";
+  version = "2.23.2.72-1";
+
+  src = fetchFromGitHub {
+    rev = "refs/tags/${version}";
+    owner = "dmlls";
+    repo = "whatsapp-emoji-linux";
+    hash = "sha256-dwX+y8jCpR+SyiH13Os9VeXLDwmAYB7ARW2lAMl/7RE=";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    imagemagick
+    pngquant
+    python3Packages.nototools
+    which
+    zopfli
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "WhatsApp Emoji for GNU/Linux";
+    homepage = "https://github.com/dmlls/whatsapp-emoji-linux";
+    maintainers = [ lib.maintainers.lucasew ];
+    sourceProvenance = [ lib.sourceTypes.fromSource ];
+    license = lib.licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wh/whistle/package.nix b/nixpkgs/pkgs/by-name/wh/whistle/package.nix
new file mode 100644
index 000000000000..0e097ed347d3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wh/whistle/package.nix
@@ -0,0 +1,26 @@
+{ lib, buildNpmPackage, fetchFromGitHub }:
+
+buildNpmPackage rec {
+  pname = "whistle";
+  version = "2.9.58";
+
+  src = fetchFromGitHub {
+    owner = "avwo";
+    repo = "whistle";
+    rev = "v${version}";
+    hash = "sha256-/dt4xwUZrvymCpc3xRyWM2Wsh7zk7ndepgOWJwJ2Das=";
+  };
+
+  npmDepsHash = "sha256-9GBhC2PQyaqi64ncIuMZSf9CLB8l+cywT7QTzW9WiTs=";
+
+  dontNpmBuild = true;
+
+  meta = with lib; {
+    description = "HTTP, HTTP2, HTTPS, Websocket debugging proxy";
+    homepage = "https://github.com/avwo/whistle";
+    changelog = "https://github.com/avwo/whistle/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+    mainProgram = "whistle";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/AlsaMixer-app.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/AlsaMixer-app.nix
new file mode 100644
index 000000000000..a6b78b70b244
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/AlsaMixer-app.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, alsa-lib
+, dockapps-sources
+, libX11
+, libXext
+, libXpm
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "AlsaMixer.app";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${finalAttrs.src.name}/AlsaMixer.app";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    libX11
+    libXpm
+    libXext
+  ];
+
+  hardeningDisable = [ "fortify" ];
+
+  dontConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t ${placeholder "out"}/bin/ AlsaMixer.app
+    pushd ${placeholder "out"}/bin
+    ln -vs AlsaMixer.app AlsaMixer
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Alsa mixer application for Windowmaker";
+    homepage = "https://www.dockapps.net/alsamixerapp";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix
new file mode 100644
index 000000000000..6ac10e374e0f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, dockapps-sources
+, libX11
+, libXext
+, libXpm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cputnik";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${finalAttrs.src.name}/cputnik/src";
+
+  buildInputs = [
+    libX11
+    libXpm
+    libXext
+  ];
+
+  preBuild = ''
+    makeFlagsArray+=(
+      INCS="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXpm.dev}/include"
+      LIBS="-L${libX11}/lib -L${libXext}/lib -L${libXpm}/lib -lX11 -lXpm -lXext"
+    )
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin/ cputnik
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A Calendar clock with antialiased text";
+    homepage = "https://www.dockapps.net/wmcalclock";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/default.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/default.nix
new file mode 100644
index 000000000000..84cfe01bddf3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/default.nix
@@ -0,0 +1,29 @@
+{ config, lib, pkgs }:
+
+lib.makeScope pkgs.newScope (self: {
+
+  dockapps-sources = {
+    pname = "dockapps-sources";
+    version = "2023-10-11"; # Shall correspond to src.rev
+
+    src = pkgs.fetchFromRepoOrCz {
+      repo = "dockapps";
+      rev = "1bbb32008ecb58acaec9ea70e00b4ea1735408fc";
+      hash = "sha256-BLUDe/cIIuh9mCtafbcBSDatUXSRD83FeyYhcbem5FU=";
+    };
+  };
+
+  AlsaMixer-app = self.callPackage ./AlsaMixer-app.nix { };
+
+  cputnik = self.callPackage ./cputnik.nix { };
+
+  libdockapp = self.callPackage ./libdockapp.nix { };
+
+  wmCalClock = self.callPackage ./wmCalClock.nix { };
+
+  wmcube = self.callPackage ./wmcube.nix { };
+
+  wmsm-app = self.callPackage ./wmsm-app.nix { };
+
+  wmsystemtray = self.callPackage ./wmsystemtray.nix { };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix
new file mode 100644
index 000000000000..12446bfc7262
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, autoreconfHook
+, dockapps-sources
+, fontutil
+, libX11
+, libXext
+, libXpm
+, mkfontdir
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libdockapp";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${finalAttrs.src.name}/libdockapp";
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ libX11 libXext libXpm fontutil mkfontdir ];
+
+  # There is a bug on --with-font
+  configureFlags = [
+    "--with-examples=no"
+    "--with-font=no"
+  ];
+
+  meta = {
+    description = "A library providing a framework for dockapps";
+    homepage = "https://www.dockapps.net/libdockapp";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix
new file mode 100644
index 000000000000..1dc130971ded
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, dockapps-sources
+, libX11
+, libXext
+, libXpm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wmCalClock";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${finalAttrs.src.name}/wmCalClock";
+
+  buildInputs = [
+    libX11
+    libXpm
+    libXext
+  ];
+
+  preBuild = ''
+    makeFlagsArray+=(
+      CC="cc"
+      INCDIR="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXpm.dev}/include"
+      LIBDIR="-I${libX11}/lib -I${libXext}/lib -I${libXpm}/lib"
+    )
+  '';
+
+  preInstall = ''
+    install -d ${placeholder "out"}/bin
+    install -d ${placeholder "out"}/man/man1
+  '';
+
+  installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+  meta = {
+    description = "A Calendar clock with antialiased text";
+    homepage = "https://www.dockapps.net/wmcalclock";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmcube.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmcube.nix
new file mode 100644
index 000000000000..5aaa00e23e34
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmcube.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, dockapps-sources
+, libX11
+, libXpm
+, libXext
+, libdockapp
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wmcube";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${finalAttrs.src.name}/wmcube/wmcube";
+
+  buildInputs = [
+    libX11
+    libXext
+    libXpm
+    libdockapp
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-std=gnu89";
+
+  preBuild = ''
+    makeFlagsArray=(
+      CC="${stdenv.cc.targetPrefix}cc"
+      PREFIX="${placeholder "out"}"
+      VERSION="${finalAttrs.version}"
+      LIBDIR="-L${lib.getLib libX11}/lib -L${lib.getLib libXext}/lib \
+-L${lib.getLib libXpm}/lib -L${lib.getLib libdockapp}/lib"
+      INCDIR="-I${lib.getDev libX11}/lib -I${lib.getDev libXext}/lib \
+-I${lib.getDev libXpm}/lib -I${lib.getDev libdockapp}/lib"
+      LIBS="-lm -lXpm -lXext -lX11 -ldockapp"
+    )
+  '';
+
+  preInstall = ''
+    mkdir -pv $out/{bin,doc/wmcube-${finalAttrs.version},share/wmcube,man/man1}
+  '';
+
+  meta = {
+    description = "System monitor for Windowmaker";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsm-app.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsm-app.nix
new file mode 100644
index 000000000000..6becfce9578b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsm-app.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, dockapps-sources
+, libX11
+, libXpm
+, libXext
+, libdockapp
+}:
+
+stdenv.mkDerivation  (finalAttrs: {
+  pname = "wmsm.app";
+
+  inherit (dockapps-sources) version src;
+
+  sourceRoot = "${src.name}/wmsm.app/wmsm";
+
+  buildInputs = [
+    libX11
+    libXext
+    libXpm
+    libdockapp
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-std=gnu89";
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "PREFIX	= /usr/X11R6/bin" "" \
+      --replace "/usr/bin/install" "install"
+  '';
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -d ${placeholder "out"}/bin
+    runHook postInstall
+  '';
+
+  installFlags = [
+    "PREFIX=${placeholder "out"}/bin"
+  ];
+
+  meta = {
+    description = "System monitor for Windowmaker";
+    homepage = "https://www.dockapps.net/wmsmapp";
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix
new file mode 100644
index 000000000000..7f17475d318f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, libXext
+, libXfixes
+, libXmu
+, libXpm
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wmsystemtray";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/wmsystemtray/wmsystemtray/wmsystemtray-${finalAttrs.version}.tar.gz";
+    hash = "sha256-jt70NpHp//BxAA4pFmx8GtQgwJVukGgVEGHogcisl+k=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libX11
+    libXext
+    libXfixes
+    libXmu
+    libXpm
+  ];
+
+  meta = {
+    description = "A system tray for Windowmaker";
+    homepage = "http://wmsystemtray.sourceforge.net";
+    license = licenses.gpl2Only;
+    maintainers = [ ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wi/windowmaker/package.nix b/nixpkgs/pkgs/by-name/wi/windowmaker/package.nix
new file mode 100644
index 000000000000..6c39eadeb05b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wi/windowmaker/package.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchFromRepoOrCz
+, autoreconfHook
+, callPackage
+, pkg-config
+, imagemagick
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXmu
+, libXpm
+, libXrandr
+, libXres
+, libexif
+, libjpeg
+, libpng
+, libtiff
+, giflib
+, libwebp
+, pango
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "windowmaker";
+  version = "0.96.0";
+
+  src = fetchFromRepoOrCz {
+    repo = "wmaker-crm";
+    rev = "wmaker-${finalAttrs.version}";
+    hash = "sha256-6DS5KztCNWPQL6/qJ5vlkOup2ourxSNf6LLTFYpPWi8=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    giflib
+    imagemagick
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXmu
+    libXpm
+    libXrandr
+    libXres
+    libexif
+    libjpeg
+    libpng
+    libtiff
+    libwebp
+    pango
+  ];
+
+  configureFlags = [
+    "--enable-modelock"
+    "--enable-randr"
+    "--enable-webp"
+    "--with-x"
+  ];
+
+  passthru = {
+    dockapps = callPackage ./dockapps { };
+  };
+
+  meta = {
+    homepage = "http://windowmaker.org/";
+    description = "NeXTSTEP-like window manager";
+    longDescription = ''
+      Window Maker is an X11 window manager originally designed to provide
+      integration support for the GNUstep Desktop Environment. In every way
+      possible, it reproduces the elegant look and feel of the NEXTSTEP user
+      interface. It is fast, feature rich, easy to configure, and easy to
+      use. It is also free software, with contributions being made by
+      programmers from around the world.
+    '';
+    changelog = "https://www.windowmaker.org/news/";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "wmaker";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wo/wonderdraft/package.nix b/nixpkgs/pkgs/by-name/wo/wonderdraft/package.nix
new file mode 100644
index 000000000000..96bb4afc79d0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wo/wonderdraft/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, requireFile
+, dpkg
+, xorg
+, libGL
+, alsa-lib
+, pulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wonderdraft";
+  version = "1.1.7.3";
+
+  src = requireFile {
+    name = "Wonderdraft-${version}-Linux64.deb";
+    url = "https://wonderdraft.net/";
+    hash = "sha256-i8YZF5w1dIWUyk99SUhHU7eJRjPXJDPbYUzGC1uN8JQ=";
+  };
+  sourceRoot = ".";
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp -R usr/share opt $out/
+    substituteInPlace \
+      $out/share/applications/Wonderdraft.desktop \
+      --replace /opt/ $out/opt/
+    ln -s $out/opt/Wonderdraft/Wonderdraft.x86_64 $out/bin/Wonderdraft.x86_64
+    runHook postInstall
+  '';
+  preFixup = let
+    libPath = lib.makeLibraryPath [
+      xorg.libXcursor
+      xorg.libXinerama
+      xorg.libXrandr
+      xorg.libX11
+      xorg.libXi
+      libGL
+      alsa-lib
+      pulseaudio
+    ];
+  in ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+      $out/opt/Wonderdraft/Wonderdraft.x86_64
+  '';
+
+  meta = with lib; {
+    homepage = "https://wonderdraft.net/";
+    description = "A mapmaking tool for Tabletop Roleplaying Games, designed for city, region, or world scale";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ jsusk ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/xm/xmldiff/package.nix b/nixpkgs/pkgs/by-name/xm/xmldiff/package.nix
new file mode 100644
index 000000000000..05911ad2acd1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/xm/xmldiff/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+let
+  version = "2.6.3";
+  src = fetchFromGitHub {
+    owner = "Shoobx";
+    repo = "xmldiff";
+    rev = version;
+    hash = "sha256-qn8gGultTSNKPUro6Ap4xJGcbpxV+lKgZFpKvyPdhtc=";
+  };
+in
+python3.pkgs.buildPythonApplication {
+  pname = "xmldiff";
+  inherit version src;
+
+  propagatedBuildInputs = with python3.pkgs; [
+    lxml
+    setuptools
+  ];
+
+  meta = {
+    homepage = "https://xmldiff.readthedocs.io/en/stable/";
+    description = "A library and command line utility for diffing xml";
+    longDescription = ''
+      xmldiff is a library and a command-line utility for making diffs out of
+      XML. This may seem like something that doesn't need a dedicated utility,
+      but change detection in hierarchical data is very different from change
+      detection in flat data. XML type formats are also not only used for
+      computer readable data, it is also often used as a format for hierarchical
+      data that can be rendered into human readable formats. A traditional diff
+      on such a format would tell you line by line the differences, but this
+      would not be be readable by a human. xmldiff provides tools to make human
+      readable diffs in those situations.
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres anpryl ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/xo/xorriso/package.nix b/nixpkgs/pkgs/by-name/xo/xorriso/package.nix
new file mode 100644
index 000000000000..057f61c9fe27
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/xo/xorriso/package.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, acl
+, attr
+, bzip2
+, libcdio
+, libiconv
+, readline
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "xorriso";
+  version = "1.5.7";
+
+  src = fetchurl {
+    url = "https://www.gnu.org/software/xorriso/xorriso-${finalAttrs.version}.tar.gz";
+    hash = "sha256-hnV3w4f2tKmjIk60Qd7Y+xY432y8Bg+NGh5dAPMY9QI=";
+  };
+
+  buildInputs = [
+    bzip2
+    libcdio
+    libiconv
+    readline
+    zlib
+  ]
+  ++ lib.optionals stdenv.isLinux [
+    acl
+    attr
+  ];
+
+  outputs = [ "out" "man" ];
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-include unistd.h";
+
+  doCheck = true;
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://www.gnu.org/software/xorriso/";
+    description = "ISO 9660 Rock Ridge file system manipulator";
+    longDescription = ''
+      GNU xorriso copies file objects from POSIX compliant filesystems into Rock
+      Ridge enhanced ISO 9660 filesystems and allows session-wise manipulation
+      of such filesystems. It can load the management information of existing
+      ISO images and it writes the session results to optical media or to
+      filesystem objects.
+      Vice versa xorriso is able to copy file objects out of ISO 9660
+      filesystems.
+    '';
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "xorriso";
+    maintainers = [ lib.maintainers.AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/xs/xscreensaver/package.nix b/nixpkgs/pkgs/by-name/xs/xscreensaver/package.nix
new file mode 100644
index 000000000000..1ec3b6905a65
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/xs/xscreensaver/package.nix
@@ -0,0 +1,108 @@
+{ lib
+, stdenv
+, fetchurl
+, coreutils
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+, gettext
+, gle
+, gtk3
+, intltool
+, libGL
+, libGLU
+, libX11
+, libXext
+, libXft
+, libXi
+, libXinerama
+, libXrandr
+, libXt
+, libXxf86vm
+, libxml2
+, makeWrapper
+, pam
+, perlPackages
+, pkg-config
+, systemd
+, forceInstallAllHacks ? false
+, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "xscreensaver";
+  version = "6.06";
+
+  src = fetchurl {
+    url = "https://www.jwz.org/xscreensaver/xscreensaver-${finalAttrs.version}.tar.gz";
+    hash = "sha256-9TT6uFqDbeW4vo6R/CG4DKfWpO2ThuviB9S+ek50mac=";
+  };
+
+  nativeBuildInputs = [
+    intltool
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    gdk-pixbuf-xlib
+    gettext
+    gle
+    gtk3
+    libGL
+    libGLU
+    libX11
+    libXext
+    libXft
+    libXi
+    libXinerama
+    libXrandr
+    libXt
+    libXxf86vm
+    libxml2
+    pam
+    perlPackages.LWPProtocolHttps
+    perlPackages.MozillaCA
+    perlPackages.perl
+  ]
+  ++ lib.optional withSystemd systemd;
+
+  preConfigure = ''
+    # Fix installation paths for GTK resources.
+    sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' \
+      -i driver/Makefile.in po/Makefile.in.in
+  '';
+
+  configureFlags = [
+    "--with-app-defaults=${placeholder "out"}/share/xscreensaver/app-defaults"
+  ];
+
+  # "marbling" has NEON code that mixes signed and unsigned vector types
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isAarch "-flax-vector-conversions";
+
+  postInstall = ''
+    for bin in $out/bin/*; do
+      wrapProgram "$bin" \
+        --prefix PATH : "$out/libexec/xscreensaver" \
+        --prefix PATH : "${lib.makeBinPath [ coreutils perlPackages.perl ]}" \
+        --prefix PERL5LIB ':' $PERL5LIB
+    done
+  ''
+  + lib.optionalString forceInstallAllHacks ''
+    make -j$NIX_BUILD_CORES -C hacks/glx dnalogo
+    cat hacks/Makefile.in \
+      | grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -j$NIX_BUILD_CORES -C hacks
+    cat hacks/glx/Makefile.in \
+      | grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -j$NIX_BUILD_CORES -C hacks/glx
+    cp -f $(find hacks -type f -perm -111 "!" -name "*.*" ) "$out/libexec/xscreensaver"
+  '';
+
+  meta = {
+    homepage = "https://www.jwz.org/xscreensaver/";
+    description = "A set of screensavers";
+    downloadPage = "https://www.jwz.org/xscreensaver/download.html";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ raskin AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/xs/xsct/package.nix b/nixpkgs/pkgs/by-name/xs/xsct/package.nix
new file mode 100644
index 000000000000..80023f676c49
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/xs/xsct/package.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gitUpdater
+, libX11
+, libXrandr
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "xsct";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "faf0";
+    repo = "sct";
+    rev = finalAttrs.version;
+    hash = "sha256-XhrkaK85I/U2ChO5mZYah/TaXz03yahfMEbfgzXqytU=";
+  };
+
+  buildInputs = [
+    libX11
+    libXrandr
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Set color temperature of screen";
+    homepage = "https://github.com/faf0/sct";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = with platforms; linux ++ freebsd ++ openbsd;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ye/yeahwm/package.nix b/nixpkgs/pkgs/by-name/ye/yeahwm/package.nix
new file mode 100644
index 000000000000..975c9e0b139d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ye/yeahwm/package.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+, lesstif
+, libX11
+, libXext
+, libXinerama
+, libXmu
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "yeahwm";
+  version = "0.3.5";
+
+  src = fetchurl {
+    url = "http://phrat.de/yeahwm_${finalAttrs.version}.tar.gz";
+    hash = "sha256-ySzpiEjIuI2bZ8Eo4wcQlEwEpkVDECVFNcECsrb87gU=";
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildInputs = [
+    lesstif
+    libX11
+    libXext
+    libXinerama
+    libXmu
+  ];
+
+  strictDeps = true;
+
+  preBuild = let
+    includes = builtins.concatStringsSep " "
+      (builtins.map (l: "-I${lib.getDev l}/include")
+        finalAttrs.buildInputs);
+    ldpath = builtins.concatStringsSep " "
+      (builtins.map (l: "-L${lib.getLib l}/lib")
+        finalAttrs.buildInputs);
+  in ''
+    makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \
+                      XROOT="${libX11}" \
+                      INCLUDES="${includes}" \
+                      LDPATH="${ldpath}" \
+                      prefix="${placeholder "out"}" )
+  '';
+
+  # Workaround build failure on -fno-common toolchains like upstream gcc-10.
+  # Otherwise build fails as:
+  #   ld: screen.o:(.bss+0x40): multiple definition of `fg'; client.o:(.bss+0x40): first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  postInstall = ''
+    installManPage yeahwm.1
+  '';
+
+  meta = {
+    homepage = "http://phrat.de/index.html";
+    description = "An X window manager based on evilwm and aewm";
+    longDescription = ''
+      YeahWM is a h* window manager for X based on evilwm and aewm.
+
+      Features
+      - Sloppy Focus.
+      - BeOS-like tabbed titles, which can be repositioned.
+      - Support for Xinerama.
+      - Simple Appearance.
+      - Good keyboard control.
+      - Creative usage of the mouse.
+      - Respects aspect size hints.
+      - Solid resize and move operations.
+      - Virtual Desktops.
+      - "Magic" Screen edges for desktop switching.
+      - Snapping to other windows and screen borders when moving windows.
+      - Small binary size(ca. 23kb).
+      - Little resource usage.
+      - It's slick.
+    '';
+    changelog = "http://phrat.de/README";
+    license = lib.licenses.isc;
+    mainProgram = "yeahwm";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/yt/ytui-music/package.nix b/nixpkgs/pkgs/by-name/yt/ytui-music/package.nix
new file mode 100644
index 000000000000..3c460082b27e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/yt/ytui-music/package.nix
@@ -0,0 +1,68 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, sqlite
+, stdenv
+, darwin
+, mpv
+, youtube-dl
+, makeBinaryWrapper
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ytui-music";
+  version = "2.0.0-rc1";
+
+  src = fetchFromGitHub {
+    owner = "sudipghimire533";
+    repo = "ytui-music";
+    rev = "v${version}";
+    hash = "sha256-f/23PVk4bpUCvcQ25iNI/UVXqiPBzPKWq6OohVF41p8=";
+  };
+
+  cargoHash = "sha256-766Wev2/R/9LLlWWxOPl6y4CBRUU4hUrTDlVVuoJ8C8=";
+
+  checkFlags = [
+    "--skip=tests::display_config_path"
+    "--skip=tests::inspect_server_list"
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    makeBinaryWrapper
+  ];
+
+  buildInputs = [
+    openssl
+    sqlite
+    mpv
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/ytui_music \
+      --prefix PATH : ${lib.makeBinPath [ youtube-dl ]}
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/ytui_music help
+
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "Youtube client in terminal for music";
+    homepage = "https://github.com/sudipghimire533/ytui-music";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ kashw2 ];
+    mainProgram = "ytui_music";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/zc/zcfan/package.nix b/nixpkgs/pkgs/by-name/zc/zcfan/package.nix
new file mode 100644
index 000000000000..4534a71fa3e4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zc/zcfan/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+# Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zcfan";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "cdown";
+    repo = "zcfan";
+    rev = finalAttrs.version;
+    hash = "sha256-XngchR06HP2iExKJVe+XKBDgsv98AEYWOkl1a/Hktgs=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "/usr/local" $out
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/${finalAttrs.pname} -h
+
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "A zero-configuration fan daemon for ThinkPads";
+    homepage = "https://github.com/cdown/zcfan";
+    changelog = "https://github.com/cdown/zcfan/tags/${finalAttrs.version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kashw2 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/zi/zitadel/console.nix b/nixpkgs/pkgs/by-name/zi/zitadel/console.nix
new file mode 100644
index 000000000000..f2e1f26f3b87
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zi/zitadel/console.nix
@@ -0,0 +1,51 @@
+{ generateProtobufCode
+, version
+, zitadelRepo
+}:
+
+{ mkYarnPackage
+, fetchYarnDeps
+, lib
+}:
+
+let
+  protobufGenerated = generateProtobufCode {
+    pname = "zitadel-console";
+    workDir = "console";
+    bufArgs = "../proto --include-imports --include-wkt";
+    outputPath = "src/app/proto";
+    hash = "sha256-s0dzmcjKd8ot7t+KlRlNVA9oiIDKVMnGOT/HjdaUjGI=";
+  };
+in
+mkYarnPackage rec {
+  name = "zitadel-console";
+  inherit version;
+
+  src = "${zitadelRepo}/console";
+
+  packageJSON = ./package.json;
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-48IC4LxqbkH+95k7rCmhRWT+qAlJ9CDXWwRjbric9no=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/styles.scss \
+      --replace "/node_modules/flag-icons" "flag-icons"
+
+    substituteInPlace angular.json \
+      --replace "./node_modules/tinycolor2" "../../node_modules/tinycolor2"
+  '';
+
+  buildPhase = ''
+    mkdir deps/console/src/app/proto
+    cp -r ${protobufGenerated}/* deps/console/src/app/proto/
+    yarn --offline build
+  '';
+
+  installPhase = ''
+    cp -r deps/console/dist/console $out
+  '';
+
+  doDist = false;
+}
diff --git a/nixpkgs/pkgs/by-name/zi/zitadel/package.json b/nixpkgs/pkgs/by-name/zi/zitadel/package.json
new file mode 100644
index 000000000000..0add6d2556b1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zi/zitadel/package.json
@@ -0,0 +1,88 @@
+{
+  "name": "console",
+  "version": "0.0.0",
+  "scripts": {
+    "ng": "ng",
+    "start": "node prebuild.development.js && ng serve",
+    "build": "ng build --configuration production --base-href=/ui/console/",
+    "prelint": "npm run generate",
+    "lint": "ng lint && prettier --check src",
+    "lint:fix": "prettier --write src",
+    "generate": "buf generate ../proto --include-imports --include-wkt"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/animations": "^16.2.0",
+    "@angular/cdk": "^16.2.0",
+    "@angular/common": "^16.2.0",
+    "@angular/compiler": "^16.2.0",
+    "@angular/core": "^16.2.0",
+    "@angular/forms": "^16.2.0",
+    "@angular/material": "^16.2.0",
+    "@angular/material-moment-adapter": "^16.2.0",
+    "@angular/platform-browser": "^16.2.0",
+    "@angular/platform-browser-dynamic": "^16.2.0",
+    "@angular/router": "^16.2.0",
+    "@angular/service-worker": "^16.2.0",
+    "@ctrl/ngx-codemirror": "^6.1.0",
+    "@grpc/grpc-js": "^1.8.14",
+    "@ngx-translate/core": "^14.0.0",
+    "angular-oauth2-oidc": "^15.0.1",
+    "angularx-qrcode": "^16.0.0",
+    "buffer": "^6.0.3",
+    "codemirror": "^5.65.8",
+    "cors": "^2.8.5",
+    "file-saver": "^2.0.5",
+    "flag-icons": "^6.7.0",
+    "google-proto-files": "^3.0.3",
+    "google-protobuf": "^3.21.2",
+    "grpc-web": "^1.4.1",
+    "i18n-iso-countries": "^7.6.0",
+    "libphonenumber-js": "^1.10.30",
+    "material-design-icons-iconfont": "^6.1.1",
+    "moment": "^2.29.4",
+    "opentype.js": "^1.3.4",
+    "ngx-color": "^9.0.0",
+    "rxjs": "~7.8.0",
+    "tinycolor2": "^1.6.0",
+    "tslib": "^2.4.1",
+    "uuid": "^9.0.0",
+    "zone.js": "~0.13.1"
+  },
+  "devDependencies": {
+    "@angular-devkit/build-angular": "^16.2.0",
+    "@angular-eslint/builder": "16.1.0",
+    "@angular-eslint/eslint-plugin": "16.1.0",
+    "@angular-eslint/eslint-plugin-template": "16.1.0",
+    "@angular-eslint/schematics": "16.1.0",
+    "@angular-eslint/template-parser": "16.1.0",
+    "@angular/cli": "^16.2.0",
+    "@angular/compiler-cli": "^16.2.0",
+    "@angular/language-service": "^16.2.0",
+    "@bufbuild/buf": "^1.23.1",
+    "@types/file-saver": "^2.0.2",
+    "@types/google-protobuf": "^3.15.3",
+    "@types/jasmine": "~4.3.3",
+    "@types/jasminewd2": "~2.0.10",
+    "@types/jsonwebtoken": "^9.0.1",
+    "@types/node": "^18.15.11",
+    "@types/opentype.js": "^1.3.4",
+    "@types/qrcode": "^1.5.0",
+    "@types/uuid": "^9.0.2",
+    "@typescript-eslint/eslint-plugin": "^5.59.11",
+    "@typescript-eslint/parser": "^5.60.1",
+    "codelyzer": "^6.0.2",
+    "eslint": "^8.44.0",
+    "jasmine-core": "~4.6.0",
+    "jasmine-spec-reporter": "~7.0.0",
+    "karma": "^6.4.2",
+    "karma-chrome-launcher": "^3.2.0",
+    "karma-coverage-istanbul-reporter": "^3.0.3",
+    "karma-jasmine": "^5.1.0",
+    "karma-jasmine-html-reporter": "^2.1.0",
+    "prettier": "^2.8.7",
+    "prettier-plugin-organize-imports": "^3.2.2",
+    "protractor": "~7.0.0",
+    "typescript": "^4.9.5"
+  }
+}
diff --git a/nixpkgs/pkgs/by-name/zi/zitadel/package.nix b/nixpkgs/pkgs/by-name/zi/zitadel/package.nix
new file mode 100644
index 000000000000..cd4780965e13
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zi/zitadel/package.nix
@@ -0,0 +1,150 @@
+{ stdenv
+, buildGo121Module
+, callPackage
+, fetchFromGitHub
+, lib
+
+, buf
+, cacert
+, grpc-gateway
+, protoc-gen-go
+, protoc-gen-go-grpc
+, protoc-gen-validate
+, sass
+, statik
+}:
+
+let
+  version = "2.37.2";
+  zitadelRepo = fetchFromGitHub {
+    owner = "zitadel";
+    repo = "zitadel";
+    rev = "v${version}";
+    hash = "sha256-iWEL7R7eNDV4c1CZhmxxiHHI9ExwU6gnmHI6ildaXWY=";
+  };
+  goModulesHash = "sha256-lk4jEiI85EKk0G4JCHvCazqBBTfiNJqSfzvrJgDZ1Nc=";
+
+  buildZitadelProtocGen = name:
+    buildGo121Module {
+      pname = "protoc-gen-${name}";
+      inherit version;
+
+      src = zitadelRepo;
+
+      proxyVendor = true;
+      vendorHash = goModulesHash;
+
+      buildPhase = ''
+        go install internal/protoc/protoc-gen-${name}/main.go
+      '';
+
+      postInstall = ''
+        mv $out/bin/main $out/bin/protoc-gen-${name}
+      '';
+    };
+
+  protoc-gen-authoption = buildZitadelProtocGen "authoption";
+  protoc-gen-zitadel = buildZitadelProtocGen "zitadel";
+
+  # Buf downloads dependencies from an external repo - there doesn't seem to
+  # really be any good way around it. We'll use a fixed-output derivation so it
+  # can download what it needs, and output the relevant generated code for use
+  # during the main build.
+  generateProtobufCode =
+    { pname
+    , nativeBuildInputs ? [ ]
+    , bufArgs ? ""
+    , workDir ? "."
+    , outputPath
+    , hash
+    }:
+    stdenv.mkDerivation {
+      name = "${pname}-buf-generated";
+
+      src = zitadelRepo;
+
+      nativeBuildInputs = nativeBuildInputs ++ [ buf ];
+
+      buildPhase = ''
+        cd ${workDir}
+        export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
+        HOME=$TMPDIR buf generate ${bufArgs}
+      '';
+
+      installPhase = ''
+        cp -r ${outputPath} $out
+      '';
+
+      outputHashMode = "recursive";
+      outputHashAlgo = "sha256";
+      outputHash = hash;
+    };
+
+  protobufGenerated = generateProtobufCode {
+    pname = "zitadel";
+    nativeBuildInputs = [
+      grpc-gateway
+      protoc-gen-authoption
+      protoc-gen-go
+      protoc-gen-go-grpc
+      protoc-gen-validate
+      protoc-gen-zitadel
+    ];
+    outputPath = ".artifacts";
+    hash = "sha256-+9UFBWBuSYNbfimKwJUSoiUh+8bDHGnPdx1MKDul1U4=";
+  };
+in
+buildGo121Module rec {
+  name = "zitadel";
+  inherit version;
+
+  src = zitadelRepo;
+
+  nativeBuildInputs = [ sass statik ];
+
+  proxyVendor = true;
+  vendorHash = goModulesHash;
+
+  # Adapted from Makefile in repo, with dependency fetching and protobuf codegen
+  # bits removed
+  buildPhase = ''
+    mkdir -p pkg/grpc
+    cp -r ${protobufGenerated}/grpc/github.com/zitadel/zitadel/pkg/grpc/* pkg/grpc
+    mkdir -p openapi/v2/zitadel
+    cp -r ${protobufGenerated}/grpc/zitadel/ openapi/v2/zitadel
+
+    go generate internal/api/ui/login/static/resources/generate.go
+    go generate internal/api/ui/login/statik/generate.go
+    go generate internal/notification/statik/generate.go
+    go generate internal/statik/generate.go
+
+    mkdir -p docs/apis/assets
+    go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md
+
+    cp -r ${passthru.console}/* internal/api/ui/console/static
+    CGO_ENABLED=0 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.version=${version}'"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 zitadel $out/bin/
+  '';
+
+  passthru = {
+    console = callPackage
+      (import ./console.nix {
+        inherit generateProtobufCode version zitadelRepo;
+      })
+      { };
+  };
+
+  meta = with lib; {
+    description = "Identity and access management platform";
+    homepage = "https://zitadel.com/";
+    downloadPage = "https://github.com/zitadel/zitadel/releases";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.asl20;
+    sourceProvenance = [ sourceTypes.fromSource ];
+    maintainers = with maintainers; [ Sorixelle ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix b/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix
new file mode 100644
index 000000000000..26fa5ec67070
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zpaqfranz";
+  version = "58.10";
+
+  src = fetchFromGitHub {
+    owner = "fcorbelli";
+    repo = "zpaqfranz";
+    rev = finalAttrs.version;
+    hash = "sha256-eBokpah7j3QQChprvjeigt2/sEpkq6ZS4rQhIP5cAYo=";
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    eval $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -Dunix zpaqfranz.cpp -o zpaqfranz -pthread
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 zpaqfranz -t $out/bin/
+    installManPage man/zpaqfranz.1
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/fcorbelli/zpaqfranz";
+    description = "Advanced multiversioned deduplicating archiver, with HW acceleration, encryption and paranoid-level tests";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/zx/zxpy/package.nix b/nixpkgs/pkgs/by-name/zx/zxpy/package.nix
new file mode 100644
index 000000000000..1735a6523b0b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/zx/zxpy/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, python3
+, fetchFromGitHub
+, fetchpatch
+, deterministic-uname
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "zxpy";
+  version = "1.6.3";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "tusharsadhwani";
+    repo = "zxpy";
+    rev = version;
+    hash = "sha256-/sOLSIqaAUkaAghPqe0Zoq7C8CSKAd61o8ivtjJFcJY=";
+  };
+
+  patches = [
+    # fix test caused by `uname -p` printing unknown
+    # https://github.com/tusharsadhwani/zxpy/pull/53
+    (fetchpatch {
+      name = "allow-unknown-processor-in-injection-test.patch";
+      url = "https://github.com/tusharsadhwani/zxpy/commit/95ad80caddbab82346f60ad80a601258fd1238c9.patch";
+      hash = "sha256-iXasOKjWuxNjjTpb0umNMNhbFgBjsu5LsOpTaXllATM=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    python3.pkgs.setuptools
+    python3.pkgs.wheel
+  ];
+
+  nativeCheckInputs = [
+    deterministic-uname
+    python3.pkgs.pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
+  pythonImportsCheck = [ "zx" ];
+
+  meta = with lib; {
+    description = "Shell scripts made simple";
+    homepage = "https://github.com/tusharsadhwani/zxpy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "zxpy";
+  };
+}