Compare commits

...

104 Commits

Author SHA1 Message Date
Shelvacu
05231c84e8 gitea: keep login session alive for 30 days 2024-06-13 19:24:00 -07:00
74c188012a todo.md: install folio 2024-06-13 20:53:16 +00:00
e0c741427e ship "switchboard" program, for configuring bluetooth/network/sound 2024-06-13 19:51:19 +00:00
999a173001 sane-tag-music: --trackno "" fix-tags FOO can be used to clear FOOs track number field 2024-06-13 08:22:57 +00:00
330a64d820 feeds: add xorvoid.com 2024-06-13 04:46:12 +00:00
2e2f5dd373 scripts/sync: remove unnecessary sudo calls when mounting 2024-06-13 03:15:58 +00:00
5561dde31d readme: update for a flake-free world 2024-06-13 03:14:27 +00:00
c3ae60d71b flake.nix: remove (no longer used) 2024-06-13 03:09:45 +00:00
1c79209e23 scripts/sync: lift out of flake 2024-06-13 03:09:02 +00:00
6d1db1ee67 feeds: update metadata 2024-06-13 03:03:15 +00:00
88d462764f feeds: fix to work with scripts/update 2024-06-13 02:18:30 +00:00
8f634d9bb0 todo.md: address the sudo-related items 2024-06-13 01:30:44 +00:00
3e35210e4b systemd: allow wheel users to start/stop any service 2024-06-13 01:30:18 +00:00
04f4d330a8 programs: enable free 2024-06-13 01:09:48 +00:00
ce60e53b9a programs: add ps 2024-06-13 01:04:24 +00:00
3ff9f974a6 programs: enable watch 2024-06-13 00:59:34 +00:00
11e9ad5eca unl0kr.conf: fix formatting 2024-06-13 00:13:33 +00:00
bf99a64b89 unl0kr: fix that unl0kr wasnt always visible (so, wait for /dev/fb0 to appear before launch) 2024-06-13 00:13:19 +00:00
3b43562841 todo.md: address completed moby input-still-enabled-when-screen-off issue 2024-06-13 00:12:26 +00:00
131e43e975 scripts/deploy: avoid ssh-based copies to self 2024-06-13 00:12:00 +00:00
e34a9957e3 hosts/common/nix: migrate the nixpkgs-overlay integration point (part 2) 2024-06-12 23:32:18 +00:00
ea1a0b72b5 hosts/common/nix: migrate the nixpkgs-overlay integration point (part 1)
this has to be done in two steps to avoid nix-daemon bugs
2024-06-12 23:20:37 +00:00
aab9ed0d35 zsh: switch: pass through args 2024-06-12 23:09:35 +00:00
f477370e4c scripts/deploy: add more logging 2024-06-12 23:09:32 +00:00
b5fc8cfd4e scripts/deploy: when deploying all machines, dont let one failed deployment abort the whole job 2024-06-12 23:09:27 +00:00
4fdaacf8ad nit: use pkg.extend in place of pkgs.appendOverlays where applicable 2024-06-12 23:09:16 +00:00
f1705686b8 fix: dont double-apply overlays
previous behavior was that overlays were *implicitly* applied when i
imported nixpkgs, and then explicitly applied again later in the config.

for some reason i can't remove (or adjust?) the implicit application
without causing evals to hang w/o so much as any error message.
2024-06-12 23:08:04 +00:00
0d0fa8b37f nixpkgs: 2024-06-11 -> 2024-06-12 2024-06-12 09:42:55 +00:00
b5b39d1500 scripts/deploy: add the equivalent of my "pre-deploy" functionality 2024-06-12 09:04:17 +00:00
86482e922c scripts/update: add a --dry-run option 2024-06-12 08:44:02 +00:00
111c69b368 firefox.extensions.metamask: 11.16.8 -> 11.16.9 2024-06-12 08:37:59 +00:00
60c13d34a7 nixpkgs-wayland: 2024-06-08 -> 2024-06-12 2024-06-12 08:37:35 +00:00
823d064ab0 sops-nix: 2024-06-03 -> 2024-06-11 2024-06-12 08:35:54 +00:00
3f88d750c6 uassets: 2024-06-08 -> 2024-06-12 2024-06-12 08:35:34 +00:00
05f29ba01e sysvol: 2024-06-07 -> 2024-06-09 2024-06-12 08:35:22 +00:00
2b11bac1eb scripts: add an "update" script to update all my packages
it probably doesnt update feeds yet, though
2024-06-12 08:29:45 +00:00
86adc38537 zsh: fix switch alias for a post-flake world 2024-06-12 08:29:08 +00:00
b787289b39 scripts/deploy: if no host is specified, then deploy to the current host 2024-06-12 07:44:21 +00:00
63f3b8e89b handbrake: disable until i fix the build 2024-06-12 07:40:29 +00:00
448b8007ca scripts: remove outdated flake update script 2024-06-12 07:11:41 +00:00
9fc4119275 mesa-demos: deploy 2024-06-12 07:11:41 +00:00
8f1332797d crappy: dont auto-start messengers 2024-06-12 07:11:41 +00:00
368184e24f flake: add a crappy-min-next deploy target 2024-06-12 07:11:41 +00:00
c8e73d3f76 crappy: add user to "render" group 2024-06-12 07:11:41 +00:00
43da4955b7 crappy: deploy linux-exynos5-mainline kernel 2024-06-12 07:11:41 +00:00
46e9d5f758 programs: fix s6 deps when dbus isnt enabled 2024-06-12 07:11:41 +00:00
66a012b555 nixpkgs: 2024-06-08 -> 2024-06-11
i haven't actually deployed this yet: i'm pulling it for crappy-staging, but had to update all branches because the trust-dns patch didn't apply cleanly
2024-06-12 07:11:41 +00:00
fff965ab9b linux-postmarketos-exynos5: build with LIMA/MALI enabled as well (experimental) 2024-06-12 07:11:41 +00:00
406adde549 scripts/deploy: skip the signing step if we have no signing key 2024-06-12 07:11:14 +00:00
c9b2699c9f nixpkgs: fix sysvol patch hash 2024-06-12 07:03:23 +00:00
f91d3e35f3 flake: port deploy script to its own thing 2024-06-12 05:48:03 +00:00
4712ba9f2d check-nur: extract from the flake 2024-06-12 02:50:51 +00:00
03b2f2a433 rename health-check -> check-uninsane so i can expand the checks 2024-06-12 02:35:07 +00:00
51b1a6e679 default.nix: define attributes necessary to build any of my hosts or their packages 2024-06-12 02:21:50 +00:00
f148e5a580 pkgs: fix infinite recursion when evaluating nix-build -A MY_PKG 2024-06-12 01:18:17 +00:00
079f945f38 unl0kr: 2.0.0 -> 3.2.0 2024-06-12 00:49:26 +00:00
29cc7e4676 flake: add targets to deploy to crappy 2024-06-12 00:49:14 +00:00
11c97fd4c0 crappy: actually enable landlock 2024-06-11 00:47:30 +00:00
a5cb989c59 hosts/common: add remote /mnt/crappy/home mount 2024-06-11 00:36:18 +00:00
3d77a7cbc9 secrets/common: allow crappy to access these secrets 2024-06-11 00:27:37 +00:00
8e7401955f hosts/common: add crappy's pubkey/lan IP 2024-06-11 00:27:14 +00:00
fa605768e7 hosts/common: enable ALL firmware -- not just the "redistributable" stuff 2024-06-11 00:26:52 +00:00
3c279edd31 feeds: unsubscribe from Vsauce 2024-06-11 00:26:17 +00:00
a736d6d77b crappy: get it to load the firmware required for its wifi chipset (mwifiex_sdio) 2024-06-11 00:26:02 +00:00
8ad118162e doc: how to recover or add new hosts 2024-06-11 00:25:00 +00:00
5c13bb20d7 crappy: test (but dont deploy) a linux_latest kernel w/ panel patch
it doesn't boot, not sure why
2024-06-10 21:26:59 +00:00
170d36fc05 crappy: fix u-boot boot order to include usb 2024-06-10 06:07:53 +00:00
b828edf3c7 hal/samsung: remove some dead code 2024-06-10 03:49:43 +00:00
e10dfaefe9 hal/samsung: test a bunch of different kernels; enable linux_latest which works if i patch it 2024-06-10 03:48:31 +00:00
49e1a85afb linux-postmarketos-exynos5: test some patches for enabling graphics output on later kernels 2024-06-10 03:47:35 +00:00
56dfe8baa8 linux-exynos5-mainline: init
it builds, but is not bootable on samsung chromebook
2024-06-09 20:35:13 +00:00
95685fe91f linux-postmarketos-*: factor out a sane-kernel-tools helper set 2024-06-09 19:34:07 +00:00
8f6b4cc551 refactor/rename: linux-postmarketos -> linux-postmarketos-allwinner 2024-06-09 18:43:38 +00:00
89c9733ed2 linux-postmarketos-exynos5: add "optimizeForSize" option 2024-06-09 18:40:38 +00:00
ec29ec76f0 swayidle: fix that input events werent suppressed during screen-off 2024-06-09 18:36:57 +00:00
0f97e3d7ed sane-input-handler: fix that input events werent suppressed during screen-off
note that this doesn't fix input gating during the
screenoff-after-inactivity case.
2024-06-09 18:28:31 +00:00
6fb5cedd69 linux-postmarketos-exynos5: allow overriding the linux version 2024-06-09 17:48:46 +00:00
0382af1fae linux-postmarketos-exynos5: actually, i dont need to build with CC_OPTIMIZE_FOR_SIZE=y 2024-06-09 07:00:26 +00:00
b24b68a6bd mpv: switch to mainline mpv 2024-06-09 06:48:43 +00:00
952da0f314 sysvol: build via the package as it will appear in nixpkgs 2024-06-09 06:34:09 +00:00
cb32dc99cd sysvol: fix background transparency 2024-06-09 01:50:39 +00:00
5e7a05c183 sysvol: remove unused finalAttrs 2024-06-09 01:11:54 +00:00
656b478cc0 nixpkgs: remove ancient commented-out patches 2024-06-09 00:55:28 +00:00
fbbc0eb294 nixpkgs: cleanup patching implementation 2024-06-09 00:52:01 +00:00
502c9d1db3 nixpkgs: 24.05-unstable-2024-06-xx -> 24.05-unstable-2024-06-08 2024-06-09 00:48:52 +00:00
36934eedfd nixpkgs-wayland: 0-unstable-2024-06-xx -> 0-unstable-2024-06-08 2024-06-09 00:48:26 +00:00
56f982e214 delfin: remove
it's in nixpkgs now, and the co-maintainer is doing a very good job with it
2024-06-09 00:17:04 +00:00
54c4cd53b3 firefox-extensions: ether-metamask, sponsorblock, ublacklist -> latest 2024-06-09 00:01:12 +00:00
1c4fc335b3 uassets: 0-unstable-2024-05-27 -> 0-unstable-2024-06-08 2024-06-09 00:00:44 +00:00
21d3f41b38 signal-desktop-from-src: 7.8.0 -> 7.11.1 2024-06-09 00:00:27 +00:00
031ce236f3 firefox-extensions: fix the update script to not grab betas for u-block 2024-06-08 23:43:35 +00:00
a4eb073918 signal-desktop-from-src: fix the update script to ignore betas 2024-06-08 23:13:56 +00:00
75ae868bde nixpkgs: don't fail build if a patch has already been applied 2024-06-08 22:49:55 +00:00
b6d9d58a14 firefox-extensions.bypass-paywalls-clean: disable updateScript 2024-06-08 22:08:25 +00:00
14a5b8d9f2 nixpkgs: get the updateScripts to be populated into me update.pkgs.* attrs 2024-06-08 22:01:33 +00:00
ede68b563e nixpkgs-{staging,next}: add an update script 2024-06-08 21:15:47 +00:00
33f4db254d nixpkgs: add an update script
this only updates the master branch -- for now
2024-06-08 20:44:23 +00:00
6e8cb1bbb2 nixpkgs-wayland: add an update script 2024-06-08 20:24:56 +00:00
b00fb22137 sops-nix: add an update script 2024-06-08 20:22:04 +00:00
4d74c2ede6 sysvol: 0-unstable-2024-04-11 -> 0-unstable-2024-06-07 2024-06-08 20:11:07 +00:00
c4c5a640ce sysvol: add an update script 2024-06-08 19:58:29 +00:00
514fbca3f1 gitea: enable push-to-create for new repositories 2024-06-08 03:46:52 +00:00
71a19e247f fix check.nur (dont use builtin fetchers when stdenv ones are available) 2024-06-08 03:28:47 +00:00
Shelvacu
bcab89dbfb gitea: enable push-to-create for new repositories 2024-06-07 20:27:43 -07:00
106 changed files with 1455 additions and 1322 deletions

View File

@@ -3,6 +3,7 @@ keys:
- &user_lappy_colin age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g
- &user_servo_colin age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu
- &user_moby_colin age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9
- &host_crappy age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj
- &host_desko age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v
- &host_lappy age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn
- &host_servo age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf
@@ -15,6 +16,7 @@ creation_rules:
- *user_lappy_colin
- *user_servo_colin
- *user_moby_colin
- *host_crappy
- *host_desko
- *host_lappy
- *host_servo

View File

@@ -2,6 +2,8 @@
# .❄≡We|_c0m3 7o m`/ f14k≡❄.
(er, it's not a flake anymore. welcome to my nix files.)
## What's Here
this is the top-level repo from which i configure/deploy all my NixOS machines:
@@ -29,11 +31,7 @@ you might specifically be interested in these files (elaborated further in #key-
## Using This Repo In Your Own Config
this should be a pretty "standard" flake. just reference it, and import either
- `nixosModules.sane` (for the modules)
- `overlays.pkgs` (for the packages)
or follow the instructions [here][NUR] to use it via the Nix User Repositories.
follow the instructions [here][NUR] to access my packages through the Nix User Repositories.
[NUR]: https://nur.nix-community.org/
@@ -41,19 +39,15 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
- `doc/`
- instructions for tasks i find myself doing semi-occasionally in this repo.
- `hosts/`
- the bulk of config which isn't factored with external use in mind.
- configs which aren't factored with external use in mind.
- that is, if you were to add this repo to a flake.nix for your own use,
you won't likely be depending on anything in this directory.
- `integrations/`
- code intended for consumption by external tools (e.g. the Nix User Repos)
- code intended for consumption by external tools (e.g. the Nix User Repos).
- `modules/`
- config which is gated behind `enable` flags, in similar style to nixpkgs'
`nixos/` directory.
- if you depend on this repo, it's most likely for something in this directory.
- `nixpatches/`
- literally, diffs i apply atop upstream nixpkgs before performing further eval.
- config which is gated behind `enable` flags, in similar style to nixpkgs' `nixos/` directory.
- if you depend on this repo for anything besides packages, it's most likely for something in this directory.
- `overlays/`
- exposed via the `overlays` output in `flake.nix`.
- predominantly a list of `callPackage` directives.
- `pkgs/`
- derivations for things not yet packaged in nixpkgs.
@@ -61,13 +55,12 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
- inline code for wholly custom packages (e.g. `pkgs/additional/sane-scripts/` for CLI tools
that are highly specific to my setup).
- `scripts/`
- scripts which aren't reachable on a deployed system, but may aid manual deployments
- scripts which aren't reachable on a deployed system, but may aid manual deployments.
- `secrets/`
- encrypted keys, API tokens, anything which one or more of my machines needs
read access to but shouldn't be world-readable.
- not much to see here
- not much to see here.
- `templates/`
- exposed via the `templates` output in `flake.nix`.
- used to instantiate short-lived environments.
- used to auto-fill the boiler-plate portions of new packages.

View File

@@ -2,7 +2,6 @@
- `rmDbusServices` may break sandboxing
- e.g. if the package ships a systemd unit which references $out, then make-sandboxed won't properly update that unit.
- `rmDbusServicesInPlace` is not affected
- moby: touchscreen input is still enabled when screen is off
- when moby wlan is explicitly set down (via ip link set wlan0 down), /var/lib/trust-dns/dhcp-configs doesn't get reset
- `ip monitor` can detect those manual link state changes (NM-dispatcher it seems cannot)
- or try dnsmasq?
@@ -78,15 +77,11 @@
- it adds like 50-70ms launch time _on my laptop_. i'd hate to know how much that is on the pinephone.
- make dconf stuff less monolithic
- i.e. per-app dconf profiles for those which need it. possible static config.
- flatpak/spectrum has some stuff to proxy dconf per-app
- canaries for important services
- e.g. daily email checks; daily backup checks
- integrate `nix check` into Gitea actions?
#### sudo-free world
- `systemctl restart FOO`: needs `sudo`
- `systemctl daemon-reload`: needs sudo
- `watch ifconfig`: needs `SANEBOX_DISABLE=1`
### user experience
- rofi: sort items case-insensitively
- xdg-desktop-portal shouldn't kill children on exit
@@ -103,6 +98,7 @@
- Gnome Highscore (retro games)?: <https://gitlab.gnome.org/World/highscore>
- better maps for mobile (Osmin (QtQuick)? Pure Maps (Qt/Kirigami)?
- note-taking app: <https://linuxphoneapps.org/categories/note-taking/>
- Folio is nice, uses standard markdown, though it only supports flat repos
- OSK overlay specifically for mobile gaming
- i.e. mock joysticks, for use with SuperTux and SuperTuxKart
- install mobile-friendly games:

View File

@@ -3,7 +3,60 @@
#
# the primary purpose of this file is so i can run `updateScript`s which expect
# the root to be `default.nix`
{ pkgs ? import <nixpkgs> {} }:
pkgs.appendOverlays [
(import ./overlays/all.nix)
]
{ }:
let
mkPkgs = args: (import ./pkgs/additional/nixpkgs args).extend
(import ./overlays/all.nix);
inherit (mkPkgs {}) lib;
evalHost = { name, system, branch ? "master", variant ? null }:
let
pkgs = mkPkgs { inherit system; variant = branch; };
in pkgs.nixos (
[
(lib.optionalAttrs (variant == "light") {
sane.maxBuildCost = 2;
})
(lib.optionalAttrs (variant == "min") {
sane.maxBuildCost = 0;
})
(import ./hosts/instantiate.nix { hostName = name; })
(import ./modules)
pkgs.sops-nix.nixosModules.sops
]
);
mkFlavoredHost = args: let
host = evalHost args;
# expose the toplevel nixos system as the toplevel attribute itself,
# with nested aliases for other common build targets
in host.config.system.build.toplevel.overrideAttrs (base: {
passthru = (base.passthru or {}) // {
img = host.config.system.build.img;
pkgs = host.config.system.build.pkgs;
programs = lib.mapAttrs (_: p: p.package) host.config.sane.programs;
toplevel = host.config.system.build.toplevel; #< self
};
});
mkHost = args: {
"${args.name}" = mkFlavoredHost args;
"${args.name}-next" = mkFlavoredHost args // { branch = "staging-next"; };
"${args.name}-staging" = mkFlavoredHost args // { branch = "staging"; };
"${args.name}-light" = mkFlavoredHost args // { variant = "light"; };
"${args.name}-light-next" = mkFlavoredHost args // { variant = "light"; branch = "staging-next"; };
"${args.name}-light-staging" = mkFlavoredHost args // { variant = "light"; branch = "staging"; };
"${args.name}-min" = mkFlavoredHost args // { variant = "min"; };
"${args.name}-min-next" = mkFlavoredHost args // { variant = "min"; branch = "staging-next"; };
"${args.name}-min-staging" = mkFlavoredHost args // { variant = "min"; branch = "staging-staging"; };
};
hosts = lib.foldl' (acc: host: acc // (mkHost host)) {} [
{ name = "crappy"; system = "armv7l-linux"; }
{ name = "desko"; system = "x86_64-linux"; }
{ name = "lappy"; system = "x86_64-linux"; }
{ name = "moby"; system = "aarch64-linux"; }
{ name = "rescue"; system = "x86_64-linux"; }
{ name = "servo"; system = "x86_64-linux"; }
];
in (mkPkgs {}) // {
inherit hosts;
}

25
doc/adding-a-host.md Normal file
View File

@@ -0,0 +1,25 @@
to add a host:
- create the new nix targets
- hosts/by-name/HOST
- let the toplevel (flake.nix) know about HOST
- build and flash an image
- optionally expand the rootfs
- `cfdisk /dev/sda2` -> resize partition
- `mount /dev/sda2 boot`
- `btrfs filesystem resize max root`
- setup required persistent directories
- `mkdir -p root/persist/private`
- `gocryptfs -init root/persist/private`
- then boot the device, and for every dangling symlink in ~/.local/share, ~/.cache, do `mkdir -p` on it
- setup host ssh
- `mkdir -p root/persist/plaintext/etc/ssh/host_keys`
- boot the machine and let it create its own ssh keys
- add the pubkey to `hosts/common/hosts.nix`
- setup user ssh
- `ssh-keygen`. don't enter any password; it's stored in a password-encrypted fs.
- add the pubkey to `hosts/common/hosts.nix`
- allow the new host to view secrets
- instructions in hosts/common/secrets.nix
- run `ssh-to-age` on user/host pubkeys
- add age key to .sops.yaml
- update encrypted secrets: `sops updatekeys path/to/secret.yaml`

12
doc/recovery.md Normal file
View File

@@ -0,0 +1,12 @@
## deploying to SD card
- build a toplevel config: `nix build '.#hostSystems.moby'`
- mount a system:
- `mkdir -p root/{nix,boot}`
- `mount /dev/sdX1 root/boot`
- `mount /dev/sdX2 root/nix`
- copy the config:
- `sudo nix copy --no-check-sigs --to root/ $(readlink result)`
- nix will copy stuff to `root/nix/store`
- install the boot files:
- `sudo /nix/store/sbwpwngjlgw4f736ay9hgi69pj3fdwk5-extlinux-conf-builder.sh -d ./root/boot -t 5 -c $(readlink ./result)`
- extlinux-conf-builder can be found in `/run/current-system/bin/switch-to-configuration`

586
flake.nix
View File

@@ -1,586 +0,0 @@
# FLAKE FEEDBACK:
# - if flake inputs are meant to be human-readable, a human should be able to easily track them down given the URL.
# - this is not the case with registry URLs, like `nixpkgs/nixos-22.11`.
# - this is marginally the case with schemes like `github:nixos/nixpkgs`.
# - given the *existing* `git+https://` scheme, i propose expressing github URLs similarly:
# - `github+https://github.com/nixos/nixpkgs/tree/nixos-22.11`
# - this would allow for the same optimizations as today's `github:nixos/nixpkgs`, but without obscuring the source.
# a code reader could view the source being referenced simply by clicking the https:// portion of that URI.
# - need some way to apply local patches to inputs.
#
#
# DEVELOPMENT DOCS:
# - Flake docs: <https://nixos.wiki/wiki/Flakes>
# - Flake RFC: <https://github.com/tweag/rfcs/blob/flakes/rfcs/0049-flakes.md>
# - Discussion: <https://github.com/NixOS/rfcs/pull/49>
# - <https://serokell.io/blog/practical-nix-flakes>
#
#
# COMMON OPERATIONS:
# - update a specific flake input:
# - `nix flake lock --update-input nixpkgs`
{
outputs = {
self,
}@inputs:
let
inherit (builtins) attrNames elem listToAttrs map mapAttrs;
# redefine some nixpkgs `lib` functions to avoid the infinite recursion
# of if we tried to use patched `nixpkgs.lib` as part of the patching process.
mapAttrs' = f: set:
listToAttrs (map (attr: f attr set.${attr}) (attrNames set));
optionalAttrs = cond: attrs: if cond then attrs else {};
# mapAttrs but without the `name` argument
mapAttrValues = f: mapAttrs (_: f);
nixpkgs' = import ./pkgs/additional/nixpkgs;
nixpkgsUnpatched = nixpkgs' { doPatch = false; localSystem = "x86_64-linux"; };
nixpkgsCompiledBy = { system, variant ? "master" }:
(nixpkgs' { inherit variant system; }).legacyPackages."${system}";
evalHost = { name, local, target, variant ? null, nixpkgs ? nixpkgs' { localSystem = local; system = target;} }: nixpkgs.nixos (
[
(optionalAttrs (variant == "light") {
sane.maxBuildCost = 2;
})
(optionalAttrs (variant == "min") {
sane.maxBuildCost = 0;
})
(import ./hosts/instantiate.nix { hostName = name; })
(import ./modules)
(nixpkgs.appendOverlays [ self.overlays.pkgs ]).sops-nix.nixosModules.sops
{
nixpkgs.overlays = [
self.overlays.sane-all
];
}
]
);
in {
nixosConfigurations = let
hosts = {
servo = { name = "servo"; local = "x86_64-linux"; target = "x86_64-linux"; };
desko = { name = "desko"; local = "x86_64-linux"; target = "x86_64-linux"; };
desko-light = { name = "desko"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "light"; };
lappy = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; };
lappy-light = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "light"; };
lappy-min = { name = "lappy"; local = "x86_64-linux"; target = "x86_64-linux"; variant = "min"; };
moby = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; };
moby-light = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; variant = "light"; };
moby-min = { name = "moby"; local = "x86_64-linux"; target = "aarch64-linux"; variant = "min"; };
# crappy is technically armv7a, and armv7l uses only a _subset_ of the available ISA.
# but it's not as widely cached.
crappy = { name = "crappy"; local = "x86_64-linux"; target = "armv7l-linux"; };
crappy-min = { name = "crappy"; local = "x86_64-linux"; target = "armv7l-linux"; variant = "min"; };
crappy-7a = { name = "crappy"; local = "x86_64-linux"; target = "armv7a-linux"; variant = "min"; };
rescue = { name = "rescue"; local = "x86_64-linux"; target = "x86_64-linux"; };
};
hostsNext = mapAttrs' (h: v: {
name = "${h}-next";
value = v // {
nixpkgs = nixpkgs' {
localSystem = v.local;
system = v.target;
variant = "staging-next";
};
};
}) hosts;
hostsStaging = mapAttrs' (h: v: {
name = "${h}-staging";
value = v // {
nixpkgs = nixpkgs' {
localSystem = v.local;
system = v.target;
variant = "staging";
};
};
}) hosts;
in mapAttrValues evalHost (
hosts // hostsNext // hostsStaging
);
# unofficial output
# this produces a EFI-bootable .img file (GPT with a /boot partition and a system (/ or /nix) partition).
# after building this:
# - flash it to a bootable medium (SD card, flash drive, HDD)
# - resize the root partition (use cfdisk)
# - mount the part
# - chown root:nixbld <part>/nix/store
# - chown root:root -R <part>/nix/store/*
# - chown root:root -R <part>/persist # if using impermanence
# - populate any important things (persist/, home/colin/.ssh, etc)
# - boot
# - if fs wasn't resized automatically, then `sudo btrfs filesystem resize max /`
# - checkout this flake into /etc/nixos AND UPDATE THE FS UUIDS.
# - `nixos-rebuild --flake './#<host>' switch`
imgs = mapAttrValues (host: host.config.system.build.img) self.nixosConfigurations;
# unofficial output
hostConfigs = mapAttrValues (host: host.config) self.nixosConfigurations;
hostSystems = mapAttrValues (host: host.config.system.build.toplevel) self.nixosConfigurations;
hostPkgs = mapAttrValues (host: host.config.system.build.pkgs) self.nixosConfigurations;
hostPrograms = mapAttrValues (host: mapAttrValues (p: p.package) host.config.sane.programs) self.nixosConfigurations;
overlays = {
# N.B.: `nix flake check` requires every overlay to take `final: prev:` at defn site,
# hence the weird redundancy.
default = final: prev: self.overlays.pkgs final prev;
sane-all = final: prev: import ./overlays/all.nix final prev;
pkgs = final: prev: import ./overlays/pkgs.nix final prev;
preferences = final: prev: import ./overlays/preferences.nix final prev;
};
# this includes both our native packages and all the nixpkgs packages.
legacyPackages =
let
allPkgsFor = variant: additionalOverlays: system:
(nixpkgs' { inherit system variant; localSystem = "x86_64-linux"; })
.appendOverlays (
[
self.overlays.pkgs
] ++ additionalOverlays
);
allPkgsFor' = system: allPkgsFor
"master"
[(self: super: {
# build `pkgsNext.FOO` to build the package FOO from nixpkgs staging-next branch
pkgsNext = allPkgsFor "staging-next" [] system;
pkgsStaging = allPkgsFor "staging" [] system;
})]
system
;
in {
x86_64-linux = allPkgsFor' "x86_64-linux";
aarch64-linux = allPkgsFor' "aarch64-linux";
};
# extract only our own packages from the full set.
# because of `nix flake check`, we flatten the package set and only surface x86_64-linux packages.
packages = mapAttrs
(system: passthruPkgs: passthruPkgs.lib.filterAttrs
(name: pkg:
# keep only packages which will pass `nix flake check`, i.e. keep only:
# - derivations (not package sets)
# - packages that build for the given platform
(! elem name [ "feeds" "pythonPackagesExtensions" ])
&& (passthruPkgs.lib.meta.availableOn passthruPkgs.stdenv.hostPlatform pkg)
)
(
import ./pkgs { pkgs = passthruPkgs; }
)
)
# self.legacyPackages;
{
x86_64-linux = nixpkgs' { localSystem = "x86_64-linux"; };
}
;
apps."x86_64-linux" =
let
pkgs = self.legacyPackages."x86_64-linux";
sanePkgs = import ./pkgs { inherit pkgs; };
deployScript = host: addr: action: pkgs.writeShellScript "deploy-${host}" ''
set -e
host="${host}"
addr="${addr}"
action="${if action != null then action else ""}"
runOnTarget() {
# run the command ($@) on the machine we're deploying to.
# if that's a remote machine, then do it via ssh, else local shell.
if [ -n "$addr" ]; then
ssh "$addr" "$@"
else
"$@"
fi
}
nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --out-link "./build/result-$host" "$@"
storePath="$(readlink ./build/result-$host)"
# mimic `nixos-rebuild --target-host`, in effect:
# - nix-copy-closure ...
# - nix-env --set ...
# - switch-to-configuration <boot|dry-activate|switch|test|>
# avoid the actual `nixos-rebuild` for a few reasons:
# - fewer nix evals
# - more introspectability and debuggability
# - sandbox friendliness (especially: `git` doesn't have to be run as root)
if [ -n "$addr" ]; then
sudo nix store sign -r -k /run/secrets/nix_signing_key "$storePath"
# add more `-v` for more verbosity (up to 5).
# builders-use-substitutes false: optimizes so that the remote machine doesn't try to get paths from its substituters.
# we already have all paths here, and the remote substitution is slow to check and SERIOUSLY flaky on moby in particular.
nix copy -vv --option builders-use-substitutes false --to "ssh-ng://$addr" "$storePath"
fi
if [ -n "$action" ]; then
runOnTarget sudo nix-env -p /nix/var/nix/profiles/system --set "$storePath"
runOnTarget sudo "$storePath/bin/switch-to-configuration" "$action"
fi
'';
deployApp = host: addr: action: {
type = "app";
program = ''${deployScript host addr action}'';
};
# pkg updating.
# a cleaner alternative lives here: <https://discourse.nixos.org/t/how-can-i-run-the-updatescript-of-personal-packages/25274/2>
# mkUpdater :: [ String ] -> { type = "app"; program = path; }
mkUpdater = attrPath: {
type = "app";
program = let
pkg = pkgs.lib.getAttrFromPath attrPath sanePkgs;
strAttrPath = pkgs.lib.concatStringsSep "." attrPath;
commandArgv = pkg.updateScript.command or pkg.updateScript;
command = pkgs.lib.escapeShellArgs commandArgv;
in builtins.toString (pkgs.writeShellScript "update-${strAttrPath}" ''
set -x
env UPDATE_NIX_NAME=${pkg.name} UPDATE_NIX_PNAME=${pkg.pname} UPDATE_NIX_OLD_VERSION=${pkg.version} UPDATE_NIX_ATTR_PATH=${strAttrPath} ${command}
'');
};
mkUpdatersNoAliases = opts: basePath: pkgs.lib.concatMapAttrs
(name: pkg:
if pkg.recurseForDerivations or false then {
"${name}" = mkUpdaters opts (basePath ++ [ name ]);
} else if pkg.updateScript or null != null then {
"${name}" = mkUpdater (basePath ++ [ name ]);
} else {}
)
(pkgs.lib.getAttrFromPath basePath sanePkgs);
mkUpdaters = { ignore ? [], flakePrefix ? [] }@opts: basePath:
let
updaters = mkUpdatersNoAliases opts basePath;
invokeUpdater = name: pkg:
let
fullPath = basePath ++ [ name ];
doUpdateByDefault = !builtins.elem fullPath ignore;
# in case `name` has a `.` in it, we have to quote it
escapedPath = builtins.map (p: ''"${p}"'') fullPath;
updatePath = builtins.concatStringsSep "." (flakePrefix ++ escapedPath);
in pkgs.lib.optionalString doUpdateByDefault (
pkgs.lib.escapeShellArgs [
"nix" "run" ".#${updatePath}"
]
);
in {
type = "app";
# top-level app just invokes the updater of everything one layer below it
program = builtins.toString (pkgs.writeShellScript
(builtins.concatStringsSep "-" (flakePrefix ++ basePath))
(builtins.concatStringsSep
"\n"
(pkgs.lib.mapAttrsToList invokeUpdater updaters)
)
);
} // updaters;
in {
help = {
type = "app";
program = let
helpMsg = builtins.toFile "nixos-config-help-message" ''
commands:
- `nix run '.#help'`
- show this message
- `nix run '.#update.pkgs'`
- updates every package
- `nix run '.#update.feeds'`
- updates metadata for all feeds
- `nix run '.#init-feed' <url>`
- `nix run '.#deploy.{desko,lappy,moby,servo}[-light|-test]' [nix args ...]`
- build and deploy the host
- `nix run '.#preDeploy.{desko,lappy,moby,servo}[-light]' [nix args ...]`
- copy closures to a host, but don't activate it
- or `nix run '.#preDeploy'` to target all hosts
- `nix run '.#check'`
- make sure all systems build; NUR evaluates
- `nix run '.#bench'`
- benchmark the eval time of common targets this flake provides
specific build targets of interest:
- `nix build '.#imgs.rescue'`
'';
in builtins.toString (pkgs.writeShellScript "nixos-config-help" ''
cat ${helpMsg}
echo ""
echo "complete flake structure:"
nix flake show --option allow-import-from-derivation true
'');
};
# wrangle some names to get package updaters which refer back into the flake, but also conditionally ignore certain paths (e.g. sane.feeds).
# TODO: better design
update = rec {
_impl.pkgs.sane = mkUpdaters { flakePrefix = [ "update" "_impl" "pkgs" ]; ignore = [ [ "sane" "feeds" ] ]; } [ "sane" ];
pkgs = _impl.pkgs.sane;
_impl.feeds.sane.feeds = mkUpdaters { flakePrefix = [ "update" "_impl" "feeds" ]; } [ "sane" "feeds" ];
feeds = _impl.feeds.sane.feeds;
};
init-feed = {
type = "app";
program = "${pkgs.feeds.init-feed}";
};
deploy = {
desko = deployApp "desko" "desko" "switch";
desko-light = deployApp "desko-light" "desko" "switch";
lappy = deployApp "lappy" "lappy" "switch";
lappy-light = deployApp "lappy-light" "lappy" "switch";
lappy-min = deployApp "lappy-min" "lappy" "switch";
moby = deployApp "moby" "moby" "switch";
moby-light = deployApp "moby-light" "moby" "switch";
moby-min = deployApp "moby-min" "moby" "switch";
moby-test = deployApp "moby" "moby" "test";
servo = deployApp "servo" "servo" "switch";
# like `nixos-rebuild --flake . switch`
self = deployApp "$(hostname)" "" "switch";
self-light = deployApp "$(hostname)-light" "" "switch";
self-min = deployApp "$(hostname)-min" "" "switch";
type = "app";
program = builtins.toString (pkgs.writeShellScript "deploy-all" ''
nix run '.#deploy.lappy'
nix run '.#deploy.moby'
nix run '.#deploy.desko'
nix run '.#deploy.servo'
'');
};
preDeploy = {
# build the host and copy the runtime closure to that host, but don't activate it.
desko = deployApp "desko" "desko" null;
desko-light = deployApp "desko-light" "desko" null;
lappy = deployApp "lappy" "lappy" null;
lappy-light = deployApp "lappy-light" "lappy" null;
lappy-min = deployApp "lappy-min" "lappy" null;
moby = deployApp "moby" "moby" null;
moby-light = deployApp "moby-light" "moby" null;
moby-min = deployApp "moby-min" "moby" null;
servo = deployApp "servo" "servo" null;
type = "app";
program = builtins.toString (pkgs.writeShellScript "predeploy-all" ''
# copy the -min/-light variants first; this might be run while waiting on a full build. or the full build failed.
nix run '.#preDeploy.moby-min' -- "$@"
nix run '.#preDeploy.lappy-min' -- "$@"
nix run '.#preDeploy.moby-light' -- "$@"
nix run '.#preDeploy.lappy-light' -- "$@"
nix run '.#preDeploy.desko-light' -- "$@"
nix run '.#preDeploy.lappy' -- "$@"
nix run '.#preDeploy.servo' -- "$@"
nix run '.#preDeploy.moby' -- "$@"
nix run '.#preDeploy.desko' -- "$@"
'');
};
sync = {
type = "app";
program = builtins.toString (pkgs.writeShellScript "sync-all" ''
RC_lappy=$(nix run '.#sync.lappy' -- "$@")
RC_moby=$(nix run '.#sync.moby' -- "$@")
RC_desko=$(nix run '.#sync.desko' -- "$@")
echo "lappy: $RC_lappy"
echo "moby: $RC_moby"
echo "desko: $RC_desko"
'');
};
sync.desko = {
# copy music from servo to desko
# can run this from any device that has ssh access to desko and servo
type = "app";
program = builtins.toString (pkgs.writeShellScript "sync-to-desko" ''
sudo mount /mnt/desko/home
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compat /mnt/servo/media/Music /mnt/desko/home/Music "$@"
'');
};
sync.lappy = {
# copy music from servo to lappy
# can run this from any device that has ssh access to lappy and servo
type = "app";
program = builtins.toString (pkgs.writeShellScript "sync-to-lappy" ''
sudo mount /mnt/lappy/home
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compress --compat /mnt/servo/media/Music /mnt/lappy/home/Music "$@"
'');
};
sync.moby = {
# copy music from servo to moby
# can run this from any device that has ssh access to moby and servo
type = "app";
program = builtins.toString (pkgs.writeShellScript "sync-to-moby" ''
sudo mount /mnt/moby/home
sudo mount /mnt/desko/home
sudo mount /mnt/servo/media/Books
# copy photos/screenshots from moby to desko:
${pkgs.rsync}/bin/rsync -arv --exclude servo-macros /mnt/moby/home/Pictures/ /mnt/desko/home/Pictures/moby/
# copy books from servo to moby; delete old/untracked ones, but keep KOreader state files (sdr)
${pkgs.rsync}/bin/rsync -arv --delete --exclude unprocessed --exclude '*.sdr' /mnt/servo/media/Books/ /mnt/moby/home/Books/local/servo/
# N.B.: limited by network/disk -> reduce job count to improve pause/resume behavior
${pkgs.sane-scripts.sync-music}/bin/sane-sync-music --compress --compat --jobs 4 /mnt/servo/media/Music /mnt/moby/home/Music "$@"
'');
};
check = {
type = "app";
program = builtins.toString (pkgs.writeShellScript "check-all" ''
nix run '.#check.nur'
RC0=$?
nix run '.#check.hostConfigs'
RC1=$?
nix run '.#check.rescue'
RC2=$?
echo "nur: $RC0"
echo "hostConfigs: $RC1"
echo "rescue: $RC2"
exit $(($RC0 | $RC1 | $RC2))
'');
};
check.nur = {
# `nix run '.#check-nur'`
# validates that my repo can be included in the Nix User Repository
type = "app";
program = builtins.toString (pkgs.writeShellScript "check-nur" ''
cd ${./.}/integrations/nur
NIX_PATH= NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-env -f . -qa \* --meta --xml \
--allowed-uris https://static.rust-lang.org \
--option restrict-eval true \
--option allow-import-from-derivation true \
--drv-path --show-trace \
-I nixpkgs=${nixpkgsUnpatched} \
-I nixpkgs-overlays=${./.}/hosts/common/nix/overlay \
-I ../../ \
| tee # tee to prevent interactive mode
'');
};
check.hostConfigs = {
type = "app";
program = let
checkHost = host: let
shellHost = pkgs.lib.replaceStrings [ "-" ] [ "_" ] host;
in ''
nix build -v '.#nixosConfigurations.${host}.config.system.build.toplevel' --out-link ./build/result-${host} -j2 "$@"
RC_${shellHost}=$?
'';
in builtins.toString (pkgs.writeShellScript
"check-host-configs"
''
# build minimally-usable hosts first, then their full image.
# this gives me a minimal image i can deploy or copy over, early.
${checkHost "lappy-min"}
${checkHost "moby-min"}
${checkHost "desko-light"}
${checkHost "moby-light"}
${checkHost "lappy-light"}
${checkHost "desko"}
${checkHost "lappy"}
${checkHost "servo"}
${checkHost "moby"}
${checkHost "rescue"}
# still want to build the -light variants first so as to avoid multiple simultaneous webkitgtk builds
${checkHost "desko-light-next"}
${checkHost "moby-light-next"}
${checkHost "desko-next"}
${checkHost "lappy-next"}
${checkHost "servo-next"}
${checkHost "moby-next"}
${checkHost "rescue-next"}
echo "desko: $RC_desko"
echo "lappy: $RC_lappy"
echo "servo: $RC_servo"
echo "moby: $RC_moby"
echo "rescue: $RC_rescue"
echo "desko-next: $RC_desko_next"
echo "lappy-next: $RC_lappy_next"
echo "servo-next: $RC_servo_next"
echo "moby-next: $RC_moby_next"
echo "rescue-next: $RC_rescue_next"
# i don't really care if the -next hosts fail. i build them mostly to keep the cache fresh/ready
exit $(($RC_desko | $RC_lappy | $RC_servo | $RC_moby | $RC_rescue))
''
);
};
check.rescue = {
type = "app";
program = builtins.toString (pkgs.writeShellScript "check-rescue" ''
nix build -v '.#imgs.rescue' --out-link ./build/result-rescue-img -j2
'');
};
bench = {
type = "app";
program = builtins.toString (pkgs.writeShellScript "bench" ''
doBench() {
attrPath="$1"
shift
echo -n "benchmarking eval of '$attrPath'... "
/run/current-system/sw/bin/time -f "%e sec" -o /dev/stdout \
nix eval --no-eval-cache --quiet --raw ".#$attrPath" --apply 'result: if result != null then "" else "unexpected null"' $@ 2> /dev/null
}
if [ -n "$1" ]; then
doBench "$@"
else
doBench hostConfigs
doBench hostConfigs.lappy
doBench hostConfigs.lappy.sane.programs
doBench hostConfigs.lappy.sane.users.colin
doBench hostConfigs.lappy.sane.fs
doBench hostConfigs.lappy.environment.systemPackages
fi
'');
};
};
templates = {
env.python-data = {
# initialize with:
# - `nix flake init -t '/home/colin/dev/nixos/#env.python-data'`
# then enter with:
# - `nix develop`
path = ./templates/env/python-data;
description = "python environment for data processing";
};
pkgs.make = {
# initialize with:
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.make'`
path = ./templates/pkgs/make;
description = "default Makefile-based derivation";
};
pkgs.python = {
# initialize with:
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.python'`
path = ./templates/pkgs/python;
description = "python package";
};
pkgs.rust-inline = {
# initialize with:
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.rust-inline'`
path = ./templates/pkgs/rust-inline;
description = "rust package and development environment (inline rust sources)";
};
pkgs.rust = {
# initialize with:
# - `nix flake init -t '/home/colin/dev/nixos/#pkgs.rust'`
path = ./templates/pkgs/rust;
description = "rust package fit to ship in nixpkgs";
};
};
};
}

View File

@@ -12,6 +12,7 @@
users.users.colin.initialPassword = "147147";
sane.programs.sway.enableFor.user.colin = true;
sane.programs.calls.enableFor.user.colin = false;
sane.programs.consoleMediaUtils.enableFor.user.colin = true;
sane.programs.epiphany.enableFor.user.colin = true;
@@ -21,6 +22,12 @@
sane.programs.signal-desktop.enableFor.user.colin = false;
sane.programs.wike.enableFor.user.colin = true;
sane.programs.dino.config.autostart = false;
sane.programs.dissent.config.autostart = false;
sane.programs.fractal.config.autostart = false;
# sane.programs.guiApps.enableFor.user.colin = false;
# sane.programs.pcGuiApps.enableFor.user.colin = false; #< errors!
sane.programs.blueberry.enableFor.user.colin = false; # bluetooth manager: doesn't cross compile!

View File

@@ -50,9 +50,15 @@
ENABLE_CAPTCHA = true;
NOREPLY_ADDRESS = "noreply.anonymous.git@uninsane.org";
};
session.COOKIE_SECURE = true;
session = {
COOKIE_SECURE = true;
# keep me logged in for 30 days
SESSION_LIFE_TIME = 60 * 60 * 24 * 30;
};
repository = {
DEFAULT_BRANCH = "master";
ENABLE_PUSH_CREATE_USER = true;
ENABLE_PUSH_CREATE_ORG = true;
};
other = {
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;

View File

@@ -39,8 +39,8 @@
boot.loader.grub.enable = lib.mkDefault false;
boot.loader.generic-extlinux-compatible.enable = lib.mkDefault true;
# non-free firmware
hardware.enableRedistributableFirmware = true;
hardware.enableAllFirmware = true; # firmware with licenses that don't allow for redistribution. fuck lawyers, fuck IP, give me the goddamn firmware.
# hardware.enableRedistributableFirmware = true; # proprietary but free-to-distribute firmware (extraneous to `enableAllFirmware` option)
# default is 252274, which is too low particularly for servo.
# manifests as spurious "No space left on device" when trying to install watches,

View File

@@ -9,7 +9,7 @@
./ids.nix
./machine-id.nix
./net
./nix
./nix.nix
./persist.nix
./polyunfill.nix
./programs

View File

@@ -195,6 +195,7 @@ let
(fromDb "weekinethereumnews.com" // tech)
(fromDb "willow.phantoma.online") # wizard@xyzzy.link
(fromDb "xn--gckvb8fzb.com" // tech)
(fromDb "xorvoid.com" // tech)
(mkSubstack "astralcodexten" // rat // daily) # Scott Alexander
(mkSubstack "eliqian" // rat // weekly)
(mkSubstack "oversharing" // pol // daily)
@@ -238,7 +239,7 @@ let
(fromDb "youtube.com/@TomScottGo")
(fromDb "youtube.com/@Vihart")
(fromDb "youtube.com/@Vox")
(fromDb "youtube.com/@Vsauce")
# (fromDb "youtube.com/@Vsauce") # they're all like 1-minute long videos now? what happened @Vsauce?
# (fromDb "youtube.com/@rossmanngroup" // pol // tech) # Louis Rossmann
];

View File

@@ -216,6 +216,7 @@ lib.mkMerge [
programs.fuse.userAllowOther = true; #< necessary for `allow_other` or `allow_root` options.
}
(remoteHome "crappy")
(remoteHome "desko")
(remoteHome "lappy")
(remoteHome "moby")

View File

@@ -2,6 +2,14 @@
{
# TODO: this should be populated per-host
sane.hosts.by-name."crappy" = {
ssh.user_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMIvSQAGKqmymXIL4La9B00LPxBIqWAr5AsJxk3UQeY5";
ssh.host_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMN0cpRAloCBOE5/2wuzgik35iNDv5KLceWMCVaa7DIQ";
# wg-home.pubkey = "TODO";
# wg-home.ip = "10.0.10.55";
lan-ip = "10.78.79.55";
};
sane.hosts.by-name."desko" = {
ssh.user_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU5GlsSfbaarMvDA20bxpSZGWviEzXGD8gtrIowc1pX";
ssh.host_pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFw9NoRaYrM6LbDd3aFBc4yyBlxGQn8HjeHd/dZ3CfHk";

View File

@@ -59,14 +59,18 @@
# note the import starts at repo root: this allows `./overlay/default.nix` to access the stuff at the root
# "nixpkgs-overlays=${../../..}/hosts/common/nix-path/overlay"
# as long as my system itself doesn't rely on NIXPKGS at runtime, we can point the overlays to git
# to avoid switching so much during development
"nixpkgs-overlays=/home/colin/dev/nixos/hosts/common/nix/overlay"
# to avoid `switch`ing so much during development.
# TODO: it would be nice to remove this someday!
# it's an impurity that touches way more than i need and tends to cause hard-to-debug eval issues
# when it goes wrong. should i port my `nix-shell` scripts to something more tailored to my uses
# and then delete `nixpkgs-overlays`?
"nixpkgs-overlays=/home/colin/dev/nixos/integrations/nixpkgs/nixpkgs-overlays.nix"
];
# ensure new deployments have a source of this repo with which they can bootstrap.
# this however changes on every commit and can be slow to copy for e.g. `moby`.
environment.etc."nixos" = lib.mkIf (config.sane.maxBuildCost >= 3) {
source = ../../..;
source = ../..;
};
environment.etc."nix/registry.json" = lib.mkIf (config.sane.maxBuildCost < 3) {
enable = false;

View File

@@ -1,4 +0,0 @@
# XXX: NIX_PATH=...:nixpkgs-overlays=... will import every overlay in the directory
# so we prefer to give it a directory with just this *one* overlay, otherwise it imports conflicting overlays
# and gets stuck in a loop until it OOMs
import ../../../../overlays/all.nix

View File

@@ -50,6 +50,7 @@ in
"fd"
"file"
"forkstat" # monitor every spawned/forked process
"free"
# "fwupd"
"gawk"
"gdb" # to debug segfaults
@@ -84,6 +85,7 @@ in
"parted"
"pciutils"
"powertop"
"ps"
"pstree"
"ripgrep"
"s6-rc" # service manager
@@ -97,6 +99,7 @@ in
"usbutils" # lsusb
"util-linux" # lsblk, lscpu, etc
"valgrind"
"watch"
"wget"
"wirelesstools" # iwlist
# "xq" # jq for XML
@@ -294,6 +297,7 @@ in
"loupe" # image viewer
"mate.engrampa" # archive manager
"mepo" # maps viewer
"mesa-demos" # for eglinfo, glxinfo & other testing tools
"mpv"
"networkmanagerapplet" # for nm-connection-editor: it's better than not having any gui!
"ntfy-sh" # notification service
@@ -355,7 +359,7 @@ in
"gnome.gnome-disk-utility"
"gnome.nautilus" # file browser
# "gnome.totem" # video player, supposedly supports UPnP
"handbrake"
# "handbrake" #< TODO: fix build
"inkscape"
# "jellyfin-media-player"
"kdenlive"
@@ -815,6 +819,8 @@ in
mercurial.sandbox.net = "clearnet";
mercurial.sandbox.whitelistPwd = true;
mesa-demos = {};
# actual monero blockchain (not wallet/etc; safe to delete, just slow to regenerate)
monero-gui.buildCost = 1;
# XXX: is it really safe to persist this? it doesn't have info that could de-anonymize if captured?
@@ -1117,6 +1123,8 @@ in
"tmp"
];
watch.sandbox.enable = false; #< it executes the command it's given
wdisplays.sandbox.method = "bwrap";
wdisplays.sandbox.whitelistWayland = true;

View File

@@ -45,6 +45,7 @@
./flare-signal.nix
./fontconfig.nix
./fractal.nix
./free.nix
./frozen-bubble.nix
./fwupd.nix
./g4music.nix
@@ -101,6 +102,7 @@
./planify.nix
./portfolio-filemanager.nix
./playerctl.nix
./ps.nix
./rhythmbox.nix
./ripgrep.nix
./rofi
@@ -130,6 +132,7 @@
./swayidle.nix
./swaylock.nix
./swaynotificationcenter
./switchboard.nix
./sysvol.nix
./tangram.nix
./tor-browser.nix

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
sane.programs.free = {
packageUnwrapped = pkgs.linkIntoOwnPackage pkgs.procps "bin/free";
sandbox.method = "bwrap";
sandbox.isolatePids = false;
};
}

View File

@@ -135,65 +135,54 @@ let
'cycle_key = "c"' 'cycle_key = "v"'
'';
});
mpv-unwrapped = pkgs.mpv-unwrapped.overrideAttrs (upstream: {
version = "0.37.0-unstable-2024-03-31";
src = lib.warnIf (lib.versionOlder "0.37.0" upstream.version) "mpv outdated; remove patch?" pkgs.fetchFromGitHub {
owner = "mpv-player";
repo = "mpv";
rev = "4ce4bf1795e6dfd6f1ddf07fb348ce5d191ab1dc";
hash = "sha256-nOGuHq7SWDAygROV7qHtezDv1AsMpseImI8TVd3F+Oc=";
};
patches = [];
});
in
{
sane.programs.mpv = {
packageUnwrapped = pkgs.wrapMpv
(mpv-unwrapped.override rec {
packageUnwrapped = pkgs.mpv-unwrapped.wrapper {
mpv = pkgs.mpv-unwrapped.override rec {
# N.B.: populating `self` to `luajit` is necessary for the resulting `lua.withPackages` function to preserve my override.
# i use enable52Compat in order to get `table.unpack`.
# i think using `luajit` here instead of `lua` is optional, just i get better perf with it :)
lua = pkgs.luajit.override { enable52Compat = true; self = lua; };
})
{
scripts = [
pkgs.mpvScripts.mpris
pkgs.mpvScripts.mpv-playlistmanager
pkgs.mpvScripts.mpv-webm
uosc
visualizer
# pkgs.mpv-uosc-latest
];
# extraMakeWrapperArgs = lib.optionals (cfg.config.vo != null) [
# # 2023/08/29: fixes an error where mpv on moby launches with the message
# # "DRM_IOCTL_MODE_CREATE_DUMB failed: Cannot allocate memory"
# # audio still works, and controls, screenshotting, etc -- just not the actual rendering
# #
# # this is likely a regression for mpv 0.36.0.
# # the actual error message *appears* to come from the mesa library, but it's tough to trace.
# #
# # 2024/03/02: no longer necessary, with mesa 23.3.1: <https://github.com/NixOS/nixpkgs/pull/265740>
# #
# # backend compatibility (2023/10/22):
# # run with `--vo=help` to see a list of all output options.
# # non-exhaustive (W=works, F=fails, A=audio-only, U=audio+ui only (no video))
# # ? null Null video output
# # A (default)
# # A dmabuf-wayland Wayland dmabuf video output
# # A libmpv render API for libmpv (mpv plays the audio, but doesn't even render a window)
# # A vdpau VDPAU with X11
# # F drm Direct Rendering Manager (software scaling)
# # F gpu-next Video output based on libplacebo
# # F vaapi VA API with X11
# # F x11 X11 (software scaling)
# # F xv X11/Xv
# # U gpu Shader-based GPU Renderer
# # W caca libcaca (terminal rendering)
# # W sdl SDL 2.0 Renderer
# # W wlshm Wayland SHM video output (software scaling)
# "--add-flags" "--vo=${cfg.config.vo}"
# ];
};
scripts = [
pkgs.mpvScripts.mpris
pkgs.mpvScripts.mpv-playlistmanager
pkgs.mpvScripts.mpv-webm
uosc
visualizer
# pkgs.mpv-uosc-latest
];
# extraMakeWrapperArgs = lib.optionals (cfg.config.vo != null) [
# # 2023/08/29: fixes an error where mpv on moby launches with the message
# # "DRM_IOCTL_MODE_CREATE_DUMB failed: Cannot allocate memory"
# # audio still works, and controls, screenshotting, etc -- just not the actual rendering
# #
# # this is likely a regression for mpv 0.36.0.
# # the actual error message *appears* to come from the mesa library, but it's tough to trace.
# #
# # 2024/03/02: no longer necessary, with mesa 23.3.1: <https://github.com/NixOS/nixpkgs/pull/265740>
# #
# # backend compatibility (2023/10/22):
# # run with `--vo=help` to see a list of all output options.
# # non-exhaustive (W=works, F=fails, A=audio-only, U=audio+ui only (no video))
# # ? null Null video output
# # A (default)
# # A dmabuf-wayland Wayland dmabuf video output
# # A libmpv render API for libmpv (mpv plays the audio, but doesn't even render a window)
# # A vdpau VDPAU with X11
# # F drm Direct Rendering Manager (software scaling)
# # F gpu-next Video output based on libplacebo
# # F vaapi VA API with X11
# # F x11 X11 (software scaling)
# # F xv X11/Xv
# # U gpu Shader-based GPU Renderer
# # W caca libcaca (terminal rendering)
# # W sdl SDL 2.0 Renderer
# # W wlshm Wayland SHM video output (software scaling)
# "--add-flags" "--vo=${cfg.config.vo}"
# ];
};
suggestedPrograms = [
"blast-to-default"

View File

@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
sane.programs.ps = {
packageUnwrapped = pkgs.linkIntoOwnPackage pkgs.procps "bin/ps";
sandbox.method = "bwrap";
sandbox.isolatePids = false;
};
}

View File

@@ -85,21 +85,38 @@ log() {
## HELPERS
isTouchOn() {
# success if all touch inputs have their events enabled
# swaySetOutput true|false
# turns the display on or off
swaySetOutput() {
swaymsg -- output '*' power "$1"
}
# swaySetTouch enabled|disabled
# turns touch input on or off
swaySetTouch() {
# XXX(2024/06/09): `type:touch` method is documented, but now silently fails
# swaymsg -- input type:touch events "$1"
local inputs=$(swaymsg -t get_inputs --raw | jq '. | map(select(.type == "touch")) | map(.identifier) | join(" ")' --raw-output)
for id in "${inputs[@]}"; do
swaymsg -- input "$id" events "$1"
done
}
# success if all touch inputs have their events enabled
swayGetTouch() {
swaymsg -t get_inputs --raw \
| jq --exit-status '. | map(select(.type == "touch")) | all(.libinput.send_events == "enabled")' \
> /dev/null
}
isScreenOn() {
# success if all outputs have power
# success if all outputs have power
swayGetOutput() {
swaymsg -t get_outputs --raw \
| jq --exit-status '. | all(.power)' \
> /dev/null
}
isAllOn() {
isTouchOn && isScreenOn
swayGetOutput && swayGetTouch
}
isInhibited() {
@@ -134,12 +151,12 @@ unmapped() {
}
allOn() {
swaymsg -- output '*' power true
swaymsg -- input type:touch events enabled
swaySetOutput true
swaySetTouch enabled
}
allOff() {
swaymsg -- output '*' power false
swaymsg -- input type:touch events disabled
swaySetOutput false
swaySetTouch disabled
}
toggleKeyboard() {

View File

@@ -161,6 +161,7 @@ in
"sway-contrib.grimshot" # used by sway config
"swayidle" # enable if you need it
"swaynotificationcenter" # notification daemon
"switchboard" # network/bluetooth/sound control panel
"sysvol" # volume notifier
"unl0kr" # greeter
"waybar" # used by sway config

View File

@@ -44,7 +44,13 @@ let
});
screenOff = pkgs.writeShellScriptBin "screen-off" ''
swaymsg -- output '*' power false
swaymsg -- input type:touch events disabled
# XXX(2024/06/09): `type:touch` method is documented, but now silently fails
# swaymsg -- input type:touch events disabled
local inputs=$(swaymsg -t get_inputs --raw | jq '. | map(select(.type == "touch")) | map(.identifier) | join(" ")' --raw-output)
for id in "''${inputs[@]}"; do
swaymsg -- input "$id" events disabled
done
'';
in
{
@@ -74,6 +80,11 @@ in
command = lib.mkDefault "";
};
suggestedPrograms = [
"jq"
# "sway" #< required, but circular dep
];
sandbox.method = "bwrap";
sandbox.whitelistDbus = [ "user" ]; #< might need system too, for inhibitors
sandbox.whitelistS6 = true;

View File

@@ -0,0 +1,27 @@
{ pkgs, ... }:
{
sane.programs.switchboard = {
packageUnwrapped = with pkgs.pantheon; switchboard-with-plugs.override {
switchboardPlugs = [
# switchboard-plug-a11y
# switchboard-plug-about
# switchboard-plug-applications
switchboard-plug-bluetooth
# switchboard-plug-datetime
# switchboard-plug-display # could be handy, but crashes
# switchboard-plug-keyboard
# switchboard-plug-mouse-touchpad # changing settings here doesn't actually impact anything real
switchboard-plug-network
# switchboard-plug-notifications
# switchboard-plug-onlineaccounts
# switchboard-plug-pantheon-shell
# switchboard-plug-power # needs to be "unlocked" before it can do anything (like change display brightness)
# switchboard-plug-printers # requires cups
# switchboard-plug-security-privacy
# switchboard-plug-sharing
switchboard-plug-sound
# switchboard-plug-wacom
];
};
};
}

View File

@@ -7,6 +7,9 @@
fs.".config/sys64/volume.css".symlink.text = ''
window {
background: transparent;
}
window > box {
background: #000000B4;
border-radius: 19px;
}
@@ -58,12 +61,13 @@
# options:
# -p {0,1,2,3} to attach to top/right/bottom/left screen edge
# -t N for the notifier to be dismissed after N seconds (integer only)
# -T N reveal/hide transition time in milliseconds
# -m N to set the indicator this many pixels in from the edge.
# it considers sway bars, but not window titles
# -{H,W} N to set the height/width of the notifier, in px.
# -i N to set the size of the volume icon
# -P to hide percentage text
command = "sysvol -p 0 -t 1 -m 22 -H 39 -W 256 -i 32 -P";
command = "sysvol -p 0 -t 1 -T 0 -m 22 -H 39 -W 256 -i 32 -P";
};
};
}

View File

@@ -15,6 +15,15 @@ let
PATH=$PATH:$extraPath command -v "$1"
}
# give some time for the framebuffer device to appear;
# unl0kr depends on it but doesn't know to wait for it.
for _ in $(seq 25); do
if [ -e /dev/fb0 ]; then
break
fi
sleep 0.2
done
# TODO: make this more robust to failure.
# - if `unl0kr` fails, then the second `redirect-tty` sends a newline to `login`, causing it to exit and the service fails.
# - if `redirect-tty` fails, then... the service is left hanging.
@@ -134,8 +143,6 @@ in
# necessary for `sanebox` to be found. TODO: add this to every systemd service.
"/run/current-system/sw" # `/bin` is appended
];
# needed to find sanebox profiles (TODO: add this to every service)
environment.XDG_DATA_DIRS = "/run/current-system/sw/share";
serviceConfig.Type = "simple";
serviceConfig.Restart = "always";

View File

@@ -1,7 +1,7 @@
[general]
animations=false
#backend=fbdev|drm
#timeout=300
# backend=fbdev|drm
# timeout=300
[keyboard]
autohide=false
@@ -16,12 +16,14 @@ obscured=true
default=breezy-light
alternate=breezy-dark
#[input]
#keyboard=false
#pointer=false
#touchscreen=false
# [input]
# keyboard=false
# pointer=false
# touchscreen=false
#[quirks]
#fbdev_force_refresh=true
#terminal_prevent_graphics_mode=true
#terminal_allow_keyboard_input=true
# [quirks]
# fbdev_force_refresh=true
# terminal_prevent_graphics_mode=true
# TODO: terminal_allow_keyboard_input=true could be used to pipe my password
# straight into `login`, instead of the more convoluted redirect approach??
# terminal_allow_keyboard_input=true

View File

@@ -186,7 +186,7 @@ in
};
function switch() {
nix run '.#deploy.self'
~/nixos/scripts/deploy "$@"
}
'';

View File

@@ -7,9 +7,12 @@ let
haltTimeout = 10;
in
{
# allow ordinary users to `reboot` or `shutdown`.
# source: <https://nixos.wiki/wiki/Polkit>
security.polkit.extraConfig = ''
/* allow ordinary users to:
* - reboot
* - shutdown
* source: <https://nixos.wiki/wiki/Polkit>
*/
polkit.addRule(function(action, subject) {
if (
subject.isInGroup("users")
@@ -24,6 +27,19 @@ in
return polkit.Result.YES;
}
})
/* allow members of wheel to:
* - systemctl daemon-reload
* - systemctl stop|start|restart SERVICE
*/
polkit.addRule(function(action, subject) {
if (subject.isInGroup("wheel") && (
action.id == "org.freedesktop.systemd1.reload-daemon" ||
action.id == "org.freedesktop.systemd1.manage-units"
)) {
return polkit.Result.YES;
}
})
'';
services.journald.extraConfig = ''

View File

@@ -22,6 +22,7 @@
"media" # servo
"networkmanager"
"nixbuild"
"render" # for crappy, /dev/dri/render*
"seat" # for sway, if using seatd
"systemd-journal" # allows to view other user's journals (esp system users)
"transmission" # servo

View File

@@ -11,12 +11,12 @@ in
# kernel compatibility (2024/05/22: 03dab630)
# - linux-megous: boots to ssh, desktop
# - camera apps: megapixels (no cameras found), snapshot (no cameras found)
# - linux-postmarketos: boots to ssh. desktop ONLY if "anx7688" is in the initrd.availableKernelModules.
# - linux-postmarketos-allwinner: boots to ssh. desktop ONLY if "anx7688" is in the initrd.availableKernelModules.
# - camera apps: megapixels (both rear and front cameras work), `cam -l` (finds only the rear camera), snapshot (no cameras found)
# - linux-megous.override { withMegiPinephoneConfig = true; }: NO SSH, NO SIGNS OF LIFE
# - linux-megous.override { withFullConfig = false; }: boots to ssh, no desktop
#
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-postmarketos.override {
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-postmarketos-allwinner.override {
withModemPower = true;
});
# boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-megous;

View File

@@ -54,6 +54,29 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sane.hal.samsung;
# sus commits:
# - ad3e33fe071dffea07279f96dab4f3773c430fe2 (drm/panel: Move AUX B116XW03 out of panel-edp back to panel-simple)
# says i should switch to `edp-panel`; chrome is lying about the panel.
# - discussion: <https://patchwork.freedesktop.org/patch/559389/>
# - was tested for exynos5-peach -- which worked with the patch and uses panel_simple
# - snow was *not* tested, but previously used panel_edp
linuxSourceHashes = {
"6.2.16" = "sha256-dC5lp45tU4JgHS8VWezLM/z8C8UMxaIdj5I2DleMv8c="; #< boots
"6.3.13" = "sha256-bGNcuEYBHaY34OeGkqb58dXV+JF2XY3bpBtLhg634xA="; #< boots
"6.4.16" = "sha256-hDhelVL20AMzQeT7IDVDI35uoGEyroVPjiszO2JZzO8="; #< boots
"6.5.13" = "sha256-lCTwq+2RyZTIX1YQa/riHf1KCnS8dTrLlljjKAXudz4="; #< boots
"6.6.0-rc1" = "sha256-DRai7HhWVtRB0GiRCvCv2JM2TFKRsZ60ohD6GW0b8As="; #< boots. upstream/torvalds' tag is `v6.6-rc1`
"6.6.0-rc3" = "sha256-/YcuQ5UsSObqOZ0YIbcNex5HJAL8eneDDzIiTEuMDsQ=";
"6.6.0-rc4" = "sha256-Kbv+jU2IoC4soT3ma1ZV8Un4rTQakNjut5nlA1907GQ="; #< boots. upstream/torvalds' tag is `v6.6-rc4`
"6.6.0-rc5" = "sha256-ia0F/W3BR+gD8qE5LEwUcJCqwBs3c5kj80DbeDzFFqY=";
"6.6.0-rc6" = "sha256-HIrn3fkoCqVSSJ0gxY6NO8I3M8P7BD5XzQpjrhdw//s="; #< boots. upstream/torvalds' tag is `v6.6-rc6`
"6.6.0-rc6-bi-5188" = "sha256-TmRrPy2IhnvTVlq5bNhzsvNPgRg0qk1u2Mh3q/lBask="; #< boots
"6.6.0-rc6-bi-5264" = "sha256-BXt5O9hUC9lYITBO56Rzb9XJHThjt6DuiXizUi2G6/0="; # *does not boot*. this is commit ad3e33fe071dffea07279f96dab4f3773c430fe2; actually 6.6.0-rc1, because of merge order
"6.6.0-rc7" = "sha256-u+seQp82USt63zgMlvDRIpDmmWD2Pha5d41CorwY7f8="; #< *does not boot*. upstream/torvalds' tag is `v6.6-rc7`
"6.6.0" = "sha256-iUTHPMbELhtRogbrKr3n2FBwj8mbGYGacy2UgjPZZNg="; #< *does not boot*. upstream/torvalds' tag is `v6.6`
"6.7.12" = "sha256-6Fm7lC2bwk+wYYGeasr+6tcSw+n3VE4d9JWbc9jN6fA="; #< *does not boot*
"6.10.0-rc3" = "sha256-k9Mpff96xgfTyjRMn0wOQBOm7NKZ7IDtJBRYwrnccoY="; #< *does not boot*. upstream/torvalds' tag is `v6.10-rc3`
};
in
{
options = {
@@ -64,6 +87,13 @@ in
boot.initrd.compressor = "gzip";
# boot.initrd.compressorArgs = [ "--ultra" "-22" ];
hardware.firmware = [
(pkgs.linux-firmware.overrideAttrs (_: {
# mwifiex_sdio seems to require uncompressed firmware (even with a kernel configured for CONFIG_MODULE_COMPRESS_ZSTD=y)
passthru.compressFirmware = false;
}))
];
boot.initrd.availableKernelModules = [
# boot.initrd.kernelModules = [
# from postmarketOS
@@ -81,13 +111,58 @@ in
# "sbs-charger"
# "sbs-manager"
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-postmarketos-exynos5;
# boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_latest.override {
# boot.kernelPackages = with pkgs; linuxPackagesFor (linux_6_1.override {
# preferBuiltin = false;
# extraConfig = "";
# structuredExtraConfig = with lib.kernel; {
# CC_OPTIMIZE_FOR_SIZE = lib.mkForce yes;
# SUN8I_DE2_CCU = lib.mkForce no; #< nixpkgs' option parser gets confused on this one, somehow
# NET_VENDOR_MICREL = no; #< to overcome broken KS8851_MLL (broken by nixpkgs' `extraConfig`)
# # KS8851_MLL = lib.mkForce module; #< nixpkgs' option parser gets confused on this one, somehow
# #v XXX: required for e.g. SECURITY_LANDLOCK (specified by upstream nixpkgs) to take effect if `autoModules = false`
# #v seems that upstream linux (the defconfigs?), it defaults to Yes for:
# # - arch/x86/configs/x86_64_defconfig
# # - arch/arm64/configs/defconfig
# # but that it's left unset for e.g. arch/arm64/configs/pinephone_defconfig
# # SECURITY = yes;
# };
# });
# boot.kernelPackages = with pkgs; linuxPackagesFor linux_6_1;
# boot.kernelPackages = with pkgs; linuxPackagesFor linux-exynos5-mainline;
# boot.kernelPackages = with pkgs; linuxPackagesFor (linux-postmarketos-exynos5.override {
# # linux = let version = "6.6.0-rc1"; rev = "6.6.0-rc6-bi-5264"; in {
# # # src = pkgs.fetchzip {
# # # url = "https://git.kernel.org/stable/t/linux-6.2.16.tar.gz";
# # # };
# # src = pkgs.fetchFromGitea {
# # domain = "git.uninsane.org";
# # owner = "colin";
# # repo = "linux";
# # rev = "v${rev}";
# # hash = linuxSourceHashes."${rev}";
# # };
# # inherit version;
# # modDirVersion = version;
# # extraMakeFlags = [];
# # };
# # linux = linux_6_6;
# # linux = linux_6_8;
# # linux = linux_6_9;
# linux = linux_latest;
# # optimizeForSize = true;
# # useEdpPanel = true;
# revertPanelSimplePatch = true;
# });
# boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-postmarketos-exynos5;
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux-exynos5-mainline.override {
kernelPatches = [
pkgs.linux-postmarketos-exynos5.sanePatches.revertPanelSimplePatch
];
structuredExtraConfig = with lib.kernel; {
SECURITY = yes;
SECURITY_LANDLOCK = yes;
LSM = freeform "landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,bpf";
};
});
system.build.u-boot = pkgs.buildUBoot {
defconfig = "snow_defconfig";
@@ -101,6 +176,10 @@ in
"u-boot-nodtb.bin"
"u-boot.sym"
];
# CONFIG_BOOTCOMMAND: autoboot from usb, and fix the ordering so that it happens before the internal memory (mmc0)
extraConfig = ''
CONFIG_BOOTCOMMAND="env set bootcmd_usb0 \"devnum=0; run usb_boot\"; env set boot_targets \"usb0 mmc2 mmc1 mmc0\"; run distro_bootcmd"
'';
};
system.build.platformPartition = pkgs.runCommandLocal "kernel-partition" {

View File

@@ -0,0 +1,5 @@
# this file exists so i can use my custom packages inside `nix-shell`.
# it works by using stock upstream `nixpkgs`
# and putting NIX_PATH=nixpkgs-overlays=/path/to/here on the nixbld environment.
#
[(import ../../overlays/all.nix)]

View File

@@ -4,6 +4,6 @@
"site_name": " bunnie's blog",
"site_url": "https://www.bunniestudios.com",
"title": "bunnie's blog",
"url": "https://www.bunniestudios.com/blog/?feed=rss2",
"velocity": 0.108
"url": "https://www.bunniestudios.com/blog/feed/",
"velocity": 0.12
}

View File

@@ -1,9 +1,9 @@
{
"description": "Radiolab",
"description": "Radiolab is on a curiosity bender. We ask deep questions and use investigative journalism to get the answers. A given episode might whirl you through science, legal history, and into the home of someone halfway across the world. The show is known for innovative sound design, smashing information into music. It is hosted by Lulu Miller and Latif Nasser.",
"is_podcast": true,
"site_name": "",
"site_url": "",
"title": "Radiolab",
"url": "https://feeds.feedburner.com/radiolab",
"velocity": 0.136
"url": "https://feeds.simplecast.com/EmVW7VGp",
"velocity": 0.138
}

View File

@@ -1,9 +1,9 @@
{
"description": "*** Named a best podcast of 2021 by Time, Vulture, Esquire and The Atlantic. ***\nEach Tuesday and Friday, Ezra Klein invites you into a conversation on something that matters. How do we address climate change if the political system fails to act? Has the logic of markets infiltrated too many aspects of our lives? What is the future of the Republican Party? What do psychedelics teach us about consciousness? What does sci-fi understand about our present that we miss? Can our food system be just to humans and animals alike?\n\nListen to this podcast in New York Times Audio, our new iOS app for news subscribers. Download now at nytimes.com/audioapp",
"description": "Each Tuesday and Friday, Ezra Klein invites you into a conversation on something that matters. How do we address climate change if the political system fails to act? Has the logic of markets infiltrated too many aspects of our lives? What is the future of the Republican Party? What do psychedelics teach us about consciousness? What does sci-fi understand about our present that we miss? Can our food system be just to humans and animals alike?\n\nListen to this podcast in New York Times Audio, our iOS app for news subscribers. Download now at nytimes.com/audioapp",
"is_podcast": true,
"site_name": "",
"site_url": "",
"title": "The Ezra Klein Show",
"url": "https://feeds.simplecast.com/82FI35Px",
"velocity": 0.264
"velocity": 0.257
}

View File

@@ -2,8 +2,8 @@
"description": "Long conversations with clever Nixers.",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_url": "https://feeds.transistor.fm",
"title": "Full Time Nix",
"url": "https://feeds.transistor.fm/full-time-nix",
"velocity": 0
"velocity": 0.048
}

View File

@@ -1,8 +1,8 @@
{
"description": "<p>Playful explorations of the rich past and exciting future that we're all building with our silly little computers. Hosted by Jimmy Miller and Ivan Reese.</p>",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_name": "Omny Studio",
"site_url": "https://www.omnycontent.com",
"title": "Future of Coding",
"url": "https://www.omnycontent.com/d/playlist/c4157e60-c7f8-470d-b13f-a7b30040df73/564f493f-af32-4c48-862f-a7b300e4df49/ac317852-8807-44b8-8eff-a7b300e4df52/podcast.rss",
"velocity": 0.028

View File

@@ -1,9 +1,9 @@
{
"description": "<p>The most unruly and least considered, most shameful among various Idiomdrottning components and libraries can be found here.</p>\n <p>To contact me, <a href=\"mailto:sandra.snan@idiomdrottning.org\">send mail to sandra.snan@idiomdrottning.org</a></p>",
"is_podcast": false,
"site_name": "Idiomdrottning",
"site_name": "I live like them already",
"site_url": "https://idiomdrottning.org",
"title": "Idiomdrottning",
"url": "https://idiomdrottning.org/blog",
"velocity": 0.402
"velocity": 0.867
}

View File

@@ -1,9 +1,9 @@
{
"description": "Kill the Newsletter! Inbox:\n joh91bv7am2pnznv@kill-the-newsletter.com \u2192\n https://kill-the-newsletter.com/feeds/joh91bv7am2pnznv.xml",
"description": null,
"is_podcast": false,
"site_name": "Kill the Newsletter!",
"site_url": "https://kill-the-newsletter.com",
"title": "Money Stuff",
"url": "https://kill-the-newsletter.com/feeds/joh91bv7am2pnznv.xml",
"velocity": 939.13
"velocity": 0.667
}

View File

@@ -2,8 +2,8 @@
"description": "The art, science, and history of processor design..",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_url": "https://feeds.transistor.fm",
"title": "Microarch Club",
"url": "https://feeds.transistor.fm/microarch-club",
"velocity": 0.083
"velocity": 0.08
}

View File

@@ -1,9 +1,9 @@
{
"description": "<p>As long as there&rsquo;s been oppression, there&rsquo;ve been people fighting it. This weekly podcast dives into history to drag up the wildest rebels, the most beautiful revolts, and all the people who long to be&mdash;and fight to be&mdash;free. It explores complex stories of resistance that offer lessons and inspiration for us today, focusing on the ensemble casts that make up each act of history. That is to say, this podcast focuses on Cool People Who Did Cool Stuff.</p>",
"description": "<p>As long as there\u2019s been oppression, there\u2019ve been people fighting it. This weekly podcast dives into history to drag up the wildest rebels, the most beautiful revolts, and all the people who long to be\u2014and fight to be\u2014free. It explores complex stories of resistance that offer lessons and inspiration for us today, focusing on the ensemble casts that make up each act of history. That is to say, this podcast focuses on Cool People Who Did Cool Stuff.</p>",
"is_podcast": true,
"site_name": "Omny Studio",
"site_url": "https://www.omnycontent.com",
"title": "Cool People Who Did Cool Stuff",
"url": "https://www.omnycontent.com/d/playlist/e73c998e-6e60-432f-8610-ae210140c5b1/45bcda9a-4724-45c0-82ca-ae7f00e1dd18/f21245f2-a297-42f7-a016-ae7f00e390c4/podcast.rss",
"velocity": 0.271
"velocity": 0.299
}

View File

@@ -1,9 +1,9 @@
{
"description": "<p>The audio companion to Bloomberg Opinion\u2019s beloved Money Stuff column hosted by its author Matt Levine, \u201cwhose deadpan style mixes technical elucidation and wit\u201d (NY Times). Once a week, Matt and his friend, Bloomberg News reporter and TV host, Katie Greifeld talk about Wall Street, finance and\u2026other stuff. New episodes every Friday.</p>",
"description": "<p>The audio companion to Bloomberg Opinion\u2019s beloved Money Stuff column hosted by its author Matt Levine, \u201cwhose deadpan style mixes technical elucidation and wit\u201d (NY Times). Once a week, Matt and his friend, Bloomberg News reporter and TV host Katie Greifeld, talk about Wall Street, finance and\u2026other stuff. New episodes every Friday.</p>",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_name": "Omny Studio",
"site_url": "https://www.omnycontent.com",
"title": "Money Stuff: The Podcast",
"url": "https://www.omnycontent.com/d/playlist/e73c998e-6e60-432f-8610-ae210140c5b1/ee4336cb-155f-4488-90e0-b1400134e40e/77e6a3a7-290d-4a82-8164-b14001353ef2/podcast.rss",
"velocity": 0.063
"velocity": 0.125
}

View File

@@ -1,9 +1,9 @@
{
"description": "<p>Comedians Dave Anthony and Gareth Reynolds picks a subject from history and examine it.</p>",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_name": "Omny Studio",
"site_url": "https://www.omnycontent.com",
"title": "The Dollop with Dave Anthony and Gareth Reynolds",
"url": "https://www.omnycontent.com/d/playlist/885ace83-027a-47ad-ad67-aca7002f1df8/22b063ac-654d-428f-bd69-ae2400349cde/65ff0206-b585-4e2a-9872-ae240034c9c9/podcast.rss",
"velocity": 0.188
"velocity": 0.192
}

View File

@@ -1,8 +1,8 @@
{
"description": "Explore human evolution one story at a time. This award-winning show blends storytelling with science that will change your understanding of who we are.",
"is_podcast": true,
"site_name": "",
"site_url": "",
"site_name": "test220119a",
"site_url": "https://feeds.libsyn.com",
"title": "Origin Stories",
"url": "https://feeds.libsyn.com/65014/rss",
"velocity": 0.024

View File

@@ -1,9 +1,9 @@
{
"description": "<p>Weekly roundup of everything new in the Linux and Open Source world! May contain gaming and privacy related topics.</p>\n<p>This is a longer counterpart to the Linux and Open Source news videos available on The Linux Experiment Youtube Channel.</p>",
"description": "<p>Weekly roundup of everything new in the Linux and Open Source world! May contain gaming and privacy related topics.</p>\n<p>This is a longer counterpart to the Linux and Open Source news videos available on The Linux Experiment Youtube Channel.</p>\n<p>I\u2019m Nick, I\u2019ve been making Linux and Open Source related videos on YouTube since 2018, with a sizeable following of more than 300 000 subscribers. I\u2019ve been using Linux since 2006, starting with Ubuntu (like most people), and I have 12 years of experience in project management and UX, and that\u2019s the lens I use to view the progress of our Linux desktops and open source applications!</p>",
"is_podcast": true,
"site_name": "The Linux Experiment Podcasts",
"site_url": "https://podcast.thelinuxexp.com",
"title": "Linux + Open Source News, by TLE",
"title": "Linux & Open Source News",
"url": "https://podcast.thelinuxexp.com/@tlenewspodcast/feed.xml",
"velocity": 0.145
"velocity": 0.147
}

View File

@@ -1,9 +1,9 @@
{
"description": "A Comic",
"is_podcast": false,
"site_name": "Poorly Drawn Lines",
"site_name": "Poorly Drawn Lines | A Comic",
"site_url": "https://poorlydrawnlines.com",
"title": "Poorly Drawn Lines",
"url": "https://poorlydrawnlines.com/feed/",
"velocity": 0.237
"velocity": 0.3
}

View File

@@ -1,9 +1,9 @@
{
"description": "Announcing appearances, publications, and analysis of questions historical, philosophical, and political by author, philosopher, and historian Richard Carrier.",
"is_podcast": false,
"site_name": "Richard Carrier",
"site_name": "Richard Carrier Blogs",
"site_url": "https://www.richardcarrier.info",
"title": "Richard Carrier",
"title": "Richard Carrier Blogs",
"url": "https://www.richardcarrier.info/feed",
"velocity": 0.141
"velocity": 0.131
}

View File

@@ -1,9 +1,9 @@
{
"description": "It\u2019s getting harder and harder to talk about politics, especially if you disagree. Well, screw that. Seattle Nice aims to be the most opinionated and smartest analysis of what\u2019s really happening in Seattle politics available in any medium. Each episode dives into contentious and sometimes ridiculous topics, exploring perspectives from across Seattle's political spectrum, from city council brawls to the ways the national political conversation filters through our unique political process. Even if you\u2019re not from Seattle, you need to listen to Seattle Nice. Because it\u2019s coming for you. Unlike the sun, politics rises in the West and sets in the East.",
"description": "<p>It\u2019s getting harder and harder to talk about politics, especially if you disagree. Well, screw that. Seattle Nice aims to be the most opinionated and smartest analysis of what\u2019s really happening in Seattle politics available in any medium. Each episode dives into contentious and sometimes ridiculous topics, exploring perspectives from across Seattle's political spectrum, from city council brawls to the ways the national political conversation filters through our unique political process. Even if you\u2019re not from Seattle, you need to listen to Seattle Nice. Because it\u2019s coming for you. Unlike the sun, politics rises in the West and sets in the East.&nbsp;</p>",
"is_podcast": true,
"site_name": "",
"site_url": "",
"title": "Seattle Nice",
"url": "https://feeds.buzzsprout.com/1897925.rss",
"velocity": 0.099
"velocity": 0.101
}

View File

@@ -1,9 +1,9 @@
{
"description": "On Target Technology News",
"is_podcast": false,
"site_name": "SemiAccurate - On Target Technology News",
"site_name": "SemiAccurate",
"site_url": "https://semiaccurate.com",
"title": "SemiAccurate",
"url": "https://www.semiaccurate.com/feed/",
"velocity": 0.106
"velocity": 0.098
}

View File

@@ -1,9 +1,9 @@
{
"description": "Latest Saturday Morning Breakfast Cereal comics and news",
"is_podcast": false,
"site_name": "Saturday Morning Breakfast Cereal - Got You",
"site_name": "Saturday Morning Breakfast Cereal - Dave",
"site_url": "https://www.smbc-comics.com",
"title": "Saturday Morning Breakfast Cereal",
"url": "https://www.smbc-comics.com/comic/rss",
"velocity": 1.172
"velocity": 0.999
}

View File

@@ -1,9 +1,9 @@
{
"description": "<p>Tales From the Bridge is a bi-weekly Science Fiction podcast. Join Tristan, Kevin, James, and Sam as they chat with your favourite science fiction authors and filmmakers. We also discuss the best in sci-fi, from books and graphic novels - to television and film. We cover cutting-edge concepts in our news segment, Science Fiction-Science Fact and throw in a bit of trivia for fun.&nbsp;<br /><br />Apple Podcasts; https://podcasts.apple.com/us/podcast/tales-from-the-bridge-all-things-sci-fi/id1570902818 Find out more on our website: https://talesfromthebridge.buzzsprout.com/</p>",
"description": "<p>Tales From the Bridge is a podcast that discusses all things science fiction. Join Tristan, Kevin, James, Sam&nbsp; as they chat with your favourite science fiction authors and filmmakers. We talk about the best in sci-fi, from books and graphic novels - to television and film. We cover cutting-edge concepts in our news segment, Science Fiction-Science Fact, and often throw in a bit of trivia for fun.&nbsp;<br /><br />Subscribe, follow, like and leave a review. We'd love to hear from you!&nbsp;</p>",
"is_podcast": true,
"site_name": "",
"site_url": "",
"title": "Tales From The Bridge: All Things Sci-Fi",
"title": "Tales From The Bridge",
"url": "https://feeds.buzzsprout.com/1795352.rss",
"velocity": 0.093
"velocity": 0.091
}

View File

@@ -1,9 +1,9 @@
{
"description": "turnoff.us is a geek comic site. Comics about Programming Languages, Web, Cloud, Linux, etc.",
"description": "{turnoff.us} is a webcomic that explores the worlds of programming, operating systems, and tech professional life.",
"is_podcast": false,
"site_name": "turnoff.us",
"site_url": "http://turnoff.us",
"title": "turnoff.us - geek comic site",
"title": "turnoff.us",
"url": "https://turnoff.us/feed.xml",
"velocity": 0.01
"velocity": 0.377
}

View File

@@ -1,9 +1,9 @@
{
"description": "systems | complexity | second-order effects",
"is_podcast": false,
"site_name": "Unintended Consequences - systems | complexity | second-order effects",
"site_name": "Unintended Consequences",
"site_url": "https://unintendedconsequenc.es",
"title": "Unintended Consequences",
"url": "https://unintendedconsequenc.es/feed/",
"velocity": 0.01
"velocity": 0.009
}

View File

@@ -0,0 +1,9 @@
{
"description": "If you stare into the void long enough, you'll find some xors staring back",
"is_podcast": false,
"site_name": "xorvoid",
"site_url": "https://xorvoid.com",
"title": "xorvoid",
"url": "https://xorvoid.com/rss.xml",
"velocity": 0.048
}

View File

@@ -231,7 +231,7 @@ let
# only do this for the services which are *defined* by this program though (i.e. `scvCfg ? description`)
# so as to avoid idioms like when sway adds `graphical-session.partOf = default`
depends = svcCfg.depends
++ lib.optionals (svcName != "dbus" && builtins.elem "user" config.sandbox.whitelistDbus) [
++ lib.optionals (svcName != "dbus" && builtins.elem "user" config.sandbox.whitelistDbus && cfg.dbus.enabled) [
"dbus"
] ++ lib.optionals ((!builtins.elem "wayland" svcCfg.partOf) && config.sandbox.whitelistWayland) [
"wayland"

View File

@@ -1142,17 +1142,6 @@ in with final; {
# });
# };
# 2024/05/31: upstreaming is unblocked
# - problem is fixed in a newer version of the package anyway, just needs updating (repo migration)
# fixes: "Run-time dependency scdoc found: NO (tried pkgconfig)"
unl0kr = prev.unl0kr.overrideAttrs (upstream: {
postPatch = (upstream.postPatch or "") + ''
substituteInPlace meson.build \
--replace-fail "scdoc = dependency('scdoc')" "" \
--replace-fail "scdoc.get_pkgconfig_variable('scdoc')" "'scdoc'"
'';
});
# 2024/05/31: upstreaming is blocked on hdf5, thrift, others
# visidata = prev.visidata.override {
# # hdf5 / h5py don't cross-compile, but i don't use that file format anyway.

View File

@@ -1,84 +0,0 @@
{ lib
, stdenv
, appstream
, cargo
, desktop-file-utils
, fetchFromGitea
, gitUpdater
, gtk4
, libadwaita
, libglvnd
, libepoxy
, meson
, mpv-unwrapped
, ninja
, openssl
, pkg-config
, rustc
, rustPlatform
, wrapGAppsHook4
, devBuild ? false, git
}:
stdenv.mkDerivation rec {
pname = "delfin";
version = "0.4.4";
src = if devBuild then fetchFromGitea {
domain = "git.uninsane.org";
owner = "colin";
repo = "delfin";
rev = "dev-sane";
hash = "sha256-l/Lm9dUtYfWbf8BoqNodF/5s0FzxhI/dyPevcaeyPME=";
} else fetchFromGitea {
domain = "codeberg.org";
owner = "avery42";
repo = "delfin";
rev = "v${version}";
hash = "sha256-qbl0PvGKI3S845xLr0aXf/uk2uuOXMjvu9S3BOPzxa0=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-Js1mIotSOayYDjDVQMqXwaeSC2a1g1DeqD6QmeWwztk=";
};
nativeBuildInputs = [
appstream
desktop-file-utils
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
cargo
rustc
wrapGAppsHook4
] ++ lib.optionals devBuild [
git
];
buildInputs = [
gtk4
libadwaita
libglvnd
libepoxy
mpv-unwrapped
openssl
];
mesonFlags = lib.optionals (!devBuild) [
"-Dprofile=release"
];
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = with lib; {
description = "stream movies and TV shows from Jellyfin";
homepage = "https://www.delfin.avery.cafe/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ colinsane ];
};
}

View File

@@ -3,19 +3,41 @@
, python3
, sane-data
, static-nix-shell
, symlinkJoin
, writeShellScript
}:
lib.makeScope newScope (self: with self; {
mkFeed = callPackage ./template.nix {};
feed-pkgs = lib.recurseIntoAttrs (lib.mapAttrs
(name: feed-details: mkFeed {
feedName = name;
jsonPath = "modules/data/feeds/sources/${name}/default.json";
inherit (feed-details) url;
})
sane-data.feeds
);
feed-pkgs = let
byName = lib.mapAttrs
(name: feed-details: mkFeed {
feedName = name;
jsonPath = "modules/data/feeds/sources/${name}/default.json";
inherit (feed-details) url;
})
sane-data.feeds
;
in
symlinkJoin {
# this meta package exists primarily to link all the feed updaters
# into a single package which can *actually* be updated.
# it's not critical whether the actual package itself builds.
name = "feed-pkgs";
pname = "feed-pkgs";
version = "20230112";
paths = builtins.attrValues byName;
passthru = byName // {
updateScript = let
update-all-feeds = writeShellScript "update-all-feeds" (
lib.concatStringsSep "\n" (
builtins.map (p: lib.concatStringsSep " " p.updateScript) (lib.attrValues byName)
)
);
in
[ update-all-feeds ];
};
};
update-feed = static-nix-shell.mkPython3Bin {
pname = "update";
srcRoot = ./.;

View File

@@ -13,10 +13,9 @@ stdenv.mkDerivation {
src = fetchurl {
inherit url;
};
passthru.updateScript = {
name = "feed-update-script";
command = [ "${update-feed}/bin/update.py" url jsonPath ];
};
passthru.updateScript = [
"${update-feed}/bin/update.py" url jsonPath
];
meta = {
description = "metadata about any feeds available at ${feedName}";
homepage = feedName;

View File

@@ -38,9 +38,10 @@ stdenv.mkDerivation rec {
passthru = {
extid = "magnolia@12.34";
updateScript = gitUpdater {
rev-prefix = "v";
};
# XXX: disabled because the upstream repo has disappeared, and gitlab auth hangs the updater
# updateScript = gitUpdater {
# rev-prefix = "v";
# };
};
meta = {

View File

@@ -1,11 +1,13 @@
{ stdenv
, callPackage
, concatTextFile
, fetchpatch
, fetchurl
, gnused
, jq
, lib
, newScope
, nix-update
, nix-update-script
, runCommandLocal
, strip-nondeterminism
@@ -15,6 +17,18 @@
, zip
}:
let
nix-update' = nix-update.overrideAttrs (upstream: {
patches = (upstream.patches or []) ++ [
(fetchpatch {
# u-block releases betas, and worse, deletes them later.
# i don't know how to ignore them through the nix-update-script API,
# but this patch handles that.
name = "github: Use API to properly tag prereleases";
url = "https://github.com/Mic92/nix-update/pull/246.patch";
hash = "sha256-cwajliS1YMEcS2MtrKtpNn64rWHjwNDLI49LKhnlQYM=";
})
];
});
wrapAddon = addon: args:
let
extid = addon.passthru.extid;
@@ -111,15 +125,7 @@ let
cp $src $out
'';
passthru.updateScript = nix-update-script {
extraArgs = [
# uBlock mixes X.YY.ZbN and X.YY.ZrcN style.
# default nix-update accepts the former but rejects the later as unstable.
# that's problematic because beta releases later get pulled.
# ideally i'd reject both, but i don't know how.
"--version=unstable"
];
};
passthru.updateScript = (nix-update-script.override { nix-update = nix-update'; }) { };
passthru.extid = extid;
};
@@ -139,8 +145,8 @@ in (lib.makeScope newScope (self: with self; {
extid = "webextension@metamask.io";
pname = "ether-metamask";
url = "https://github.com/MetaMask/metamask-extension/releases/download/v${version}/metamask-firefox-${version}.zip";
version = "11.16.0";
hash = "sha256-GqogHIqPneZ/Ngpf5ICm/LSMB3PIC2OjdZYZ5FSKJrk=";
version = "11.16.9";
hash = "sha256-IYRCR0jX2agMHj/Pnnc+q6X92yrhdIJF+uRtw7C2T2k=";
};
fx_cast = fetchVersionedAddon rec {
extid = "fx_cast@matt.tf";
@@ -160,15 +166,15 @@ in (lib.makeScope newScope (self: with self; {
extid = "sponsorBlocker@ajay.app";
pname = "sponsorblock";
url = "https://github.com/ajayyy/SponsorBlock/releases/download/${version}/FirefoxSignedInstaller.xpi";
version = "5.6";
hash = "sha256-7HnWgGxDtkr0LXIGec+V1ACV/hhKAa3zII+SgMC7GSo=";
version = "5.6.1";
hash = "sha256-b2FIVcOaRyJjWOTtXT9XrLWzcptcuxKJltDGFjpWPRQ=";
};
ublacklist = fetchVersionedAddon rec {
extid = "@ublacklist";
pname = "ublacklist";
url = "https://github.com/iorate/ublacklist/releases/download/v${version}/ublacklist-v${version}-firefox.zip";
version = "8.7.0";
hash = "sha256-70hdLWU8kfu7VO//aXeBi6HO6LvY20vT61zDw/pdQIg=";
version = "8.7.1";
hash = "sha256-FvZ2IFlvoAYMmZFXTkGtCZ+44MmXioA271DXvNY96j8=";
};
ublock-origin = fetchVersionedAddon rec {
extid = "uBlock0@raymondhill.net";

View File

@@ -0,0 +1,27 @@
{ buildLinux
, fetchFromGitLab
#v nixpkgs calls `.override` on the kernel to configure additional things
, features ? {}
, kernelPatches ? []
, randstructSeed ? ""
, structuredExtraConfig ? {}
, ...
}:
buildLinux {
src = fetchFromGitLab {
owner = "exynos5-mainline";
repo = "linux";
rev = "20e7d0fbd9213858325dfeb9be0da1a3756744a1";
hash = "sha256-tbNYuOk4XHRH12B3EdMCgO7EUKaAs6Q7G+/r3r35ZFY=";
};
version = "6.8.0-rc2";
# modDirVersion = "6.8.0-rc2";
modDirVersion = "6.8.0-rc2-next-20240201-postmarketos-exynos5";
extraMeta.branch = "6.8";
defconfig = "exynos5_defconfig";
autoModules = false;
# preferBuiltin = false;
inherit features kernelPatches randstructSeed structuredExtraConfig;
}

View File

@@ -2,6 +2,7 @@
, fetchurl
, linux-megous
, linuxManualConfig
, sane-kernel-tools
, writeTextFile
#v nixpkgs calls `.override` on the kernel to configure additional things, but we don't care about those things
, features ? null
@@ -22,39 +23,7 @@ let
};
};
# parseKconfigValue = str: let
# inherit (lib) kernel;
# in
# if str == "y" then
# kernel.yes
# else if str == "m" then
# kernel.module
# else
# # kernel.freeform (lib.removePrefix ''"'' (lib.removeSuffix ''"'' str))
# kernel.freeform str
# ;
parseKconfigLine = line: let
pieces = lib.splitString "=" line;
in
if lib.hasPrefix "#" (lib.head pieces) then [
# this line is a comment.
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
] else if lib.length pieces == 1 then [
# no equals sign: this is probably a blank line
] else [{
name = lib.head pieces;
# value = parseKconfigValue (lib.concatStringsSep "=" (lib.tail pieces));
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
value = lib.concatStringsSep "=" (lib.tail pieces);
}]
;
parseKconfig = wholeStr: let
lines = lib.splitString "\n" wholeStr;
parsedItems = lib.concatMap parseKconfigLine lines;
in
lib.listToAttrs parsedItems;
KconfigStr = (builtins.readFile ./config-postmarketos-allwinner.aarch64) + ''
defconfigStr = (builtins.readFile ./config-postmarketos-allwinner.aarch64) + ''
#
# Extra nixpkgs-specific options
# nixos/modules/system/boot/systemd.nix wants CONFIG_DMIID
@@ -79,11 +48,11 @@ in linuxManualConfig {
configfile = writeTextFile {
name = "config-postmarketos-allwinner.aarch64";
text = KconfigStr;
text = defconfigStr;
};
# nixpkgs requires to know the config as an attrset, to do various eval-time assertions.
# this forces me to include the Kconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
config = parseKconfig KconfigStr;
# this forces me to include the defconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
config = sane-kernel-tools.parseDefconfig defconfigStr;
# these likely aren't *all* required for pinephone: pmOS kernel is shared by many devices
kernelPatches = [

View File

@@ -1,6 +1,10 @@
{ lib
, linux_6_1
, linux ? linux_6_1, linux_6_1
, linuxManualConfig
, optimizeForSize ? false
, useEdpPanel ? false #< use `edp-panel` driver in snow device tree (fails to fix graphics)
, revertPanelSimplePatch ? false #< revert the commit which removed B116XW03 panel from panel-edp driver (fixes display output)
, sane-kernel-tools
, writeTextFile
#v nixpkgs calls `.override` on the kernel to configure additional things
, features ? []
@@ -9,69 +13,94 @@
}@args:
let
# TODO: lift to shared module
parseKconfigLine = line: let
pieces = lib.splitString "=" line;
in
if lib.hasPrefix "#" (lib.head pieces) then [
# this line is a comment.
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
] else if lib.length pieces == 1 then [
# no equals sign: this is probably a blank line
] else [{
name = lib.head pieces;
# value = parseKconfigValue (lib.concatStringsSep "=" (lib.tail pieces));
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
value = lib.concatStringsSep "=" (lib.tail pieces);
}]
;
parseKconfig = wholeStr: let
lines = lib.splitString "\n" wholeStr;
parsedItems = lib.concatMap parseKconfigLine lines;
in
lib.listToAttrs parsedItems;
defconfigPmos = builtins.readFile ./config-postmarketos-exynos5.arm7;
patches = {
useEdpPanel = {
name = "snow: use edp-panel driver";
patch = ./snow-panel-fix.patch;
};
revertPanelSimplePatch = {
name = "revert ad3e33fe071dffea07279f96dab4f3773c430fe2, and get snow to use edp-panel again";
patch = ./snow-panel-revert-b116xw03.patch;
};
};
# remove CONFIG_LOCALVERSION else nixpkgs complains about mismatched modDirVersion
KconfigStr = lib.replaceStrings
[
''CONFIG_LOCALVERSION="-postmarketos-exynos5"''
''CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y''
''CONFIG_BATTERY_SBS=y''
]
[
''CONFIG_LOCALVERSION=''
withoutOsFlavor = defconfig: lib.replaceStrings
[ ''CONFIG_LOCALVERSION="-postmarketos-exynos5"'' ]
[ ''CONFIG_LOCALVERSION='' ]
defconfig
;
# XXX(2024/06/06): if this module is loaded before udev, then kernel panic.
# see: <repo:NixOS/mobile-nixos:devices/families/mainline-chromeos/default.nix>
withModuleFixes = defconfig: lib.replaceStrings
[ ''CONFIG_BATTERY_SBS=y'' ]
[ ''CONFIG_BATTERY_SBS=m'' ]
defconfig
;
withOptimizations = defconfig: if optimizeForSize then
lib.replaceStrings
[ ''CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y'' ]
# XXX(2024/06/06): if the bzImage is too large, it fails to boot.
# probably an issue with the uboot relocations; not sure exactly what the size limit is.
''CONFIG_CC_OPTIMIZE_FOR_SIZE=y''
# XXX(2024/06/06): if this module is loaded before udev, then kernel panic.
# see: <repo:NixOS/mobile-nixos:devices/families/mainline-chromeos/default.nix>
''CONFIG_BATTERY_SBS=m''
]
(builtins.readFile ./config-postmarketos-exynos5.arm7)
+ ''
# XXX(2024/06/08): it now boots fine with the stock optimizations, though the difference in size is only 500KiB (about 10%).
# perhaps this was mis-diagnosed
[ ''CONFIG_CC_OPTIMIZE_FOR_SIZE=y'' ]
defconfig
else
defconfig
;
withNixosRequirements = defconfig: defconfig + ''
#
# Extra nixpkgs-specific options
# nixos/modules/system/boot/systemd.nix wants CONFIG_DMIID
# nixos/modules/services/hardware/udev.nix wants CONFIG_MODULE_COMPRESS_ZSTD
#
CONFIG_DMIID=y
CONFIG_MODULE_COMPRESS_ZSTD=y
CONFIG_DRM_LIMA=y
CONFIG_DRM_MALI_DISPLAY=m
#
# Extra sane-specific options
#
CONFIG_SECURITY=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,bpf";
'';
in linuxManualConfig {
inherit (linux_6_1) extraMakeFlags modDirVersion src version;
defconfigStr = withNixosRequirements (
withOptimizations (
withModuleFixes (
withoutOsFlavor (
defconfigPmos
)
)
)
);
in (linuxManualConfig {
inherit (linux) extraMakeFlags modDirVersion src version;
inherit features randstructSeed;
kernelPatches = args.kernelPatches or [];
kernelPatches = (args.kernelPatches or []) ++ lib.optionals useEdpPanel [
patches.useEdpPanel
] ++ lib.optionals revertPanelSimplePatch [
patches.revertPanelSimplePatch
];
configfile = writeTextFile {
name = "config-postmarketos-exynos5.arm7";
text = KconfigStr;
text = defconfigStr;
};
# nixpkgs requires to know the config as an attrset, to do various eval-time assertions.
# this forces me to include the Kconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
config = parseKconfig KconfigStr;
}
# this forces me to include the defconfig inline, instead of fetching it the way i do all the other pmOS kernel stuff.
config = sane-kernel-tools.parseDefconfig defconfigStr;
}).overrideAttrs (base: {
passthru = (base.passthru or {}) // {
sanePatches = patches;
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
index 65b000df176e..bc8060890137 100644
--- a/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
+++ b/arch/arm/boot/dts/samsung/exynos5250-snow-common.dtsi
@@ -205,7 +205,7 @@ backlight: backlight {
};
panel: panel {
- compatible = "auo,b116xw03";
+ compatible = "edp-panel";
power-supply = <&fet6>;
backlight = <&backlight>;

View File

@@ -0,0 +1,100 @@
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index 95c8472d878a..feb665df35a1 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -976,6 +976,32 @@ static const struct panel_desc auo_b116xak01 = {
},
};
+static const struct drm_display_mode auo_b116xw03_mode = {
+ .clock = 70589,
+ .hdisplay = 1366,
+ .hsync_start = 1366 + 40,
+ .hsync_end = 1366 + 40 + 40,
+ .htotal = 1366 + 40 + 40 + 32,
+ .vdisplay = 768,
+ .vsync_start = 768 + 10,
+ .vsync_end = 768 + 10 + 12,
+ .vtotal = 768 + 10 + 12 + 6,
+ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+};
+
+static const struct panel_desc auo_b116xw03 = {
+ .modes = &auo_b116xw03_mode,
+ .num_modes = 1,
+ .bpc = 6,
+ .size = {
+ .width = 256,
+ .height = 144,
+ },
+ .delay = {
+ .enable = 400,
+ },
+};
+
static const struct drm_display_mode auo_b133han05_mode = {
.clock = 142600,
.hdisplay = 1920,
@@ -1699,6 +1725,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "auo,b116xa01",
.data = &auo_b116xak01,
+ }, {
+ .compatible = "auo,b116xw03",
+ .data = &auo_b116xw03,
}, {
.compatible = "auo,b133han05",
.data = &auo_b133han05,
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index dd7928d9570f..95959dcc6e0e 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -919,38 +919,6 @@ static const struct panel_desc auo_b101xtn01 = {
},
};
-static const struct drm_display_mode auo_b116xw03_mode = {
- .clock = 70589,
- .hdisplay = 1366,
- .hsync_start = 1366 + 40,
- .hsync_end = 1366 + 40 + 40,
- .htotal = 1366 + 40 + 40 + 32,
- .vdisplay = 768,
- .vsync_start = 768 + 10,
- .vsync_end = 768 + 10 + 12,
- .vtotal = 768 + 10 + 12 + 6,
- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
-};
-
-static const struct panel_desc auo_b116xw03 = {
- .modes = &auo_b116xw03_mode,
- .num_modes = 1,
- .bpc = 6,
- .size = {
- .width = 256,
- .height = 144,
- },
- .delay = {
- .prepare = 1,
- .enable = 200,
- .disable = 200,
- .unprepare = 500,
- },
- .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
- .connector_type = DRM_MODE_CONNECTOR_LVDS,
-};
-
static const struct display_timing auo_g070vvn01_timings = {
.pixelclock = { 33300000, 34209000, 45000000 },
.hactive = { 800, 800, 800 },
@@ -4134,9 +4102,6 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "auo,b101xtn01",
.data = &auo_b101xtn01,
- }, {
- .compatible = "auo,b116xw03",
- .data = &auo_b116xw03,
}, {
.compatible = "auo,g070vvn01",
.data = &auo_g070vvn01,

View File

@@ -12,7 +12,7 @@ let
hash = "sha256-MiVokKlpcJmfoGuWAMeW1En7gZ5hk0rCQArYm6P9XCc=";
};
overlay = import "${src}/overlay/overlay.nix";
final = pkgs.appendOverlays [ overlay ];
final = pkgs.extend overlay;
in src.overrideAttrs (base: {
# passthru only mobile-nixos' own packages -- not the whole nixpkgs-with-mobile-nixos-as-overlay:
passthru = base.passthru // (overlay final pkgs);

View File

@@ -1,16 +1,37 @@
{ pkgs
, fetchFromGitHub
, lib
, nix-update-script
}:
let
src = fetchFromGitHub {
owner = "nix-community";
repo = "nixpkgs-wayland";
rev = "8e2d180329f4009ac06042b50ca0a356722aea19";
hash = "sha256-8rKI+MKmWOpEy7XKRMURph4b6VkMkh+Nr20hkpyk5hM=";
rev = "90cadf89f6edd41c7b9f9436cdc8a4c3206747e6";
hash = "sha256-b6LF6PGzBHJZzhOeZbt4AX2E1wMbhHGurskwABFbiJg=";
};
overlay = import "${src}/overlay.nix";
final = pkgs.appendOverlays [ overlay ];
flake = import "${src}/flake.nix";
evaluated = flake.outputs {
self = evaluated;
lib-aggregate.lib = lib // {
# mock out flake-utils, which it uses to construct flavored package sets.
# we only need the overlay (unflavored)
flake-utils.eachSystem = sys: fn: {};
};
};
overlay = evaluated.overlay;
final = pkgs.extend overlay;
in src.overrideAttrs (base: {
# attributes required by update scripts
pname = "nixpkgs-wayland";
version = "0-unstable-2024-06-12";
src = src;
# passthru only nixpkgs-wayland's own packages -- not the whole nixpkgs-with-nixpkgs-wayland-as-overlay:
passthru = base.passthru // (overlay final pkgs);
passthru = base.passthru // (overlay final pkgs) // {
updateScript = nix-update-script {
extraArgs = [ "--version" "branch" ];
};
};
})

View File

@@ -1,5 +1,6 @@
# XXX: this is in the bootstrap path;
# i'm pretty much restricted to using just `builtin`s here.
# this means it has to be evaluatable using only builtins,
# though i'm free to include optional functionality (e.g. update scripts) so long as i gate it behind availability checks.
#
# branch workflow:
# - daily:
@@ -20,34 +21,48 @@
, doPatch ? true
, localSystem ? builtins.currentSystem #< not available in pure mode
, system ? localSystem
#VVV these may or may not be available when called VVV
, fetchzip ? builtins.fetchTarball
, nix-update-script ? null
}:
let
unpatchedSrc = builtins.fetchGit {
url = "https://github.com/NixOS/nixpkgs.git";
ref = variant;
rev = {
master = "716a7056386dcc67eb3b813289499d6329d4befc";
staging = "da9d22446697971278edcd4af92f63221f7d21f6";
staging-next = "5aa86ae5585cd46299ee46682fda8a9b76baf2ae";
}."${variant}";
lock = {
master.rev = "37c6554b22af24d14f4ce44490d7f4c5f759d80a";
master.sha256 = "sha256-nrWZK5CSQyXcwOMreVYUzslR0eRCtt+Bf6hqiTNbT7A=";
staging.rev = "4f537018d08bbaadc9d8f7f54c04b1b06a1ffff6";
staging.sha256 = "sha256-QBcprLKV6rAJD6knsLYmBeNuecuF4HU7vO01YSpcbFM=";
staging-next.rev = "4f537018d08bbaadc9d8f7f54c04b1b06a1ffff6";
staging-next.sha256 = "sha256-QBcprLKV6rAJD6knsLYmBeNuecuF4HU7vO01YSpcbFM=";
};
unpatchedNixpkgs = import "${unpatchedSrc}" { inherit localSystem; };
patchesFor = unpatchedNixpkgs.callPackage ./list.nix { };
lock' = lock."${variant}";
unpatchedSrc = fetchzip {
url = "https://github.com/NixOS/nixpkgs/archive/${lock'.rev}.tar.gz";
inherit (lock') sha256;
};
commonNixpkgsArgs = {
inherit localSystem;
# reset impurities
config = {};
overlays = [];
};
unpatchedNixpkgs = import unpatchedSrc commonNixpkgsArgs;
patchedSrc = unpatchedNixpkgs.applyPatches {
name = "nixpkgs-patched-uninsane";
# version = ...
src = unpatchedSrc;
patches = patchesFor {
inherit variant;
date = unpatchedSrc.lastModifiedDate;
};
patches = unpatchedNixpkgs.callPackage ./list.nix { };
# skip applied patches
prePatch = ''
realpatch=$(command -v patch)
patch() {
OUT=$($realpatch "$@") || echo "$OUT" | grep "Skipping patch" -q
}
'';
};
src = if doPatch then patchedSrc else unpatchedSrc;
args = {
inherit localSystem;
src = if doPatch then patchedSrc else { outPath = unpatchedSrc; };
args = commonNixpkgsArgs // {
config = {
allowUnfree = true; # NIXPKGS_ALLOW_UNFREE=1
allowBroken = true; # NIXPKGS_ALLOW_BROKEN=1
@@ -57,7 +72,24 @@ let
# so avoid specifying hostPlatform.system on non-cross builds, so i can use upstream caches.
crossSystem = system;
} else {});
nixpkgs = import "${src}" args;
in
# N.B.: this is crafted to allow `nixpkgs.FOO` from other nix code
# AND `nix-build -A nixpkgs`
src // (import "${src}" args)
if src ? overrideAttrs then
src.overrideAttrs (base: {
# attributes needed for update scripts
pname = "nixpkgs";
version = "24.05-unstable-2024-06-12";
passthru = (base.passthru or {}) // nixpkgs // {
src = unpatchedSrc // {
inherit (lock') rev;
};
updateScript = nix-update-script {
extraArgs = [ "--version" "branch" ];
};
};
})
else
nixpkgs

View File

@@ -1,5 +1,4 @@
{ fetchpatch2, fetchurl, lib }:
{ variant, date }:
let
fetchpatch' = {
saneCommit ? null,
@@ -8,7 +7,6 @@ let
hash ? null,
title ? null,
revert ? false,
merged ? {},
}:
let
url = if prUrl != null then
@@ -19,21 +17,13 @@ let
else
"https://github.com/NixOS/nixpkgs/commit/${nixpkgsCommit}.patch"
;
isMerged = merged ? "${variant}" && lib.versionAtLeast date merged."${variant}";
in if !isMerged then fetchpatch2 (
in fetchpatch2 (
{ inherit revert url; }
// (if hash != null then { inherit hash; } else {})
// (if title != null then { name = title; } else {})
) else null;
);
in
builtins.filter (p: p != null)
[
# if a patch has been merged, use
# merged.staging = "<date>";
# merged.master = "<date>";
# etc, where "date" is like "20240228181608"
# and can be found with `nix-repl > :lf . > lastModifiedDate`
# TODO: apply this once it's fixed for aarch64
# (fetchpatch' {
# title = "libvpx: fix cross compiling for armv7";
@@ -42,9 +32,15 @@ builtins.filter (p: p != null)
# })
(fetchpatch' {
title = "networkmanager: 1.46.0 1.48.0";
prUrl = "https://github.com/NixOS/nixpkgs/pull/316417";
hash = "sha256-LfQyB3tzQa3UNyZl9HWCuoyBznIhinodlTL6TnPn0Uk=";
title = "unl0kr: 2.0.0 -> 3.2.0";
prUrl = "https://github.com/NixOS/nixpkgs/pull/319126";
hash = "sha256-IfGayn+othMzp5Mc+0klBvUmykFwq95OKIJDvWL96d0=";
})
(fetchpatch' {
title = "sysvol: init at 0-unstable-2024-06-07";
prUrl = "https://github.com/NixOS/nixpkgs/pull/318440";
hash = "sha256-OX1OP2m9LJYjVcryhpt520XJmdK1XS0KKaEBzMjdpNo=";
})
(fetchpatch' {
@@ -57,8 +53,8 @@ builtins.filter (p: p != null)
(fetchpatch' {
title = "trust-dns: rebrand as hickory-dns";
saneCommit = "a7613d50c58b5612a7b806ce1375d8bf0485ab55";
hash = "sha256-N4DfNhCeg9etVeTPVzJ73CwiZzf43SozK8nrfXIm0uQ=";
prUrl = "https://github.com/NixOS/nixpkgs/pull/316466";
hash = "sha256-LJr+z7pgEXnPGqgsWLgMGmCJii1rh6nfIeEMHat4Xg4=";
})
(fetchpatch' {
@@ -69,7 +65,8 @@ builtins.filter (p: p != null)
# branch: wip-ffado-cross
(fetchpatch' {
# TODO: send out for review (after jtolnar's stuff is merged)
# TODO: send out for review (after jtojnar's stuff is merged)
# - <https://github.com/NixOS/nixpkgs/pull/306407>
title = "ffado: support cross compilation";
saneCommit = "001fe13a735cb9c6fad80525531e863f949e1495";
hash = "sha256-rVsFR8vRTHqFJgDQFHI/E0LtllqKr79FyR92HPeLUb8=";
@@ -89,8 +86,8 @@ builtins.filter (p: p != null)
hash = "sha256-IW+0u5lytIPU3xhgGtYgexXUrS2VFXAV6GC50jJS5ak=";
})
# 2024/02/25: still outstanding
# (fetchpatch' {
# # 2024/06/08: still outstanding
# title = "hspell: remove build perl from runtime closure";
# prUrl = "https://github.com/NixOS/nixpkgs/pull/263182";
# hash = "sha256-Wau+PB+EUQDvWX8Kycw1sNrM3GkPVjKSS4niIDI0sjM=";
@@ -175,18 +172,6 @@ builtins.filter (p: p != null)
# hash = "sha256-oQEM3EZfAOmfZzDu9faCqyOFZsdHYGn1mVBgkxt68Zg=";
# })
# (fetchpatch {
# # stdenv: fix cc for pseudo-crosscompilation
# # closed because it breaks pkgsStatic (as of 2023/02/12)
# url = "https://github.com/NixOS/nixpkgs/pull/196497.diff";
# hash = "sha256-eTwEbVULYjmOW7zUFcTUqvBZqUFjHTKFhvmU2m3XQeo=";
# })
# for raspberry pi: allow building u-boot for rpi 4{,00}
# TODO: remove after upstreamed: https://github.com/NixOS/nixpkgs/pull/176018
# (it's a dupe of https://github.com/NixOS/nixpkgs/pull/112677 )
# ./02-rpi4-uboot.patch
# (fetchpatch' {
# title = "gnustep: remove `rec` to support `overrideScope`";
# saneCommit = "69162cbf727264e50fc9d7222a03789d12644705";
@@ -215,28 +200,4 @@ builtins.filter (p: p != null)
# saneCommit = "7a4191c570b0e5a1ab257222c26a4a2ecb945037";
# hash = "sha256-FiPJhHGqZ8MFwLY+1t6HgbK6ndomFSYUKvApvrikRHE=";
# })
# (fetchpatch' {
# # doesn't apply cleanly. use build result in <working/zcash>
# title = "zcash: 5.4.2 -> 5.7.0";
# prUrl = "https://github.com/NixOS/nixpkgs/pull/229810";
# hash = "sha256-ProoPJ10rUtOZh2PzpegviG6Ip1zSuWC92BpP+ux9ZQ=";
# })
# (fetchpatch' {
# # disabled, at least until the PR is updated to use `pkg-config` instead of `pkgconfig`.
# # the latter is an alias, which breaks nix-index
# title = "phog: init at 0.1.3";
# prUrl = "https://github.com/NixOS/nixpkgs/pull/251249";
# hash = "sha256-e38Z7sO7xDQHzE9UOfbptc6vJuONE5eP9JFp2Nzx53E=";
# })
# fix qt6.qtbase and qt6.qtModule to cross-compile.
# unfortunately there's some tangle that makes that difficult to do via the normal `override` facilities
# ./2023-03-03-qtbase-cross-compile.patch
# qt6 qtwebengine: specify `python` as buildPackages
# ./2023-06-02-qt6-qtwebengine-cross.patch
# Jellyfin: don't build via `libsForQt5.callPackage`
# ./2023-06-06-jellyfin-no-libsForQt5-callPackage.patch
]

View File

@@ -0,0 +1,26 @@
{ lib
, newScope
}:
lib.makeScope newScope (self: with self; {
parseDefconfigLine = line: let
pieces = lib.splitString "=" line;
in
if lib.hasPrefix "#" (lib.head pieces) then [
# this line is a comment.
# N.B.: this could be like `# CONFIG_FOO is not set`, which i might want to report as `n`
] else if lib.length pieces == 1 then [
# no equals sign: this is probably a blank line
] else [{
name = lib.head pieces;
# nixpkgs kernel config is some real fucking bullshit: it wants a plain string here instead of the structured config it demands eeeeeeverywhere else.
value = lib.concatStringsSep "=" (lib.tail pieces);
}]
;
# parseDefconfig: given the entire text of a defconfig file
# parse it into an attrset usable by the nixpkgs kernel config tools.
parseDefconfig = wholeStr: let
lines = lib.splitString "\n" wholeStr;
parsedItems = lib.concatMap parseDefconfigLine lines;
in
lib.listToAttrs parsedItems;
})

View File

@@ -22,8 +22,8 @@ then this updates the tags on-disk to reflect their path.
DIRECTORY: specify `.` to scan the entire library.
options:
--dry-run: only show what would be done, don't actually do it.
--verbose
--dry-run: only show what would be done, don't actually do it.
--verbose
--album ALBUM manually specify the tag, rather than guessing from path.
--album-artist ARTIST often combined with DIRECTORY to tag an entire artist or album.
--artist ARTIST
@@ -31,7 +31,7 @@ options:
--trackno TRACK_NUMBER
fix-tags options:
--force: apply path-based tag to each file, even those which already have tags (only for fix-tags)
--force: apply path-based tag to each file, even those which already have tags (only for fix-tags)
"""
from dataclasses import dataclass
@@ -118,6 +118,10 @@ class Tags:
return f"artist:{self.artist}/{self.albumartist}, album:{self.album}, title:{self.title}, trackno:{self.tracknumber}"
def union(self, fallback: 'Tags') -> 'Tags':
"""
substitute any tags missing tags in `self` with those from `fallback`.
i.e. `self` takes precedence over `fallback`.
"""
def merge_field(primary: list[str], secondary: list[str]) -> list[str]:
# primary_lower = [i.lower() for i in primary]
# return primary + [i for i in secondary if i.lower() not in primary_lower]
@@ -159,6 +163,9 @@ class Tags:
if v.count("/") == 1:
trackno, last = v.split("/")
try:
if int(trackno) == int(last) == 1:
# track 1/1: useless; clear the field
self.tracknumber[i] = ''
if int(trackno) <= int(last):
self.tracknumber[i] = trackno.lstrip('0')
except: pass
@@ -401,9 +408,14 @@ class Tagger:
path_tags = Tags.from_path(path_)
additional_tags = self.manual_tags.union(path_tags)
if self.force:
# additional_tags overrule old_tags
new_tags = additional_tags.union(old_tags)
else:
# old_tags overrule additional_tags
new_tags = old_tags.union(additional_tags)
if additional_tags.tracknumber == [""]:
# special case that `--trackno ""` can be used to delete the track number without `--force`ing all fields
new_tags.tracknumber = []
new_tags = new_tags.union(self.manual_tags)
new_tags.trim_fields()
new_tags.cleanup_trackno()

View File

@@ -118,7 +118,7 @@
, yarn
}:
let
version = "7.8.0";
version = "7.11.1";
ringrtcPrebuild = fetchurl {
# version is found in signal-desktop's package.json as "@signalapp/ringrtc"
@@ -165,11 +165,11 @@ let
repo = "Signal-Desktop";
leaveDotGit = true; # signal calculates the release date via `git`
rev = "v${version}";
hash = "sha256-CBcLk54cu4PGGZbQsPeYjjWnRFmFPxM9+mxLdQKCPP0=";
hash = "sha256-A+VcVo+avtIg7IbO1NWaG2nitnFG5mRfB55wgSiDsbA=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-ImkJyphN0YfXOUuU14HII/3798kbQ4iwgXr600k4PHU=";
hash = "sha256-q9kBoGXti37sgNhhYTqw+w8NHO35zp+v77mxKQTqv7g=";
};
nodejs' = mkNodeJs pkgs;
@@ -400,8 +400,8 @@ stdenv.mkDerivation rec {
passthru = {
# inherit bettersqlitePatch signal-fts5-extension;
updateScript = gitUpdater {
# TODO: prevent update to betas
rev-prefix = "v";
ignoredVersions = "beta";
};
nodejs = nodejs';
buildYarn = buildYarn;

View File

@@ -1,12 +1,13 @@
{ pkgs
, fetchFromGitHub
, nix-update-script
}:
let
src = fetchFromGitHub {
owner = "Mic92";
repo = "sops-nix";
rev = "d4555e80d80d2fa77f0a44201ca299f9602492a0";
hash = "sha256-8Q6mKSsto8gaGczXd4G0lvawdAYLa5Dlh3/g4hl5CaM=";
rev = "c279dec105dd53df13a5e57525da97905cc0f0d6";
hash = "sha256-psA+1Q5fPaK6yI3vzlLINNtb6EeXj111zQWnZYyJS9c=";
};
flake = import "${src}/flake.nix";
evaluated = flake.outputs {
@@ -15,10 +16,21 @@ let
nixpkgs-stable = pkgs; #< shameless lie :)
};
overlay = evaluated.overlays.default;
final = pkgs.appendOverlays [ overlay ];
final = pkgs.extend overlay;
in src.overrideAttrs (base: {
# attributes required by update scripts
pname = "sops-nix";
# nix-update-script insists on this weird `assets-` version format
version = "assets-unstable-2024-06-11";
src = src;
passthru = base.passthru
// (overlay final pkgs)
// { inherit (evaluated) nixosModules; }
// {
updateScript = nix-update-script {
extraArgs = [ "--version" "branch" ];
};
}
;
})

View File

@@ -3,49 +3,47 @@
, gtk4-layer-shell
, gtkmm4
, pkg-config
, pulseaudio
, nix-update-script
, wireplumber
, wrapGAppsHook4
}:
stdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation {
pname = "sysvol";
version = "0-unstable-2024-04-11";
version = "0-unstable-2024-06-09";
src = fetchFromGitHub {
owner = "AmirDahan";
owner = "System64fumo";
repo = "sysvol";
rev = "a26809de285ee194436bc55ef701476765c5b15e";
hash = "sha256-WiFm5SRQV2up9EBCR9oF0p9F+DQHDQZhxsaUuvpbMw8=";
rev = "8e374e596803944ddaa5db3af20124732cdafa89";
hash = "sha256-GAbOfiF0LXtiunKiGnMKh/SD23BfdjpT9LQhg7yNvIM=";
};
postPatch = let
# i don't know how else to escape this
var = v: lib.concatStrings [ "$" "{" v "}" ];
in ''
postPatch = ''
substituteInPlace Makefile \
--replace-fail 'pkg-config' '${var "PKG_CONFIG"}' \
--replace-fail 'g++' '${var "CXX"}' \
--replace-fail 'strip sysvol' ""
--replace-fail 'pkg-config' ''${PKG_CONFIG}
'';
nativeBuildInputs = [
pkg-config
wrapGAppsHook4 #< to plumb `GDK_PIXBUF_MODULE_FILE` through, and get not-blurry icons
];
buildInputs = [
gtk4-layer-shell
gtkmm4
pulseaudio
wireplumber
];
installPhase = ''
mkdir -p $out/bin
install -m755 sysvol $out/bin/sysvol
'';
makeFlags = [ "DESTDIR=${placeholder "out"}" ];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version" "branch" ];
};
meta = {
description = "A basic GTK4 volume indicator";
inherit (finalAttrs.src.meta) homepage;
homepage = "https://github.com/System64fumo/sysvol";
mainProgram = "sysvol";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ colinsane ];
};
})
}

View File

@@ -5,12 +5,12 @@
}:
stdenv.mkDerivation {
pname = "uassets";
version = "0-unstable-2024-05-27";
version = "0-unstable-2024-06-12";
src = fetchFromGitHub {
owner = "uBlockOrigin";
repo = "uAssets";
rev = "deb1f47b49461e1c2f307931fc6a02c76137168b";
hash = "sha256-IhzNUSkGnGuY9YBq9rN7l2rwxHzRMQTp3aPJ6xF46lU=";
rev = "6a81d022e56b26921a84ad8ec59a5703652c1bc5";
hash = "sha256-8Z31V6ykScTiIjx2kpPZPy7ay6Z0oXHrRltVhbyNWqo=";
};
dontBuild = true;

View File

@@ -14,7 +14,7 @@ let
inherit (py-final) callPackage;
inherit pkgs;
};
final' = if final != null then final else pkgs.appendOverlays [(_: _: sane-overlay)];
final' = if final != null then final else pkgs.extend (_: _: sane-overlay);
sane-additional = with final'; {
sane-data = import ../modules/data { inherit lib sane-lib; };
sane-lib = import ../modules/lib final';
@@ -28,7 +28,6 @@ let
chatty-latest = callPackage ./additional/chatty-latest { };
codemadness-frontends = callPackage ./additional/codemadness-frontends { };
codemadness-frontends_0_6 = codemadness-frontends.v0_6;
delfin = callPackage ./additional/delfin { };
eg25-control = callPackage ./additional/eg25-control { };
eg25-manager = callPackage ./additional/eg25-manager { };
feeds = lib.recurseIntoAttrs (callPackage ./additional/feeds { });
@@ -52,11 +51,12 @@ let
libdng = callPackage ./additional/libdng { };
libmegapixels = callPackage ./additional/libmegapixels { };
lightdm-mobile-greeter = callPackage ./additional/lightdm-mobile-greeter { };
linux-exynos5-mainline = callPackage ./additional/linux-exynos5-mainline { };
linux-firmware-megous = callPackage ./additional/linux-firmware-megous { };
# XXX: eval error: need to port past linux_6_4
# linux-manjaro = callPackage ./additional/linux-manjaro { };
linux-megous = callPackage ./additional/linux-megous { };
linux-postmarketos = callPackage ./additional/linux-postmarketos { }; #< TODO: rename -> linux-postmarketos-allwinner
linux-postmarketos-allwinner = callPackage ./additional/linux-postmarketos-allwinner { };
linux-postmarketos-exynos5 = callPackage ./additional/linux-postmarketos-exynos5 { };
mcg = callPackage ./additional/mcg { };
megapixels-next = callPackage ./additional/megapixels-next { };
@@ -64,10 +64,12 @@ let
modemmanager-split = callPackage ./additional/modemmanager-split { };
mx-sanebot = callPackage ./additional/mx-sanebot { };
networkmanager-split = callPackage ./additional/networkmanager-split { };
nixpkgs = import ./additional/nixpkgs {
nixpkgs = callPackage ./additional/nixpkgs {
localSystem = stdenv.buildPlatform.system;
system = stdenv.hostPlatform.system;
};
nixpkgs-staging = nixpkgs.override { variant = "staging"; };
nixpkgs-next = nixpkgs.override { variant = "staging-next"; };
nixpkgs-wayland = callPackage ./additional/nixpkgs-wayland { };
peerswap = callPackage ./additional/peerswap { };
phog = callPackage ./additional/phog { };
@@ -77,6 +79,7 @@ let
sane-backgrounds = callPackage ./additional/sane-backgrounds { };
sane-cast = callPackage ./additional/sane-cast { };
sane-die-with-parent = callPackage ./additional/sane-die-with-parent { };
sane-kernel-tools = lib.recurseIntoAttrs (callPackage ./additional/sane-kernel-tools { });
sane-open = callPackage ./additional/sane-open { };
sane-screenshot = callPackage ./additional/sane-screenshot { };
sane-scripts = lib.recurseIntoAttrs (callPackage ./additional/sane-scripts { });
@@ -172,7 +175,7 @@ let
sane = lib.recurseIntoAttrs (sane-additional // sane-patched);
}
# patched packages always override anything:
// (lib.mapAttrs (pname: _pkg: final'.sane."${pname}") sane-patched)
// sane-patched
# "additional" packages only get added if their version is newer than upstream
// (lib.mapAttrs
(pname: _pkg: if unpatched ? "${pname}" && unpatched."${pname}" ? version && lib.versionAtLeast unpatched."${pname}".version final'.sane."${pname}".version then

12
scripts/check-nur Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
cd ../integrations/nur
# TODO: should include `-I nixpkgs=</path/to/an/unpatched/nixpkgs>`
NIX_PATH= NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-env -f . -qa \* --meta --xml \
--allowed-uris https://static.rust-lang.org \
--option restrict-eval true \
--option allow-import-from-derivation true \
--drv-path --show-trace \
-I ../../ \
"$@" \
| tee # tee to prevent interactive mode

142
scripts/deploy Executable file
View File

@@ -0,0 +1,142 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nettools
SELF=$(hostname)
usage() {
echo "deploy: deploy a nix config to a remote machine, possibly activating it"
echo ""
echo "usage: deploy [options] [host]"
echo "options:"
echo "- --action copy|switch|test (default: 'switch')"
echo "- --variant light|min|''|all (default: '')"
echo "- --pre: alias for --action copy --variant all all"
echo ""
echo "common idioms:"
echo "deploy all: deploy all hosts, sequentially"
exit 1
}
info() {
echo "[deploy]" "$@"
}
action=switch
host="$SELF"
variant=
nixArgs=()
parseArgs() {
while [ "$#" -ne 0 ]; do
local arg=$1
shift
case "$arg" in
(--action)
action=$1
shift
;;
(--help)
usage
;;
(--variant)
if [ -n "$1" ]; then
variant=-$1
else
variant=
fi
shift
;;
(crappy|desko|lappy|moby|servo)
host="$arg"
;;
(--pre)
action=copy
host=all
variant=all
;;
(*)
nixArgs+=("$arg")
;;
esac
done
}
runOnTarget() {
# run the command ($@) on the machine we're deploying to.
# if that's a remote machine, then do it via ssh, else local shell.
if [ -n "$host" ] && [ "$host" != "$SELF" ]; then
info "running on remote:" "$@"
ssh "$host" "$@"
else
info "running locally:" "$@"
"$@"
fi
}
# deployOneHost $host $variant
deployOneHost() {
local host="$1"
local variant="$2"
info "building $host$variant ..."
nix-build -A "hosts.$host$variant.toplevel" --out-link "./build/result-$host$variant" "${nixArgs[@]}" || return 1
storePath="$(readlink ./build/result-$host$variant)"
info "build $host$variant -> $storePath"
# mimic `nixos-rebuild --target-host`, in effect:
# - nix-copy-closure ...
# - nix-env --set ...
# - switch-to-configuration <boot|dry-activate|switch|test|>
# avoid the actual `nixos-rebuild` for a few reasons:
# - fewer nix evals
# - more introspectability and debuggability
# - sandbox friendliness (especially: `git` doesn't have to be run as root)
if [ -n "$host" ] && [ "$host" != "$SELF" ]; then
if [ -e /run/secrets/nix_signing_key ]; then
info "signing store paths ..."
sudo nix store sign -r -k /run/secrets/nix_signing_key "$storePath"
else
info "not signing store paths: /run/secrets/nix_signing_key does not exist"
fi
# add more `-v` for more verbosity (up to 5).
# builders-use-substitutes false: optimizes so that the remote machine doesn't try to get paths from its substituters.
# we already have all paths here, and the remote substitution is slow to check and SERIOUSLY flaky on moby in particular.
nix copy -vv --option builders-use-substitutes false --to "ssh-ng://$host" "$storePath" || return 1
fi
if [ -n "$action" ] && [ "$action" != "copy" ]; then
info "activating profile... "
runOnTarget sudo nix-env -p /nix/var/nix/profiles/system --set "$storePath" || return 1
runOnTarget sudo "$storePath/bin/switch-to-configuration" "$action" || return 1
fi
}
parseArgs "$@"
failedDeploys=()
if [ "$host" = "all" ]; then
for host in moby lappy crappy servo desko; do
if [ "$variant" = "all" ]; then
for variant in -min -light ""; do
deployOneHost "$host" "$variant" || \
failedDeploys+=("$host$variant")
done
else
deployOneHost "$host" "$variant" || \
failedDeploys+=("$host$variant")
fi
done
else
deployOneHost "$host" "$variant" || \
failedDeploys+=("$host$variant")
fi
if [ "${#failedDeploys[@]}" -ne 0 ]; then
echo "FAILED DEPLOYMENT:"
for d in "${failedDeploys[@]}"; do
echo "- $d"
done
exit 1
else
echo "SUCCESS"
fi

30
scripts/sync Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env nix-shell
#!nix-shell -p rsync -p sane-scripts.sync-music
usage() {
echo "sync <host> [passthrough flags]"
exit 1
}
host="$1"
shift
case "$host" in
desko)
sane-sync-music --compat /mnt/servo/media/Music /mnt/desko/home/Music "$@"
;;
lappy)
sane-sync-music --compress --compat /mnt/servo/media/Music /mnt/lappy/home/Music "$@"
;;
moby)
# copy photos/screenshots from moby to desko:
rsync -arv --exclude servo-macros /mnt/moby/home/Pictures/ /mnt/desko/home/Pictures/moby/
# copy books from servo to moby; delete old/untracked ones, but keep KOreader state files (sdr)
rsync -arv --delete --exclude unprocessed --exclude '*.sdr' /mnt/servo/media/Books/ /mnt/moby/home/Books/local/servo/
# N.B.: limited by network/disk -> reduce job count to improve pause/resume behavior
sane-sync-music --compress --compat --jobs 4 /mnt/servo/media/Music /mnt/moby/home/Music "$@"
;;
(*)
usage
;;
esac

View File

@@ -1,91 +1,106 @@
#!/bin/sh
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-update
showHelp() {
echo "update: updates flake inputs"
echo "usage: update [flags] [input [input ...]]"
usage() {
echo "update: update rev/hash for one or more packages"
echo "usage: update [options] [attr-path]"
echo ""
echo "flags:"
echo " --help"
echo " --dry-run"
echo "inputs:"
echo " all: update every input"
echo " safe: update inputs which rarely break the build, or are trivial to patch"
echo " unsafe: update inputs which may be annoying to patch if they break the build"
echo " nixpkgs"
echo " next"
echo "options:"
echo "- --dry-run"
echo "- --verbose"
echo ""
echo "examples:"
echo "- update nixpkgs: update only the nixpkgs input"
echo "- update sane: update every package under the 'sane' attribute"
echo "- update: update everything i know how to update"
exit 1
}
inputs=()
dryRun=
warn() {
echo "$@"
}
info() {
echo "$@"
}
debug() {
if [ -n "$verbose" ]; then
echo "$@"
fi
}
hasEffect() {
if [ -n "$dryRun" ]; then
echo "dry-run: skip $@"
else
eval "$@"
fi
}
# usage: getPkgs outVar prefix
getPkgs() {
local -n attrsArr="$1"
local attrPrefix="$2"
if [ -z "$attrPrefix" ]; then
attrPrefix=sane
fi
local attrs="$(nix-env -f . --query --available --attr-path --no-name -A $attrPrefix)"
attrsArr+=($attrs)
}
updateOnePkg() {
local attrPath="$1"
local updateScript="$(nix eval --raw -f . $attrPath.passthru.updateScript --apply 'builtins.concatStringsSep "'" "'"')"
if [ -z "$updateScript" ]; then
warn "don't know how to update '$attrPath'"
return
fi
# make sure everything needed to invoke the script actually exists on disk
nix-build -A "$attrPath.passthru.updateScript" || true
local UPDATE_NIX_NAME="$(nix eval --raw -f . $attrPath.name)"
local UPDATE_NIX_PNAME="$(nix eval --raw -f . $attrPath.pname)"
local UPDATE_NIX_OLD_VERSION="$(nix eval --raw -f . $attrPath.version)"
info "updating: '$attrPath'"
debug "$updateScript"
# we lose spaces inside the exec args... could `nix eval` without `--raw` to fix that.
UPDATE_NIX_NAME="$UPDATE_NIX_NAME" UPDATE_NIX_PNAME="$UPDATE_NIX_PNAME" UPDATE_NIX_OLD_VERSION="$UPDATE_NIX_OLD_VERSION" UPDATE_NIX_ATTR_PATH="$attrPath" eval $updateScript
}
dryRun=
toplevelsToUpdate=()
verbose=
parseArgs() {
for arg in "$@"; do
case $arg in
while [ "$#" -ne 0 ]; do
local arg=$1
shift
case "$arg" in
(--help)
showHelp
exit 1
usage
;;
(--dry-run)
dryRun=1
;;
(--verbose)
verbose=1
;;
(*)
addInputs "$arg"
toplevelsToUpdate+=("$arg")
;;
esac
done
# if no inputs were specified, assume "all"
if [ ${#inputs} -eq 0 ]; then
addInputs all
fi
}
# add $1 to `inputs` array, after parsing it
addInputs() {
case $1 in
(all)
addInputs safe
addInputs unsafe
;;
(next)
addInputs nixpkgs-next-unpatched
addInputs nixpkgs-staging-unpatched
;;
(safe)
addInputs next
addInputs nixpkgs-unpatched
addInputs sops-nix
addInputs uninsane-dot-org
;;
(unsafe)
# these tend to break more frequently
addInputs mobile-nixos
addInputs nixpkgs-wayland
;;
(mobile-nixos|nixpkgs-next-unpatched|nixpkgs-staging-unpatched|nixpkgs-unpatched|nixpkgs-wayland|sops-nix|uninsane-dot-org)
inputs+=("$1")
;;
(*)
echo "unknown input '$1'"
exit 1
;;
esac
}
# exec $@, unless we're in a dry-run in which case just print what would be done
doEffect() {
if [ -n "$dryRun" ]; then
echo "dry-run: $*"
else
"$@"
if [ "${#toplevelsToUpdate[@]}" -eq 0 ]; then
toplevelsToUpdate=(sane)
fi
}
parseArgs "$@"
echo "updating:" "${inputs[@]}"
nixFlags=()
for i in "${inputs[@]}"; do
nixFlags+=("--update-input" "$i")
pkgsToUpdate=()
for t in "${toplevelsToUpdate[@]}"; do
getPkgs pkgsToUpdate "$t"
done
doEffect nix flake lock "${nixFlags[@]}"
for p in "${pkgsToUpdate[@]}"; do
hasEffect updateOnePkg "$p"
done

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDdDR3YitDWkxvVFpOWTFS\nQXNrbHZHSzZzanpnR1Z0bE82aFpiUmNMR3djCitYT0J4K0daZmlXTzhJbWR3K0tY\nZFA0QS9rdXV5bVVXRXVuUStVd3RMeUEKLS0tIExicUdTcEFMZHZEOEFmdkV1T0tE\nc01seHdzS3RyMjc4dXF0ME1seEUzUFUKvctFuHiqCIBYGqIKQhMO7imfylxlKXBY\nezzfi0MMlfoSMmz8XqkCYT1kdgYVM1cCOwtBBmTzE2muhWK7o0zPCQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnTVJOMHVUZkFydmp3elo5\nRHlETmJUZFhpbVhpOUJPRzFXMVdGOWR6d0ZNClkrdWJBMkQ3ZHNkMWlQZDlVMWxk\nVXFrT2h6R24ya0F6VFRMTDNXaHkwZk0KLS0tIElmdTU0TC9QSzZXb3Y5ZUpLenl3\nN0gwbWVuMnQ3bGpqeU94V3kzVlFyT1EKJqdCjXhQchEXOB02EwtqmNE0TWiaR7Hz\nT8FKJXMM+2ZX7kuhv0rp7bdS+mp5Guv2vO0aIF0rDmE1/7ety2OLfQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxWnhldzk0UFdIcU03UUtE\nZ0VRVzBBRHp2cFA5Q2RjbU9kT3V4eHR1SFE0CkJRSndMZ3JOVjFRVytXSXBIbEk1\nKzBUR2pZWTVXTTRhQ2J5VlR0ejRpa00KLS0tIDZveWl3dUJZL0tIVUhKTDJPalBF\nVFVWcDBDdUt4ZlBZejQ4MGNJTGNzSGcKM9jHMEkRCmil2GO4DRVJMdPd4wikyNyP\nbI86+Z7llsMSWZdl+M/ZcTuJSq9Lh69hVNzKObuuW2GgApwoju9Lsg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBadnFScW1Zb0FKU1ErTXBM\nS01mMzNqZ3lRdDBQMHg4OFM4c1A4MEFPb1FNCktseFpzVVQ0SzZ4ZHVncm0rZkwv\nVnIwbkV5OW1TbGEveHlqenFSblRRblUKLS0tIGw2V3lYeHR6MnFQUjFqVzBKRE1P\nQ0pqVHNNekJzdWxFckdwUDBOQkt0UUUKN4/UFM2Po0yoQQNuhjh7E+kHUMqeyj3M\nxnH4ZEq4DK1VG2E816dKrsPjo6Zy4/FA6WEezPRkQ/l3j/OmtlzpHQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5NUJpc2hpY0Vwb09GbHUv\nRWRjbjRHS2xxWWNhN3BlbHlOcUgranYxZG5jCnhQOWdBM1dKdGNTL2ZuamxjSlNS\nU2VCYTZQZVJTOE1sWEYvV0cyZUlNMmcKLS0tIHk0WXNyZHIxaHJ1Wm1xVk5ZZ1lj\nL1JnTjZrK3JjK25FdEFEdzlvTURrV0UKL0HMaRQBg4KJTW+pb8RWe6iZVMJhtwrI\naH83tABhElaf1JKx8YiCG9+RHkis35nzxqSoJDN0bN5jRgVVG6C1iw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKYVh3dUZ4RFA5TmErc0Ry\nL0NGR1o2L3ZzZDhHcnFTM3dwYVl0UTFyakJZCmhxVGNTWFRRWDhQODd5c25rdGN2\nOTk4M0Q3VHp6TVQxRitkOTVZcllPTTAKLS0tIDY5MGhyZ2xqZ1B6ZDZVOGdVNkhI\nSHhSQjdFbHpXSzVQN3g0bmZLS3BQUVUKvofjws2goszgGwS9l/q6EB7C4IprEkv3\nTnAvPF67F7sneWA5nEW/VnToJWKfdGuOHKim8BEiqfPB1CC9dMke9A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxbGt3d0k1SlZCemd2V01z\nd2R2NVAxZVlJdWpkVVh3bXBUcTZ0T05kTmtFCkQzWFVqd2pQelAzNGE5MnFSeVQr\nbjRjaUJKVVN6aGlQSWdTUGdHRjR1QWcKLS0tIGdrTTF6eUl6UHFlaTlQMENiMzFP\nQlJJWlZwMjdvNUdhVnBiRlRKL3hzcXMKNF9IEoY0seK15jiJqxWrOtMSPmBUU0jS\ndSY9KXeYLQNHuCzSC2T01UHmq5FDxDszRH3O8JQ+rBSLxNx3dLpetg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSdDhQbE9mY0Q0T3Y0WDdF\nNk9QbWVCWnNvWVRmNm9EbzBFSkJrd2xiREJzClJoOHYrQ25mVTlWR0tSRlNHQXdO\nRlA2bWZIL3JpSkxQNVc3bWhpbFpuK1EKLS0tIFFEVTRKaWxDU0tuejNLL0JuV1gx\nNHA3MWlOVzJJMDMzVGtubjg0b1h1UG8KVQ/tzduOz0P6pfVSnzBf8Bnd4bXA9sqy\nOWlSeB9HmFbHkqJx825r4lmbwozOqLHMMSc7c7HUPDsX7PUs7lzAJA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHd2hBcTBubGRXeWlWekRi\nTU52OE1pVVdWRU1ENkdJZ3dWWlFCNitYSlVrCnJXdGtnZUtyLzhrZ3FTRzdOMHhM\nL21iMzVpb1ZjR3FoRkUwT3A4c1VHczQKLS0tIFh0c25YSXNmcDBsZnlJNmVJbklp\ndDBhckVOakp1WFp1bGZ5QTl1WDZ6WVEKy0UHGQWGgPZ5sO3XsdMEqkFAz4Pl1pHq\nBRnpnl2oJ2SnwzkaS0Z/Ul+a456yPXHVFQbc3chYYwHlnD6cxt6EZQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCMEdCbHhFNWNuODRSNDU2\na0FzK09MME8rUWw0QnhpNG9NK0twNVp5RWcwCnBxZXJrZCtMRkFSR0lnRzl0TC9s\nUkpoQjFiU2t4djJNamt4NzQweUdOR1UKLS0tIFNoQTB4ODM1RTkrdGJxaCtSOG1D\nbFNUWktMRWZueWpDc2dkL2I0OTA3V0kKhWPOoRDueGpQntCeofze8yKgMtXH7Hn9\n04tlU0BFAWML7Rv2n9OeHAFcPe+n1DBoIZDF6U7ChItomIVmsYQZcg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3c0MrdWpneUNSMVlSWE96\nYlFJNjZpMkxTOFVuR1Z1d1BrQVlBN0piTUJJCjJkOXNjSm5meG10RENCUXRtMDRs\nZ3I2Q0lqZUo4TTY5Vi9sMEFxYmpRQncKLS0tIHJhSkV5dGZGamppUkFPcFFiK09z\nYXNGanF5SlN1bHNoeFhqQ3F6K01nUHcKeA4FMD01eAJ2jqkzwuOD5ZZIuooa8yPg\nGIboavpLao2xumV/3P7JCKrF8RTX+5YigaC2ZqrHR3Fgg/sCujAHBg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2cFRvc3BVOVFwb3QyaFBs\ndURLUlFWRGhqV2lpRkRrdDA3dFQ5c2V3aEhvCno2QmFDWEt1SGVRTGtkWnhHRUJn\nWTNmVlh4Tm8wZUpYSG11czBxS0hIRmMKLS0tIGZmd2NHWlhmTTVhSVVmS25XL1dp\naFVsQmJPdTF4K1g2WnBCKzJ4aDg4R3cK27ztxAUVvTFhaKvO4RorZaHNFtJ3LPv4\nFzpsko2dXTaksBHukBLsESCF89NlvxIJosgOMSqJzHwhODUeBPYwIQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWbmsxNmt6NTRHYXQzazdM\naWNScVNOZEo5eDJvclhsSno4aFNDakdoa0hrCjNpb0xKMWxuZWRUVW00clIvK1pJ\ncnVqQWQ0cVh6aDBHWU9pZGEvdHRNbG8KLS0tIFlNbjdPc2NpMzM3NjUzUWFsMkRV\nTzZHbnY0MExiTUJPd1U3N1lHK0tYU2sKOo5f+aJ9b9JVCWcSug+u9phwh2B4tk0v\nGslRh0FffQyfhDCPbe8RZTGZXatw9gxM8Sbl/CVWaUR2ULD4iYJKKQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4SXZDNFgzL1VBMFRlWlhx\nY21SYyt6aVdSdW41a0RYU3dIOXM4OThPMXlVCjllbk1VbVNpRmc0QkZwMGtmZERR\nMitjWjI0bkQ3ZlVLcWhjaE95Y3lFdnMKLS0tIGxYTnlEclhkc3dub2kvalVyUHZC\nak5IVTdaTjI5NHU2VHVWSWw3K004OG8KK2E91q5yKGXCqtjC49f7snkvZtfSRQhM\nh7d7ZcudW4OzrFaPFzmoj9OdD1kBMHR5QQQHu/aCV+ObFrp+by0utw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzMk54cU5sY0h3Y1dLS1pT\nSXgweTJMNmxtRXp2MlpwejFEYWEwZThjVVJvClQvUXVBLzdLUWNTWENlT3lQeGNx\nZWJWbk9BRmx6RTlVVjlxSGpKM3V3M1EKLS0tIExCbjlqR2xiYnVxbW1xMmxJWEZ0\nRjNrSkROd3JmUXpwM01hYlRTTEkxWUEKj+g43whHMLHcRuSAonSs8PnyHxzFi/7z\nOtYmmewimxLhRVowYWXxM7owm7ZxGqWw3jzdp+Xwl2FVIL8nxPgyrQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWU0xDUFRJZXVocGwreEVo\nSVFqRWpLSktBaFpoTXYvMTNYMHEzZjRraTI0CmoyN2pHL003TnBUdnFpSE1NdnJZ\nd0k3Q1ZvaXk3aWZtNEo2dWpTU1N5Y1EKLS0tIHdRNklxOWI4YytWcC9NSVVxTkhn\nTnZ5SzZaMnV5Rms5Q2NrZFkrSGRtT1UK/yBKQzkC+HQveQJtAJ+qulDCxjEhwJ1/\nSqEojNY/OV8q7YSR+PNJBsllQYS64z72hCyPpkQ67v5C2Xk5LCd+PQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z3dkRGZFczZubFpGU2M0\nUkN4TDh1VGdiM3h2MWRLcEdBbHRtUWcya2dJCjQ5c20wc1hxMGlSVGVDMWVBWTU0\nRERVUjVReFRTSDRJWjhzMW9nRmpsbE0KLS0tIFM0bGd3eHlqb3VRV0dhRGlHR0Fx\nMG9wWmtOOVlYMHg4dXhqVEljRTV0ZVkKNkuFVZ9yWgXy69yxGBJ9R4x2x762HbFg\njWrNW5HtDYyB8Q1vHVPaeG7beIbF6KbvK1/HfD0GVoQFkCk/XWjlfQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-06-30T11:08:58Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhRW1DZmVTVCs0Ym9vLytG\nUm1DWGZHaUhsZkNSTW9RWURDWmxhRFY4QkRZCkMvbExwWGplTFFnQUdDdG5RdFhY\nYWNEM1cxR0hIQS90dS9nVE1rMmhSdDAKLS0tIDFjcEVTZ3pQc2pwVU5yeEJDQjFl\nUmFLZGlQN29saTlramcxejFaWDcyamsKX3GnzkjF3Yqc3T2g0sw+8d0MHUCUDaGg\nG/HBpGBS2ESTH+jAVxv5PFbnS5VFpf4nlPxhUzdE3j7KTikvmAJoAA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVGtlZFE4clZJdVFyczlY\ndjh3Y0pEeEdNaGpsTlpNQUloSGdqb1BQQ1RjCm1ScVNyZElOMG1iYjNRWmlZczFM\nR2RDMTN1aDgvZTlhSmZPQWFpWTFWeU0KLS0tIFpENEtobFZ0cFRURFZ5MjJ5THNj\nMGFDeGM0RmNxSXoxOVJBTmxwUzVYUzQK4Kc5JyoDCN0/rVEjg39QdHSivd2gpxdV\nXbn/KCXVTox05VnKpqflucWuegpSXgGYuvJ7DucljvgItVXyxEa28g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6eWhOc0xNTDY4YUdyYmcv\nQWQ4WEFFcVpmZEhNbGthRVlVcVM1RzQraFZvCmN5L00zTTV2MXFTcWxaWC8ydytu\nQ0NTbDVsRXBaWTVMSzI2VTFCWGFxZFUKLS0tIFoxSTUvREVreEo5dmdmYmExSDB1\nckp5ZnUrOGZxSjB0SHFMaTB2VFFEUVEKqn/1aXfZ/WHtDDVOmGjOT/PUas+5eZ/S\n+QY0qc6mjeJ8yn8ULOmm9M1E4zk5dJGiOIHzJ/rSFZDO0ayR0tcbwg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhY1R6SGU4ZTNFaWlkWkZ5\nSUdFVHV2RlFYR0c4RSs5VldLSW1TK0ZaV2pVClNDeEZScUlnSVN6QlBMOXBCSEFH\nZmFNVHdNSWNYam03MHdYUjI2eUxSTG8KLS0tIFlhN1Z2ZitFeU5Md1pwTTA5NjIz\nWmJYMThYMGVIaENBeGhYWkd1WWNxWmcKQNtQgvPWYhm03zkE+uFNbzXXIN+8C4nz\nZiZlTVWV+I4FcnGwo0J80ZtaHrNxCBfRVgJmXYc5W0aXK3z9Pja6jg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiay9zZ3lCYk9oOVk1bzVi\naEhCeU9WOHFMdE5xb0RxeEhoTEpPT3B4em5RClhrWjN3YXRsd1E4WTVVc2RPMzJ1\nai94Y0RsUUxOSTlCTSs0SXdTL3ROVGMKLS0tIHBIcXFGc2h4WmtPZGxNM1hQamFt\nM1I3U1cySWtGK29BS0lXZ3paRXhVVFUKf/blwoKGYVgb1YbvDU8/gZbcQJaArKTw\n6oFb7R4bVAkmTtTuSEjRylGomu4tde562zuT3IiZ/ReNnNdcQOSi2g==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQ2JOajJ4K29xeE0xelgv\nQUdGVHhydjA0dXN3RGZDNzIyUXVMS20yeUNrClpRWUt2VHRodjNIdkVrWkJpWEhE\ndW9XV2FvYVY0MFhFWGVpbDRDTmNKeU0KLS0tIFhCREJSRFBoYlVGZFVocnpIYTl5\nYVhuVldtaXpsOUFrWDN4eHZ1eEN2U0UK1EP1VbD7bwAirOrmBZ5zAzkJYLx1ZEKF\nX7kfjcuWUMDGYx9ed0/tfJqAi0BVBi78MRlKHRs6D+s9gQbKVe5klQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSaVpFTHVlTjJYdEJVVVp0\ndTZobFc2dlorTUx5STd4c3k3K2VzTTVSMlVjCnBtaDdaMjAzOUQ1ejlUMGFmQjJO\nM1hPSXJMa0NmYmgza0lYeWRkaHc1VWMKLS0tIFZJTTM1TFRSZU5GejlRSTQxMlVW\nMXJ3VTNzUjJET1dpaEg5emk0T0xrbEUKBBYPgzSCKXU9jMD9Sc5YRNqBxoxN340R\njf4sBD2LWTofriB1E+ltrd82o0Gz3+JH21/+0cEI0MTD8H5o1r6Sqg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcmsxRjZyK2JEK3dTb3p3\nejVQWkVIWnV5MTBGYnlxazZ0UDBSaUcyelNFCjhCNWxMOTl0a3BWMUJhNXNWL2Z5\nbHBNU29ySmJpWk1ReU9uS2xhLzRZTWcKLS0tIGwzWTdEVE1sSTd1Z1ZUcDVpZnR6\nbTdEcHJaSTFsZGdWK2NOT201amlWMDgKhPa8GRkNpyf7DJ7FWMYt1Jgffe3mtPNi\n7emn/1gCCtaoYwyLmoG3K+QNH0QuF4uK2dkOFZOhASt38BVH4iyyvw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxN2RtQ2ZqMzA4alpmRGtl\nTERGL1FzdmNmUERNeGlOczAwZ2hXb3piYTBRCktVa2JudlNUOE15aksvb0hDS0tI\nQzFzSXUxdTZ2LzZtOEhNOFlIV25FSTAKLS0tIGJ6ZTRtaGpKVzcwR1c0ekhPNkRQ\nanVKSnUza0R3MUdySW5sdExJZ1lCdmcKqp8hsFxhTjs27PLyuHYb3WV34yF3KUJd\nWaeKyUEDkbDwcjykJHz0O3D27YsSIRg5iBR7qVDN5jxxuuZcnO6Nkw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMOVR3S1pDZzlmZVJibENs\nU0k0M1NEQWRacW1oOXY3eVREWE5LVkNaN0NVCk9DNE5CVnpvcGFGSWxZOUFCQ1hn\nS1BQdXBVWm9ta1pMWFZlMm43Zm44WGMKLS0tIDViYmdYWENhc3Y1eDdXYXFDWUR1\na1dBQWtHRTJRTjFySytzSHliaGJ0MlEKKN+Nrqi2NHhV9debUfIIbgYo0eClSUkY\nb24VJc1vj9WBHu6xP0fOfhDaue5oOk0g+7w1RQE7yI5lYBR7DQyxJA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTdWZtN0Fvd1NzQmpSSjBZ\naUZQd003bm1OdWtjRHI2eU0vWW8xUTlPVDFVCm4wekNyUndJZE1IcG5XUnZKNlhG\nRzYwUGVHZlgrdkl2cUVSYlBrSXhsbm8KLS0tIFd1ejllaWc1ZUN4U1c4TC9Da3ha\nYzN5VzdBRlRTN29IUzJsbXFOU0VvVTgK2xxoAvCtV1Px8m6pgLoJjmYsqg49rtS5\nKnt+SFcpXY2uMMNwTEk0aaK+yDqlwlIL8rDhWBPJXwa9c9DxywytIA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6U1B4aHRyem9INTIzU3py\nby9OS1AxYkRlbVlHSTFCVVdRU21INGdVclY4CllvQVZWTVVPajUrSDBFaFdPaGFR\naVhRU0xpNExreVFQZUNzVUlyTzdTbU0KLS0tICtCVVBCWndGNTQvSm1naGY2OVZ4\nY3BDMzZuek5XeXIySEI3MEF2eHhNOUkKPVFHVOVyatt141Nb4EMXR7KdrVIIoDNI\njb86cX3Nq4CyrajmnXKJmBbNoSMHdiehUEaFoimMccnTmQhhxtXKVw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFQ1hobEVQdTJOT0dlUXZN\naUwrT2FzUm9SaHcxeTFGODRwWmdNQzNoaTA4CjdZSTd6UHA1RjAzb3FPYTk1cFBz\nZUE4MC9GcFhPQmFLV1JTa3lUb3IyajQKLS0tIEtGT3duRXRYU2swdTVQSEdpMlhO\neWRla3AybzRJeVgrL2tIZU4rZnhUM0EKDwmpESRyY8vZbQ8WexrxYEv9eCf0YqiC\nRqAg6Wmd2xafAtlo0HWZzLtG9wYmHgeeZycYXiY8xWv8ps524AMHvQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtbFNpQy9XWTlJTThOUmFD\nMWYyNEs5ZkVESkp3TFVPOXpIRUJrYTkzRXlvCndzZ1JsOXphZkRSY1BPd3NWdjFB\nY1dzQ3FZVi9rM21QNE9wRnVKdzB0a1EKLS0tIEsycmRiYTJGRFVUNTVoU1N5c0RZ\nTDlKclFZQVkrYXVaWEJtenRXcW5hOEEKFhbLhR2HH5j8iId1PEt2Qr4uLIcSSoiP\nmka7YtK2fe1W9012xKUqKtqZvjtbuFrHb/L7p+UfvCxBXy2c+bXG8w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmSFUwUklRVHUxZFh5RG9o\nWVlUay9RN2FpVDZ3NW1LcVAveDRHWTZiUkFVCnFTanNJTlc5cURaTWlEc3JlUE4w\nbDE4NWVmbGhVc1lkNDMwWUtrSXI0ZHcKLS0tIDN6R1loaTg4M3NZNEkyRW5MUDc2\nald2QWpvMlQxblRpWXdEWTRGNERMb3MKzECmbE1RX92YrvRBfRApiPKtjbj5Z9h5\nYOxmHnb2QWe4p+FiO7qTmNVrTD9OQ/VKt8u1gbclcjT1p0q+xPVM4A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQW52MVVRell4eWVnMzZt\nenFqbnVtVGpGRlpVR0NnNkVvUk9Ed25qTXpZCjhlaTFzZXlUZHRsS3dHWDNUMUVI\nOVlmbkdiZnN2RnhVY3F2OWRqQUJBQzgKLS0tIHRJMHJ2d3RJV0JUVUdJTmMxYk1U\nTjQrUkZuQ0xVbWQxZm8xMm5RYzB1WGsKovG+0ueoZS0CQbTsC44upsX1tAXBtxn/\nxgdkUe7EiDX5QLq+AldVc0UzvEY5/ROBBf4d2LzSqp3jJPtEJbYc9Q==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHZjhZSzQzT21GUHlJT0Y0\nTG92dUs4bVphU0VIKzFMYXRoOWdNVzNCMEI0CnJhZ0xzZlNBU3pjTUs5NEQ5M3l0\neGEydllJMDFSYTFwaXhjb2hRZzRrRzQKLS0tIHVTaVJleTlXSFpXd2x5NjhGZUo1\ncVFhMlozNmpnYVd5dGRxQWxhbXBLd2sKg3fhvpfcOkUQIdlNmmqT7zJ+aB86QqqG\n+f2Mo4AtTx+lzf1En9KzeaIIHn4rbNpwsMMzQkTgbooPCe7svntwww==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2022-12-04T10:55:44Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrVGl5WEhVWEtGMjNZSUMx\nMStIUGpaQ2ttdmxjNUtyS1J0bVViY1k3Snk0CkhZMmhMQVQrM0lQL05hcFlTOTdv\ncFU2N01VNmlwWS9Tczd1aVlkUUpRem8KLS0tIDNXQ0xLVmUwYW5Edy8rSW9CaWhW\ndUVYRFdGMjVwV2w0My9PT0NHS1JtakEK/KjEcC0Ubci8hInUqc2G6uFs2hd9TN76\nPgMDTi8Mt1dM1cGNj7uiPeTo8/ft26yuAtikybpLGMdayuEXp6aTPA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBscVFva0cwbjh2QzN2WUNo\ncCs1QXJIWDhyN1NmNVVPU3dyN2kwTVFsMG1FCjMxZHNHTHYyaVQ1a3hkOHQ4ak1p\nUUdQWWhwL1ZodWhmT2FDcy9PbENwTUEKLS0tIGtKb0xaNjJUYm1YWHdiVk1yZEdp\ndHpTMTU1b1UwaklUQXdpZlR6c0dJZjQKmvMqC6v7NjlNijmvg9D4OjbVozPMwPPp\nC/hgv/PDLaH+y8VAd0tJTch6w5B5b6lCbOL1bySIUkqSs9gqRmFkWg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCTkNzYVowcGxwek4rdUow\nc3VYbndpSWVscVdmaXB2VFdVS3JpYWdPbGprCmtiQUJzSStjeTVpdGRodDRjcVlQ\nb2NFczZjUzNxSVd3Y0puYUV5WnM1V28KLS0tIC9HdlgxUVBFZ2hPdlBVcVRha05v\nb05hbmRqV29scGE5bjltVVNHZ2V5UU0KfKu9wvY0EfTxUB8Qiy7jc4eI5zoUBtIT\nDUdb6MO7OUHJxtq5YzVJcPui5krR4ehJI7vB5IRWXxT/Yx+BjUd2qw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIdHBNVE1SUG1MVlBHMW8r\nM21qNTFYcis0TWZuNW1pLzRIMFc5M3JDM1RRCmprbmJVcURzVEpWeWNHMkdGUzUy\nOUpualV5WnpJRWZYdEJkeVlzR1c3clUKLS0tIDZYSzNPTDRsQlVZWEI0SVArbDBF\na3A2TVZDMWRmOFBnOUlNWGxDbmllOW8KqGYOL/mXBMEFepD4qjOMSMPYmUJmLpx4\nAeR9gTeXr4cp0HkEtabo+EHLX2hZt9sg5Y4S1w7nIjy/o7yWzE5o5A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzUEZmNHBmTlUrSVNON0Vx\nU0kwRTNyQTY0UTdjaDVwUjZFSzdPaWgyL2trCkJCZU1MdFlhSndHNjZZb3VBdE9V\na3Iza3FyTUhEcTB3azBURXJKS3dkakkKLS0tIFNMNkZtWXNralFRM1FKVlZuL09p\ncHJGeUJxSXFSMDA4MU1lNU9jWWl4OXcKK71tw9/Xg9uCANFgDQ+kC9sgVP5UEa9S\nqaWPn+VGCMMiGb3TAb9BoRonfmj9eI+NxA/er5jpyT5g2GxKymTN9w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXQktYNmFYQXppRHVsYzE0\nNW9hQlFIMStzZWpYc1lBdUdjQ0VQalVlVldjCmQ5TGpKeTZySkhKZ3IzbTBiSS8x\nWGVoeVpnczVJWmxOZXNlYWR2eXFxTWMKLS0tIHM2OURCQ1FBakY4N0wxTFJyWmIw\nMW95UVpXTzB0TXJxRnQrM3pHWkxsUkkKNushqbOZqHca5f1ZUdf3YAurqeTW8Zgs\nzcmMZ10YQjhyPzH4cN325wG80EP+DX17GDhP5Ke+2ZIUtIlmv8o+tQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUThqL2k0ZW9maHMzSVhm\nbFBBUEl1Vzh0ZW52S1ZxM1BBTG1ZdUxFQ0ZzClV6aE4zTzlkbW4vMjczMHBJNjRS\nUEs2a21xMndxK1FDMDZqN2xUTHFka0EKLS0tIG5paTZCUmJnN2Z2Y3JncWxPWTli\nSmd3dHZzT3l4MDBIeS9FMC9Bc1F2c0EK4jplLargqOCN5eSpsAqU7zmdEvZzN6Bd\nTLgiuOPwFeQwCJ28lPFXNtPYFQzXhoASatd4Sn/MOKWCQJeVJOhDog==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwTnFIdEQ4SzhEdXdDSmk2\neGtVN1Fhd3pLSGl6ZTJYOE1XTlFuMDExTmhBCmtQdUVNUDUzdzZTS083SFcrR2w2\neHBuMk9KUHZGcGY0WFRRT3pkeXBMMDAKLS0tIHpYdXN4a3FqTm9xVDNCdms3UHR2\ndVNQckw2cjk2dkswcSsrdFdzN09qRUEKOg55hpkIba7uqGBjwsW7ACN4Wxh7V98b\n3x7iR0TujTLDYyNmu2IqWQbKjsDi9U/V4au40luLnWwcQ0qMuy6FNQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvM1hrNGwvZXVFZ1Awd3ZE\nejNkZUN0NmY2THFTRU5CcHI0cVBPTnErR2pjCkg1VGE5M21PSVBIL0h5cmY5ZFRU\nZFdsZllDSFVhZk5VTWRRZW1OOWVqc0kKLS0tIGdiU0ZSQS9Sd3dzMlVGeG05L2VL\ndkhaUmUybHZCTXNnTmFERFlpQncyRDgKqy9AQmZvZ0zf3hgVYYOEE5yM/Xrf1zqv\nV+wdNgPNPyn0DraYKbiFBV2f4J8yk8xLG8II5T08WWlVH1Br3Zb9/w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSb1hNd1k2ZUM3U1REVTlo\ndkhLUG81WGFxQlRVd2cvUU9WVmNSb09Ub1RFCmhINEdhT1I2WS9rUE9CNlppbDRa\nVlgwNzB6RmIra2NRUjU0Ni9abVNSd1kKLS0tIG5pbityUFc2RVJGQTlTend1YTV0\nbStYSWIxSjdGYU0rMHQrTHFkSGNjd2sKBymQa50r5Uo727VI+nM+qc3YAGzM+ZDI\nU6T+MA8L5noCb/ZzKYZFAEN8z8a/xHT7nRiqp8NWQ8OJ0KJDzQvE3w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHOHZZYVJJSzFRbnBSTE5j\nYmxEY3lzK3NYMHVhWkFJN3JGblJXT1diYVRnClJxV01mVWFLOGtCTnJNMDh6c0w0\nd1kzNlQzRmpWZm9ORVlxWVAyU2xNcW8KLS0tIHVZVE5LL1M3OEpWRy9PaUNNVkhP\nMjJyT0doZ1Bkc2NFRThkRUNDZWV0VDAKBES6A/o7BomJ0v+XaeFTahVv7Q6hyTLw\nz0cGUZKfVJKd2lt05Jhd6Z+nfrZbx2FEKGBIGMhaU7gOPyxviGvnaQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSHJtWVpWVE5mVmZ4RVV0\nS3J6MGhQY3NsYTk2S2FFbGJTQTBjaUlaNWc4CmZRamZmZ2l2OENKZWpOWU1IQXdo\nN29TSVM4dUJXbmZISkVyL0RCTFBrZ1UKLS0tIHY2SDBndG1PRVZqcGxJSjNXUWU5\nL3RyZ0JIblJPS0lmc1pDc2pGK2dTeHMKB1T/43hZDb4lP+seHsKt+aB1TdNyP6FZ\nOt8rezQZqeJ+GnHwV6qsdEtX1DE30niqe3upUS+igkHJ65RGd5TAuQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlb09Da2FmZGVBYVpjY2Rj\nNVBRS3FvV09zUEk4OWludk1vRHMyL051SURVCk9OVXdkMHdjaFN2WVRqTGt2dUdP\ncjhqSFhHcHpXekhMUmF2NlFFeFpCSUEKLS0tIGhNU2FCU0dGSFVpSlhLNXJTNHcz\ndk1ZSGxsYnlZblJTREFnckRFS2tCdjAK2oDI7PpNapR+ko835T2PwJpGTYq9zK7x\nswo56rL8y4rOKkARn5JS5L6/2ltcF91OC4/zMVg8HkEoSjBWmKYeXg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFOU9TWXlCRFh3Sk9aZkF3\nTDVUMWhzQkQ2OW1YbVlQSHUvdHBIWGx1R2tnCi9ubVJyV0lnUHYreDQwNFYxNTM0\nMEk0M1ZRQmliL0ZUVlZlYTM3aG01eXcKLS0tIDZxR3V1ZVpEWHRJajdCcU16NUZS\nNFpGanJxNlpKcm1VS1cxWHNieHVmbTgK0ggrvlCvK+j8F77b4gl1RsWGDfGiFmg/\ns0cMGtIflPT/0D43R/jczrJ/Xp1aBL0TeHyf9YxZu254QeZ5ZPa5kQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBreklVVUkwQ3h5VFpsYjAr\nUTYxZm10a29BcjN6aEtGZHpVS05kdUhQM1FjCjJ1Nm10VzZQMUs5dlpZT2xrNXNQ\nQldSdFFncUFHcUpManpJak1YMVUxWkUKLS0tIFVtMEIzY3VtWGVZaFRZVFhyaHF1\najNXMHZNU0RuWndDZG1jMlVUNHFKUVEK4PAvUJt2ayy5iXCEi5b/veaxnyFvVohl\nRhbhZR58hFzsTRSwqy2pIMqSO3tgtErr9B/KYPlQNOifgPamMbR4WA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXTVg0YTFFL1owd1RNUEEx\nMWJOeGttbTI1elhZMTU1VXcwcWt4ZzdJSW5VCnlQRk5OakJJU0grczlHRnhJTWxI\nd21pTDdVTk1vc0dsdVpuWGNrVUpEVDAKLS0tIGNYQVNjellNajR3czlKc0ZYbWpL\nbkt6QnZ1MGRGL0hSS2F6aktXMzB3aVEKb/XnuAMiB6Zn2Hr+LUlPdCii5G7TKYgp\njE7Loh9mPY/WPK2KvCAPYFcjNCmu0JYzCYgpU/i+4Wm7ObsrXh+lGw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOWFFJb2F1NU5TL2k1aGdq\nNGFYcWtveXd2WGxFRVc4RUVLbUgydVNUaGg0CkFhT2hVWlpoTExnWVhhKzJQSWZp\nWFFFV0lrY3lSU2lCUEMxdk9DTzRVVlUKLS0tIDM4REg4QW4wZWNUM01nbkJoWnkx\nYzhaN0VMRTFZWTZheGcrS2V0dU9hNHMKgmKgF1py9n9Ez49RDlsyDakNTiac0bB1\nkg+44Kb3aO+R/KOEHw3klHc+TetPWXgHPnuP2phmq/arSwpYyogAzw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2022-12-04T11:32:25Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqTXp0RHN2bW9wUDdvWlJa\nNFhyMEJ0OUhSS2RvLyswejc3ZUx2SW1rdDFVCmtZVG9wZitidEZMaE1rdjZSZito\nclB1N2s2bU93S0IwK1UrYlk4NjU1UFUKLS0tIEdvcytSOElhRHlKY1FyRTlTYUlR\najdHeGh6d2FROUJab3d1cExkYlJLQUEKJQUv1/2YuAOEQGaaJ5itEtXrfwB18RcI\nC3V0MXuLqpQpVzsMz6tBU66+343gPTVMZXi/cLLKjpzARKUCPJ3ghA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ZCt2UzIvQ01pQ2dMamd3\nVXF2WnRmMDB4MTZsYzhlclcyR2k4TVhtdUJvClZtQVVYOXpuZnlOY21zTWltU2E0\nQmJ1cDNVRGsvV0xKbk9KNHJ5enRmMGsKLS0tIFhMcXhzazBlN0lTc3gwbmZpVEhJ\nTlZqOFVxOUl2NFl5QXhyUDNhMEk4NlEKvrWdvyL9lQ8kc/QJQKFBlAXw+NLmVO2W\nYo44HNxj+jbWFLhimV4qsdaZKb4w0z/YSSLPwP3cfAOblOVYHh8eRA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNdmtuT0NaUEplbzQ0WWV2\nQUsrOFRYN0ZET2lwNkhMeTE3bTV6OUUzWW5jCmtsT3dNbXdlSFQyTmlNdndqT0V6\nSGFDM3BaY1plUVYrRkZRSXQ3eno4dWsKLS0tIGRBSzQzVVdCQ3Q2WGpwdTlsSHJO\nZGR5NjRrbW1lWW80NCtVUWtIUEhGcTAKSRPJHEUFWCCe4v2nLnaDY3FIeWvc75jd\nMb8+grC61jBRO3kpMLrHb5dn3/okLX33nZtJNnkCA8jDlR1tyCXUuA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBONmxhcGNHN3BKcUlITkdX\nUWlCZ09ER0xlN2w1MXVNSVFaNkczeVoxbDJZCmdaOVFBakdJZzNYTkFnYUVxT0xN\nVmN4eHBXMkpTNldKYk1yL2V4cENaSFUKLS0tIHhSYit2YVVYbEd1WEVTcnNBclFu\nVytldE9XUlZPVmlnQWxCMHVEWVFWeHMK0r/c/cV4CyIc3HnKiPvHXwOUOdBj8lu8\nHMjdK+QMcZGSiSW87gmDr1wUf/aROYA8LTYZbuqkaf5zPYhFUpYykg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvRWZFWkVWVWlpWjBWenE3\naHp2d1RVcmNrQVVYNkVuWHRUcGRBNTBFbmdNCk4zUGFFSm5lWXhzR05RelNvbnBX\neHhoZDZjZTJPWndQT0dJajh0K2xhWGsKLS0tIHIyeUVoQ0szZHpBQkdBc0hVbFVF\nU29JWFNPT2VtaEFTSTc0OEpsYVVRbWMKLq33uUYhelMgkz/zuI3wmYTPbn+fv4uB\nkwUX2KDOzunPkfznFJ0/uGDHBRgTj5kYKid53IPPAByCGrWemXbbBA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmVHExL1U4WWVZK0hNcGpl\nUGJFc3R5cURxYzdyeTVSM3FESGNRayswVWtvCjJKMU9OWDNHenFNVy9DZ0RLTFN0\neFdUcXBTWFBvQ2NzYTJmbk45QUFQVU0KLS0tIGJQNlRURzZUL2xoZHhMNU01TTY1\nYXhvYXhkTFB0NGpzWkY2MTFBUjNJYlkK6CBy8Jkue18ru8eIl2ad0ud7FuRiEIf4\nKBkb15yhF+RlPOfpaKrmLgynEZILPfaiyNEaj0YOlIYP1qas5TNYyQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNlFGNGZyZWdLQnRkSE1z\nTUgwOWFvL2ZQSWVOVTBBOHJOM0RSaHNFOWlBCmljOTdKQzB1UTU3ZFFENDJFRnps\nYi8xa0czTTNvTFFGc2QydWVmTmN2bEUKLS0tIFJQMkNQOUhDazlsRTlrRDR3TFJP\nLzl3UGRSakhITXdnYzEvMXdsZ3M2RjgKbXJw6e5aFsrL52zknH5vva3y7sLvqVTd\nsyOnStwaTwBWEMRAvG+vtEhgLIJDVCJGEYqKIBzzoOOujJ9ojuzOqw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacm8xcklMZVZnRzBLWFhC\ndTljclRNU1R6clhObW9KZUFzRFNteWhmK0Q4Cmx1dzg3bWtQT0ZtUUhCbndDa1dl\nS2VwU29LaFQzeU1wVmpVSWJqTXU1UHMKLS0tIDU5WmU5YjRhTjFuZWRzcE1waGRx\na2t1cHliRlJ1aEJnNjQ1SFo0OFllcmMKIuaI/OnYpIB3RSU2zZWazLnNPdYJcWUk\n1oD8pEOZDqiu4Cf8ZqqhLmkN+jBLZuBAi0IJLIgbRvVjbaN0j7NtvA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtL2gvV28vMVEwbDdhcFNq\nNnBqTS8xZnFGMXl0dndiZUJLa1diV3ljbG1nCk5QV2grR0Z1TnRta1FBZzl0MnJo\nYlZ2MGlIUi91ZDhoM3FNdmU4Mk1vT2sKLS0tIEJSUEsyQStlSzdoTlJuR0JETWFY\nUmxBUXBYN2g5eSttVE4zNWxFWnJpb2sK9SQTiCHz5eQ2RMrydMZCoXAFCIl40f7i\nfsskeK45e9lgstetJfu8rDLOrCKr2GnIpR53wiJyPAq5TscGUBlcNQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRRmh3R05RNXhjclRHYnB6\ndmxIV1dPQTNud0htRFFHN3ZveUd3NSt1RENRCkRmQzJvNUxZQzc3enlvZjRGTE9x\nWmFxaGRrYzNTUm5WNUtkaHJzbmo1Q3cKLS0tIFVJdXliL0xnZHRnYVBwYkcrTnhx\nc1M2bzQvNmxHcEsyZmZNVUYycDh5QTQKyOSJlIwrwUaglkvdAw24NxxdZnmy88J5\nNWo04oEImdlMCEZQBQ3/o1xyftU8BNY+ovNy7Nym0darKM9f8ka1PA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRZTZMN0Y1VklpczdDTnFh\neEs5c3hLb2Fxd2Nkc1VOUjVkdWpBT0o2NkRZCnp0dlZpUXloMitlNFFiL3F4WEZn\nUS95cDRvRXFiTDVWSzV5cmlPY2JBME0KLS0tIDVxeGY1YS95ZDJrNUtVYnlteWU0\nL1E0SDVnYkFvdTBGZHZnV2lSYWVKZ2sK1N3lvvQP9DdPsCGYJXtjoqv4gLjSF3xW\nq0VmAQFynm3mSPfF+hOfF23+msudWcObHu818YjPshyjOzQXHXURWg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiR3VhRUZybjJuVVFrNXVo\nMkJwNDgweFFmb3BIeEhSZ01RNWk0dEQ1bHlVCkI5Wm42d3haTms3bjlJdldpSGtW\nSGN5cnlkZmlpSm11VjBFeHI4blI0aUkKLS0tIHhESkdjbGFPZis4V0tQcUpXaVJ1\nTEpadHlVL3NUeUZudU15WldZWlpKNXMKVxsLBUb7BwJJ0lJRQk1ZppMID8bt/cbC\namvKeagoT6QDR42FyA6W2Rp8+tBrrkBD3CGRAcXMfUSPIzN9p6kcQg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCQ1E5RXo1RzI2MkVudXhS\nUGIrbkhMS1NNb29kaWg1c3cyYWdFbnhtSzJRCjdZWER2NmRBTTJaS3RWd1gvOFFR\nZjZQQXBWQ0lPQnJlYytNNzMxODh0UncKLS0tIFRxNzdoM3RJWlkzTXZHL3R5UWpP\nV1lPcUNyRHVCOHprRWJJQWNTYUxZT0EKNcCmkEcxPd+V4MLnE20qUMTrCc5ibmoV\nZHGDbkGuy1dBYZhbbOlVucXOppovyLzT+yH41mnt0GV38BR252E4+g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPSXRPbW9OeGFpYng5RXR4\nT3BUMDZmOTRoNlVsVlp3endKOEJCWno2TjFZClpYWklWbDU3OGoySFFJUkRjS2tw\nUFhtZ0puTkV2ckRPMUhLY01MVW1kR2MKLS0tIGJkdHhaNzQ3WG9JRXF6OTNMNnF5\nQ3FVU2FVVDJyYUNqaVlhSkEyZmd6RGcKMRxyVMpxCYxoWXK6zlAPyo3YcPJtTWIO\no2RUlS8oSTB05G7sGkjq3VSFRSgNnekvXOBE513Qmym/cDDbusxpAQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYRHM3NE5Qa1JxRGZmbU9v\naEdVS05ZL2FyN0VKajk5emp4ZDQyTnNDMmpJCnRMbWNFRmlVNGdaM3FRa1NXUG80\nbzdRZUNuMndHS0EyYmV5WFR3WUs1S2cKLS0tIGdUY1BRM1pNT1VmNFVxRGZ3OGNy\nWjY4MXpCei9MV3BmTkRoTCtBWDBXV1EKzfx+IgDo4Dm1PchA32mv1gRGOE+4dI2J\n0iTQPkHeHCX3UwtQteyNKccoA1ztSRVwjV6gZXAmuhLy4Za7i9bnhA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzYnMxbDNUR2xyV3B5VzFQ\nM1IxQzV5OXM5L1VYdFRYWUt0cWl4ZUdsQVNJCmRjUjdPMmhoaEFmUUxrVmJCRlFl\nNzZqY3p0YUF3T2lYdysvakx4WVg0bFUKLS0tIFFlazJzb3hmVXNyUU5leUFKL3p0\nNlN0TGxVbGtoUHFtK3hBS2RiYUViVFEKii4w04zeDD6HWURzmAhJdxNdNmQgsPw/\nawI6HSVbbmEGXyL23Pe0oultY8k/ZVE4oHRKBkHh00XoCZM/Ye6neA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3ZHNES3BDYUhGcGlyTFQ1\naXVnZm1TeVovOFppck42Q0ZaRnA2dFJHTkVVCjZUY2h3MG9RS1g2aTdoeW9NS241\nWTJZbk00ZTMwSVpJOWNRMjRmdzdpV1kKLS0tIDFiS2tJRHIrMVNrZExKWE5EMzNt\nNGJCQXFMVk1zM0dIV084NHB5b0VLa2MKINozqIGHiddSjRXkcTLFRBR7HjRnseUP\nuu52jRstFcMEGmToXhNWsl0g3S4VOqNcA7jAGz7PMPTrD5l5sQ6w+w==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-01-07T11:04:42Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVZXVTQmg4YlFEWlRKV0h4\nZm5mQzRYY3VoUExXRkQ2MC9FSGFXdnJnUFZFClBJMjFOSzdxc1R3NDJvUWZXb1R3\nc0E0WjRkNUpIcStEM0c5SzAxRUVoMFkKLS0tIDB2WDJ0cjdMa0FEbEcvTWxmczhP\nblE5Rk5Dc0RKUWlkc3EyWEJFa1V4ck0KEH636R2nV8u3YWL/Hfz2cXwLZMlkanMs\nVLDSUv99DlT0LoZGb2/bBweH7XR9eYuNeicyS+5uzopxG4ExK8t6jw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdVJ6WmVyR2pUcjhtWTFX\nZzljQ1ZObGhzWjlYVjBERTlTZzBnbm1melZFCi9kVThDWFNKQnl4bFQzQXVyRTFZ\nN1Q1OUtjT25NS2pBNzFMY3hvaTVuVjAKLS0tIE13bDRTTENWRnZWNmNrTTNUUSs2\nQUNpdm9ITEFrZWtZMVhGU0dpMURlVDAK+x+tlgDECioZsiWdsaSKtmddQsl97SRb\n12mUcsvG4Fd6DQUQ0SWeu6gVo7tZgm6o7j86mdm7ECj9NzOgHrijxA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzZE9pUFZnVU9laTZWWGo0\nbUJoTHdEM3pab3JOcjJob1ZxZ1BGRWVKR2hnCjdXM1RIaW1sdjVaM1BVU2NzdkRO\nK1NnR3FJWWJKUkRrRFo1ZjhhMjhBMWMKLS0tIFhBZU85bk84K0JmdEhZSkJ6aFdD\nL2d0S3U5SGZjd0tCY3laMWt2dGg3TGMKvGZTW3UJpRFeBF7A86BpFzxl6cHMyoLB\nyZlsaK4Xk8fxaIg/W2PIYGzNGmiNPQ36IKJygBDdN/hz7eWMdbDpcQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOTlZxdU5md3hUSXV6Q0Vt\nRVZacnZDV2txd3hFM0p1eTNNZnlBSk1DWDJzCkhVanEwT3JKbEQwSEZCK2xqaVBI\nZEJ4d0ozQmV1WE5xeWF4RUxLbkFlSlEKLS0tIHpWcmdjZkZkQmkvNHRTdFVaT2cz\nU0poT2d5ei85TVBndWcrMFpTVWFpVm8KfPCOuicVZW+vp01owIfxkgN0V5MgfqGl\nE9K/WcJ3aDu2jLi1RQaYCmEeoaJbGsyjiOqIxCNcf0VomAqx0eIooA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYeHphd2JkeVNMOUdrS2c0\nSGZhQTNkTHBoSERCWnkrUmU3WWwwSStzWVY4CkZJMkZxcmtVQmFMWHhmVDNGeitI\nVVJVYytoRE8vN1QvMEFqZHRHSXBUNkEKLS0tIEl4MVc3aW5KM1I2MTVzbjlvNjRY\nVUZRdE5LMDMwb0lpVUVPekJqMHRjb2sKpAElXfn5q92FXNWlRKm82CTkzDwT/mgs\npXhGAQf6PWRxcQ2sonwze6JJGosS7dW8ULdxlkhg5KhZMbeuaBtKCg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1OHRid3FESkNJbTljMFFO\nVEg3WUhHOWdTaXBvM3lHOEdBamN2TVAyT1YwCkMyY1RhYlFFVk1FK3VvZHhoRXVO\nSE9CQ3UzcGxkTTJwM3VQVzFMOUJQQ3cKLS0tIEFTQldldTN6bnFzVS9QV0JaZk4w\ncGMvd0d3QWJ2SHJSMGZ3cnc1T2d4d00KBzNCz3oe78DS5zBu2Bth3qznHYKMFEBn\nCS5uZy/Or0U6CI7p1+ykoLBLTjVWV2bwYJOQzZAQmTmuSidbe4UKZw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrL2xKbkMvditBZzFrZlRm\nMS84RDN4VVlESEhzV3ptczFkVWd6cGJ2VUJrCnh2dVhBcnkwMjl6ektsRitoNXNS\nYldxcHh5ay9ZdnVrWFFzWFpNakRzeDAKLS0tIGtiUC9Rckg0d3JBbDhvcGFMMTBk\nUTVYbktHS3pMaHVpLzlSU0VKVVB0QnMKVJ/j1+L+fr8RiBTgT5J0gaeKSLzu1+lF\nPUMfnO/ciEmqa6uQW0YC5zplupSYCbtQa4FpCcz2ZZI2WORXd6jADw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTcHNUc1A1Rjc1S1J4aEVk\ncUxYYytQb1lWZmViQ1F2OUFaTXptZk9Ea0hvCmdvbmRNNVBBcVh2ZDkwOWFiZ1JS\nRzY4UDFnd2hSQml6OUp0QWlvQ3F2WncKLS0tIGxSNDBXWUlJdVFFWHBqY0FPbFpK\nTW1pL0c3bk5iTEVibDZoTW0yRkNaMlEKuHLkB/9dWPOXxcTyXW0WduEcnF2YRUpo\nEZNwre0P/62xX3RAjG6g/JSUwAt2cST9z+9K3SgxXUyunkPG0XDv+w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGQ3E3SEU0Sy9XbmQ5N3pa\ncVpqeFBmaEY2ZmtEbU5CTHJZZU1Db1ZxL0R3CnpNand3UmZISXJHMVVPUTlqeFhn\nWnJqSGdsSU9HWHU2YXU5Y04yN3hnbXMKLS0tIEUzSCtWTDdpUGx1WVZXeTRBRFRx\nNlhobUFuWllFcXhaVldYSXZJbjI3dEUKSl9Z1lKMurwbLtTqivGSLvNV7t3y+5z5\nImGeXwA8UE4PmQWwQPDD48kOmo4yf9fD25bVfps78NNjW2hGMBJ2Ig==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Rm5ZZ1MyZWI0MU9OdHFt\nTElKMVJKTVpNMi9FVTBuWDV4eS9rZC9aNFdBClZRMFpUeHlKMHJZc0VDa1ErZHFa\nSVovQXpuV3d1ZFFMK3M3bVNmVGsrc3MKLS0tIHpFU3p6ZlJYQno3dlBCd1RFWDhy\ndDExSTFKTFA5dFZkdDhJaUNuTVJMWW8KH8w/rBCkcDMoAhyqDu+AdyOgqI2e/JZe\nfLLnpaSQ+Ss96Tr4rvY3Fmf8PbttyJN2Hmbxjba0FAxHP0RdQhoVww==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1Rjk4RkoydDg0ZGF3OENI\nNVYvVCtCRncwRmUyQnJjVnhEalFrU1BtWXlzCjg4ZXZ0K1BmaGkvMVZ3WWJNSEVZ\nRWFndE14VWxMWFVDTlJDMkg4endiWmMKLS0tIEdMS2hYMHJRK09UVGFrZncxQ2tU\nWFBOalR0MXFGeE1tOWRZTWhqRjd6R0EKTJlLInIJGek9GsNSlpz44M58m0KyJjYJ\nJG39R8sByUuRVGLCw8JH4cNfKfKFxvCsAaWFzSxJjqo7K00d1n0dEw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjMGZkMy9QdEk0K25hN3RU\nM1JZdXpKVUVvVXBObGUzWlBHM1NNWDNXekdJClVaMC90dGJ6ZmJaTGN6KzhsRHB4\nRCtuWHAraDhYZHNnQm5yYmpiejJzYTgKLS0tIE02d05mdVhjYlhseDhOZjRBMlB2\nT2hVeWxHeWZRbkp5TFNPVDIwQ0NrNkEK9++qo227xeA2dTCuoUZozpokp9Ldjh32\nKl+4OTR2ivVgMJXN0sQ1y9EjkOk+lsK0jGSkcKxkw1OoEirzMCPUPg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1dDFoUkRCenRDNzh2U2dM\nRlZVNVIycmE4RmtZMTg0eHJwemRuL3hjT3dnCk9YaUd2dERFc2FDUHRyQ3A2dFlU\nZWFBTlNkV1lyWnlxKzlCQkhsUnZqNlUKLS0tIDVaWHE3QjhCTExHa1EybVNKc1Nv\nVk95WnNEL0RnTk41ZU5mamdnYnlHdlUKJNDsuMM5KrvW2JLTdaATtw6oS1LXnXT2\nOwsGm6aep93Pq2lvwLIUb2+KU+NJ2xrpZF30roVjXMMdpcpNsQWWRA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyd2ppUHZEcC9VRnp3Y0ZW\ncXl5RGl0UTVmK3djSlY3Qk1IV1NhU1dpV25jCnhacVRmOUpWWDNqY1NvVHNMYkNy\nTk9LWFdaR21WaUN4TFZhSEsyQmFRWG8KLS0tIEhERmFuZDB2TFR2dU1lNGZCUFlV\nSmtIMlhqVEFwWWRYcjYxQm41YXc5WEUK85kHEESZXk82GAbJtxxc8g5ogT+tMu27\nAE/Nk1geTylCD+F9CoZNq96AkNYLf04gh2FZ/oVR/z+9wd4T5c5DhA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOXl3ZVdzcG1zZTVBUHNE\nTGFGRmlsZzlNNGxtTVJ6RE1JMEx4a1RDdHdNCmxGWWFCYndtS3A0RGN5TFNHekRh\nU3prTTlRNEJoeFdGbUc3Q0NjY01HZGMKLS0tIGVFejh2R0l6Y3pjU3lHMTh6QjBN\nOUt3ZlI5SENhUWg1TFZ2SEMyWEE1REUK3tt4C58+lk95ztX7KbRt/nT15XcEaglj\nX9llxVse8npEDqfn6vf3SCegcexUZlc7BD/Ti9RJzSw8QPjtwKkTlg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBERnB1bUExMDJ2TDZ5dm5L\nNXMvZEJGWlloZmE1ZFJNUE9WUWc2d2dacUFRCjNMM3hVVkVvbUNiYnVJMGRINXlP\nNzF0VkVSQU9UbFhNUEdZRjQrdzY4a2sKLS0tIHdwMndHOW54MnlNT3gwMWRrdVU1\ndW1ucENid3VxYlhtcTF1dWp6K3Z2UTQKjAZd4uw3kChy5aM5qTFxbGYN0oFs41J7\nsrSpgwxzx+hu1kDRkBIQJZ/QfiF68NFd6qfX6zk8baF1AdML58U1Rw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvTzkvcExIaWhrcG5EenJD\ndVJGK0kxdFFHNWRaNU9KVXFqYWFZcVBQUkNnCnV4clNNTnJBUEw3Vm0xeGZlZERa\nKzUzdVhsVWtrR3NTMWtZdDBKYit4UEUKLS0tIGFXWmplVnhNbzhkdGloZnRjdDd3\nY3dia3FOOEZGRjJQekpFY1M2dENlcXMKrfkvzKJXnw+vwytqC5HUDKQXHX7jF+/i\niatE7sfxzJOhnrmcEfEdDzMF1Uh5RmtF2AeqB05GmC78r2//nQga6Q==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-11-27T07:45:58Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxVHRGWEJ2T0pZZW5CZXE3\neFpvOXd4RC8ya3JhbXl5eVZtYkFZUERsOUIwCitncXZrVXBXdWpZVjJJN1pqK0sw\nTm1ZRG5Ga2VBaytLbmFVeTcxY2tRbVUKLS0tIGhyajNjSUF1dFZyOU4vUjJtcjQ0\naXAzL0kycTROSkVMck01UlNURmZPVjQKZ1lYv+tjIi8LvYtkFcfHUprNM2+/Nyab\nVOf28VE6p8H4Qfre8+KvUcfIch2guWGPpqY/IKGZaanszFtplw8UBQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIQTdTMVIzUDNDUTM0Mmh2\nNFZhcnlVTGJYRkJveGxxR1R0NTVNMEM4ZG1VClNmTGZBZWVWU3hVbWQzMG9lc1k4\nVUVaYjdoYXJsUHhVQTZzdlBqc1YxbkkKLS0tIDIwOGlFbjBHaXNwNG9MeUtBaElV\nQ29IK3ArS25sU3FRK21jMmhsNjl4SlEKCB5Lt7TuGwgNqh7/4NpSRjR+TUrHDYwl\nDkVMEm96VludN+QpmD7P/WhZvkTZG2rt+jFcA/f6JNEBVMJxEw9SeA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBielNxYTBpNklVeWkxY3pq\nL2RrUUZnSll3dGxVL1AxOTlEeGNBMlpFbndNCk94N2xsQkZhaGdsQ1BYa3lTZDVE\naG5KSDRyYWZ3MlpYYTN4Uld4Wi9vak0KLS0tIEVINHRLNnhlVjJTbzVjb1BSRWlN\nZFdPcEZoa3VQbHpOQWZTRVFESFE3TGMK4UqfVpy6tDlZaE9t8gays8KX6cN8Gt77\nRWZYbBKYhotlDCEAOQ28J8DQZwBVEPZNPp/KTCQs3DA5cQi5esiVUw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtcVFucjJERWlQekhnQ0J1\neCtyV1VoU3R4blV4cGd0V2loWmxYQXRxRDNVCmtUdGNkMGFNNU9xQk1qajhHMjlF\ndU1yZ2pldUdRT3F5ZzdtQ3IzWVV4ZFEKLS0tIGN3WklIbTluUVVObGJ0ZWFKaVVM\nRktNRjhEekYrczFPajBEV1ZVeWlvQkkKYGHFm7IYxnRW58CRUHE4p1bnVvQZrMpp\nWX2Cdi/ZV9DBMUsQ3hOJlVBbZP8F6ODvXRkH8fipjNuQylJNWeG4Tg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwWGIwRmQ5cFZ2VjRBNXpa\nYVYvamVWN3Jsd0Y4amE1R1JnVjM5U3c1eEJjCjRxRXNKMmFtZkRJamtzSUlpVHVq\nVnV5cDVtUzY0SUVuNUU2eGdKUHd5UEUKLS0tIFY0aHN2Y2wraXR3cHZXWERoK1dJ\nWm8wS0wzSFB3ZzJVbExaczFjTjZwOUUKasub5axckBoqLwTzM2zEjg7j8nMl3xgh\n5ttxPBXZDpMAi6ORRNnIHKXleYaRcHCN7rvLOSWCYC3QEnemwGEQ5A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvcFZCUnBDZ0UwTjVIRmJS\nZFBDaHBPQnBtT1dxRGlwaEtBZFBJdksvYVFzClBMRVd5TUdqSk9GbXNJMDBaai8w\nd2RRb3VrMzZ4aTNTSEVJL2NTYnB3N2MKLS0tIDNlREpUMTVtVXRZeDBXeitybERq\nN1h5TXkyZFNLdzhvZEd2SkxveS91VTAKzI4lJfFtD+MFpCFxoyYmTV+137rL90Fi\nPl2itQrDSC6epx9dInc/fpdajOcToDoGamNRXC2sMC8WqHAI92buvQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAydUt4aHY0bm9FbjZOTGQz\nTUxYM2RhL0gyYmdYQ3pabnN3cTJBUFMzeDBJCmo0MVNhWEs5OFBzZ3hNd2VVT3Q3\ndFRMbC94WXR1Qng5NldEZHVFK0owQkkKLS0tIG45SzBLd1V4R1RWTlFObUN0NGdD\nWkFFbkZMRnN5SU95blV3cVZsRzI0MTgKpqqeHrlVZDoeCSUgVB0n6GQF2BGDF4cs\nJCqZJd3XrPq28tqzfc8xwgGrX3JDKUSB1mnNHKT6oj858W2MjD5+Hg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGTWpvTXVYRmVQV1Y2d0g1\nL2Q5R3NKRXl5NWZubGpJdUppQzUzRjIxQWhjCnB2ZFgvMUhEb3l3cDNXc0dIMWxm\nSTI2bUxqY0F3RWo3RXVub0hhT1Rrb0EKLS0tIGt1TTFaU0RmRjFFRCtEYXUzMHRB\nd29BUWVzOUJXYU9EK1JSVlpiVXl4eVkKJK/f29Uoyd1v8GIdzgXlqkZpd4TPwwtn\nwHMPE8u11e0YVZYxovGZAqxyrnuywhWu2BXhtkc0ZCRc6r7OYbH7wg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoV0VqWklIbHZCaW8wM0Qy\neXhpaFFSZHlBL1VndmN6dThqdFJGNUxsUlhnCk1tMEs2eDNqaTBCaHdFZmxaUldP\nTXBzTXI5dE4yaldVa00xZUx2UHFyaW8KLS0tIEpuLzJ1SWFTRjZ4UWtHb0FaUi9T\nQzY0UmNaRHJZU3hVd1hNS1hoaG9zWEkKa5vaqYn3YQ8y2UEP4BHQYKUCrJmSHn6V\nuL7L/kP9H4rloroudvxYdiQXLK1VJYn2MyG46xn7/KvH6vx+HHL94A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSVpRYlpIc0ppN2RVRU02\nenR1aXQ1bnFLeWVEc3FnTHpTaGNaTk5LY3hFCk5rUVBLNTM0ellwTDltd1ZvaHNj\nQUxZVThFT2RlWS9WdWlQYTFPMUk3L0UKLS0tIFJsaTZTRUhhc3JmWlI5QytheXVw\nSnlhUG5jOEJJMjhvT0tnVDltR01kaDAK4sWF7asgU/8VxQeNqMfKtzhEGxHFozO4\nu5OG8I4SP9ev0+nEytDP+hg+iWK8/MQPT8iPUuxfROVaVflyjr/hTw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIRlgwOUNZTWhyQ0s3ZlNW\nYkFLdHJXSnRyVGRJdmx6ODJqbXFyQ1pCdHpBCm1DK3BjRWtWUDh4L295bThsUGFX\nK1ArQ2ZJQjZMKzNrendOcFQwRHJJRVEKLS0tIHIrMjBYc2t0WmRpMjdTdDhnaXFy\nUm9ZNDhHMitRekl0SWVLUGlNSk9taFEKe/z+tEwjuARxuzFBW0vfrg4+GvMt919Z\nrYnIWVWR3cjHDI5UMzROjB9mVLdJxyBQAr8CzcPu+aatGGS+VsFonQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZmJDV1hEUnhoNnlIVFRD\nY1d5Q3lZV3VtN0FTVzhkaC9WVHd5TVZtZmpjCnlJcmpYUjlNeTM4L0lRWjNzNW5T\nUmF6TzRYd3plNzJxd1hWMHlTY0RaRjQKLS0tIDFvRlcvUVE3S1RYbFJTMktrRWFh\nMjlONG5OcWRjOG15WHhpcVJ4QzNHMDQKDS1AjMxuf/mYTviqUgpNC2w8b1WOuU/E\nU/H++S6xRNtMDyPxQ3dlp5C8s6kxTYmQ6Fr9xV7ffXzOQ8rIiXg7TQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzSmFmdkhDb2hhNHhMbVVN\nWGxvblliZkh4eEJ5b1dZcjJjbVZ3M1I1d1NrCmJQS0hnMGI0T1F5aGZaK0dJQlkw\nVjY3K0JoT2tiRjF2eWMrMG9CTENvbjgKLS0tIDgwanErVDFXZE9OQUx3M2NudWVO\nZ2xrOFFtblZDQk95bGJ3WDA2V0VRRlUKEExB40RDfdHavKZWnDEMrzkJ8DI4iv5E\nvSxlX+IHjNXld1BmjIUdf/YN+ld7WAQwEKi9DfLWEsYLwVAPFHQsnQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtSTJVc2RLRmdSaGRCUUVl\nR0dWY2lsREhTL0Z1bDNJY3lzbXN5OHVrTkFrCkF1VVB3RWliakx6Kzg3bVJoMFln\nUzZVMXgvNzE4TS9iTktVZlM0T1dEN3MKLS0tIHBDaDFvVFQrZmZsNUdiQmVCM2gv\nOHF3TWJ1SDFuNE92MEtKTmhkK0ZNWkkKnuUh5MIkiedv8tTaX6LDSdkjTb/hvZg4\n0RYk6HQL1fZ5udEfPNxAu08tQwMXlb1RNpJAriMw+WXOvar0q8lyKQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2bDNiMEsxVFZhS0hpVXhO\nSThEcC9KZ081bVAra2lwYmFlUHVVS01PclZRCjJMTktJV05yNU0reG1mOWlrM0Nq\naHN1VmxkQkNadlJCdmVMSzBjcm5zaFkKLS0tIHRIM1IwOTJFaEZwZnl5SWdnTE9i\ndXZCcHFyeGtDSkZmZnNZbXg0ZEJQS2sKwWQHUg8OxQlHF2/SH17/whioqLV1vV61\nSRYGCrQhNzXxgZ/uLsk5O8o4r1qat0XT4GPX9zvPWH5GztS/op1+KA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzejNMN2U3b0ZyVlhnVHJ6\nL0QrWGFzNitLVE9kZXAxd1V1M3pRTjBZOFN3CkVuL3p2bGZDY2dMWGthZDg2WXVR\nWUN6R1p4ZVhvWS9XaU9XN1A4OCt4T2sKLS0tIFhzRTMyTlRpS0pxeUFwUGR4cUtM\nMG5rU0JKZlVPQ3pHYnI5aksrUVZuUnMKPatZ8cN058GwYeM+iizhVbE9xxDOBvvw\nnNNeWkKZoND7lboNu1r6UWqhcXh6kR1xBgutLMjFQaJBfu9XivurRQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YjJaQXNGd1pEa05WRS9q\ndTF6VDJPRGpJRDBUUHgrMUh5eURFQjZhamdjCkhEWG00UTVGZnhyNG1UclNwZDhq\nR21aMW9tUXU4MVFhSElTTUhma1lYdDgKLS0tIE96RHhzOWphZlFsZENMWWFid2Ro\nVGhRcUYxL2I2TTQ2MHBZWjQ1YnJQMGMKkWYY1Cs8bfdeGm0baKZS83Hl5kdhZ6yY\nGCtPpx0QfRLqT/aXgwGb/rYsnbGJmhcqyaXCautFzpq1+sjgrgsynQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-09-17T05:47:50Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0SzNaeExweSs2bnFSbWRn\nMFFubFZHMDIzbVprZ1lMWjhFa2JmNk82R0hVCnJKdGdUWElQeG5FUFpLcmV3YURS\ndW1hQTgrN2hINEhBaUY3M1JTUi85QUkKLS0tIE8vM2pRWHdneEwvanBVMmoxaEV3\nM3BBM2QvK3hsZXl6K3VBaEZDSGxXeW8KLUdwhY10aDwFxWs66EVfDNKB4U4mLmeg\nplp68lCfCSIsU8nddPudAY9e9rKYOqyIEfY1+5xki4dCTJurq5F4aQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiNFp4bWhmanJtMWpGTGFs\nUjRUMFI4TjgrVW5lQnhxMm1ESVg4US8wVFY4CllwOFdtOHNsWjVxa3NzdS92SzNY\nYjViekJpd2h6dlFGdlMwZlFqQ1hZeTgKLS0tIEpHWUdkMFhlOEl1ZTRpOVB1QWov\nSy9xVThmQkd1cHhSMXg1YjIvWEUwU0EK3eF7waxzs0T7eTXGRz5rYlRixd4kU21b\nvoIskWz2e3HHWFEAvuaxU7rw1YGgDOm9hjKdhEy0YniAimKT3auExw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwV2dzeFZNeVA3SzF4UkpD\nU2xsSkF6ZEp0RlBOaUxOQVgvUnljTlVRYjNzCnByeDZLWlpqRmdzZzJSQUU4a2FH\nbk01djYvRDFhTUhaRlFCVE1YdU80b2cKLS0tIDVENDRCR3R4b2k3b3FxSmRreTdW\nRWt5eFpGVnQwNjJjSU0wN3FMVTJVRW8KY0oLtP087AZkBvG+JcGOBRs1a6P36W/F\nq/zhK/dMWJNCbOHEXyZxsn0I6Az322qCyRIarcnd16zQd0/ZW7kbaw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrVXBqSWt4REFqRjh6amMx\nMW5sZTNQSzRZUG1ONFpkcUxDU0pxczhQd2xRCmtRRTBKcnZJZjdnMFNwMjlBazdx\nOFlHMWNyYWUwRjhaTWZQcUhTY3U1MkUKLS0tIG9FQUpWc2tJOUkrMVEyOXBmdjFv\ncmxuY0JQUFg1bDBGRU9KVG42UWxxT1kK4OSJU5GrzPamKdQFPcKbCgNdNeuZBL/W\nZ7bmxD1YRGmlqtz9RS07dr9L6HO7TLlbkk9Ya4n5LLo9dFF9ev3lag==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2MjBpU0Fld0dsdlBCWmkx\nejFmdGhPSW1VckxYSzI2cDIvZi8wTHY2UzFRCjFaazA2MFgyblc4emc4SjN4RURr\nWnlyWGJNMnRmNys5M20wWGNSRGJRZVEKLS0tIHhLQ0pyTVRvRS92cFlabFRrWFpO\nelpxcndPQkN3bWllTUtpZXpOMzJ1bHcKmdHYvaUWpuLLznSZ9lK9zBpRUyZQJEmA\nxyEaIFRQrSDPs3MrAo9+oCvkYkJXTTe2Fnt3XZiBpSVU4Gy6doN+gg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzRDFLOFptQ3dxZ3FtaUk4\nL1lhODgxUnphWHJmTVlEbWNmLzlZamdVVmtFClE3RXB5elljeDlyUzZGenAwRTdE\nV3lGcUtmelIvNE9pMXJqT3dLWldjU0kKLS0tIG5KZ25XWGhXMjdsSi9XWFJBSUVO\nOXFVTjd2c2lET1loZytvVS9UNitHV3MKnzzEfokZnb6p7Z6ORAw19s2TZaI8u+53\nKJ6VQp0vjkp29LXLJiS+S8uqsdV4Dn/tkwXRhQV8CFfQHkqfKe4KMQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0UVpNenh0ZWZkRnBnWXF1\nbnUzQng2ZnRnU0gvUmFmOVRlRzRGbnd3cWtJCmFuc2ZRL0VYZ1dzZXE0REFmbURS\ncVZiU3IyVnBPQTZXS2diZXU4Mm16b3cKLS0tIHNsWTlZcWN5Y1JBbGlVa2lvZkpY\nQkEzcnk4Mm12SnIwZ3RqREJxSkVsU28Kg3wnYRmr+Ut/6Gq0AWzh8V7LgYpm6nsQ\nu7aUU7oOmvYb089X+/D7PtTINWMRXUR7fCmNVQ9AgQG2MydK5G2i7A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNlhoaURJdURxNlp1Z0Jm\nbWFYYTlpcnNmZUZqWmRDd3RVSk50ZDRUcUdBClFzQ01GSmxwOStJVnhYMzJhZEdD\neS9Oa1JERFROc2N3OXZCZmowUDhUdlUKLS0tIEtKSEFRWmRyYlhVMk1lU1dvK2Fu\nSHpWWUkzNzg5T2hSWDlhMzlOSzlEZkkKNi4oVwsv8y2qpLeT7DvuCABsNyd03M1H\naHyrXTpE5v94cdkUuMTgS63+LeV3v1i/FzbaTd5IPZNMFTB6lyAVLg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMSFMrVTBxM1hUQUR0SU1q\neVY1NUVHd1MvWDh4Mm5JbDR1aURQRFdMdmg4CmxNZXFKeGgxVGJxR0FiTkkrRWtR\nNlVpTFg5RUpETytsTEo4Q3J3NGtwdG8KLS0tIGdkTHdOeDVuQndmZ3I2eTc5Z0NJ\ndTFRVHNteDErS05MTmRlU20zRkg5K1UKCN9+YK9I3MZXC/cIpnKKHUjI2/msLoNg\n9ANRBrqYe9YEbGffnd5U63XWxPRLD0lJO4NW3MOvnPSA6Wyrqx2eyw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKaWdhU2xpVm1vTkk5dDJx\nT3pIZ0ltUWpCemdackZ4TjBiTlQyVDFGbDBnCmhzTjQyeHJaVktwUjd3TzVHc1c0\nOHhKUUpYMzh5WXRvTnd6cUtDc3F0Uk0KLS0tIFJRU1FHQVljVURaRzd0cDVPOTBD\nd3FZVG9tWGpLeTIybHV3TUJNUjcwSjAKXcHCF5PO0QjlVJgGFstDo/LTwxDzRCaU\nyXdxyq/t7TiJo9ACWHoyYQECFfgM/Mx/4jOPFlSQtJYIzgSFXLKyZw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvKzRZeUlsVDJBVWVpTVQ1\nT1pZZ1E1SVhnR3lUdXp6MDhmaUkyTGlUY1Q4Cm5Jempnem5ralJ5cUtWbVI3dld1\nb3RTcHpndXBVV3Q0enVDQ0QzWUVPSzgKLS0tIC9WUEQ0ZkdidnJpa0c0R2lsMDZF\nbVBWaGZGL1VRaEVYL3UxMGVlSTFwOUEK4cLU3Mo2CeYLMlyeNH2t56BgzJPdq3d+\njgVoF9PMKzZiMa4UjUozNOXAqRygNcFSY7BBcjX/CRJ+QFYAid5tMg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUVN1RjlHVEFDVzdIY05K\nT0o3M0FXOWl3c3FydjdqaEFJN1ZuQW5ocFRRCjdLNHlMYUcwL3JJRDI4cTMyNFYr\nZFcrbUhZN1BneXJaZElNK1o1eEpYancKLS0tIFhPSFJBL2RNRzd5R3ZVcDVYR1V4\nbHMraVVGQmV2TEJHM3YzWlhCWWx1OFEK1QCIKqng6nLwgzqqjwFXSrw7ownjM3xZ\nQsOR+6cKgrTHKSI0jYOUtAtLIkSpoxBipsKhtdwNapvs80uMyrcsyg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjT1U4TmJJZ3lJdkdwWmN1\na0Rhd2swY250QTNDajBKRGoxdkdhckpORUIwCjJlVkJqM0EreXl2bWlpREcxT3ZU\nNDZaTldpQ1RqTHFBLzV4OXh0RStaN2sKLS0tIDQ0NWpTdXlsNEJ4RFFRb0tBN0JX\nUEVHdGJYYzNBVkZzTkpHdWtpNnpqQVEKJe3DZrlb/9hFFnqquHVWWifSDiINn7hR\nFCdkA7/eqqu2fdH4tGFHz4tG25b+H55soDQHvFUPH/3nBB9il6PwLA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRUDBaZ3JKdElhYkFNN2g2\nRFJZWEdvVjRmTnhHVG5weFlLalF2K3BvWW5NClZERGtjS3ZYUHlVMGx6SkJRWnFh\nMTNFVk01VmlHMlgxcTQyTkJiSFNLa0EKLS0tIHkvbGczaEdiN1VQQUJkVEJVaXJM\ndmVFSnY1TDBnWEtzR1dVaEpTbVVXSFUKoYbEHnTx1zLbr+L+8Kv7GFJ8uJcyJc7+\nMPk5uJob4GJXKAxNlklJpM7z9RuZTZslf/pXeW+rrehy7C/DbWweEw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxcjlOcEltQ080Tzg2enpR\nV0RmblVva2FDS25uNmlJWDdiTHQxbXFKZm5RCkZRaDFXUFRxNFlPQ2JxZzdwbFE2\nQm5xR3FZUjFCcU9VUldCcElqWFREWWsKLS0tIDRMZ1g4UEhJMmEvL2E3dTlsSURR\nY1ZMYjRQSU0vN1BLQmVlTGpDMnZGM2cKvsBhl+entE8HvdWtO6+f0Se9J/psoGST\n5sBTUSj/F1OUwVMAnSZPWsnSjOMpJqoy3GemcCO+hqNORJ3DxxnHDQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwNy9FaFNpVUNMaUpaQkhU\nbklaM3UvSnd5U1ROMlNBdGZ1VlVLUllGRnhFCnJobUh5ODN2OWwzUGJkU1pOYjVt\nS0EwOVNwOGhnaE16WlM4b1dyc0Z6NzgKLS0tIDVKbXR1Sm9mWnlGR0MySi9YK1pw\nV1FVRlJncVZXdXpwWGIxRi9CUnFvbWsKEAKVX9SZ1c8PnkpRQi7b5J9INS5YWLNj\nRsJk1kCXCJKIS+49EJc8Pt0CrvET4sTlnxEl9KKA0WJu/ZixBLcq5Q==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVVTdybk1ySitMUmlwcVJo\nUWh1Nk5zL0kvbEsvNy9kNGZ3RzVVZ1diZmhJCm5ZSmR6bUdKOXB2cVlJeDhYRXNW\nY2J3aWdvc0tmM01yZzlEL0o5Q0VRdncKLS0tIEJaS3FER1gybUM5NzJaVWJuWGln\nTmdTMzdBOUxTNy9tZFlrVzUvMzg2azgKVPlWpt6EqzFn0FARLM847yCqeWb/dJH0\nggnHAMbzqhKaq/H9ZFyXvl0VCxlJ/5E4QZj53SAGeG10DfezlWLUuA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-05-14T08:02:16Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTY1loeFVEYkRYclRuMVZl\nVjVKTE53ZUZUV29wci9hZU9acG1EVVhZOHhvCnR5RGo3OE5CN0Q4R2FOV0ZaMXYr\nOFVTYTVmbkxxbmZqajlGaFR5cm9VSlEKLS0tIDk4VVVkVjVxci8xakN0R1Q3TEpn\nd3hwbk4zUDlmK3lERWkzajc2Sk1zT2MKstjQeXTdt7HJlhAeHInk+yPxcOmPv+zE\nQ8tB8do8lvSpDGVA8tWzCE0dXiX8AGXp2eW9Vu8dDLkToT9V7MDVeA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxV1RwRTlzR3dYZnJtSXp6\nWEhTaTJHRmtYaVF2bW1WOFhBWWw3UElKb1NrCjZTWGpZMVp0UlJHWnR4Z1pJR2VJ\nYlJpbElRZ2IxSVBWR1FFYkZadU5wUlEKLS0tIExxck93dUdyYU9ZYXRINVJ0MzBV\nVG43NkFLNElqTW5UL1NVT1F2UDZmeHMKSX30kfXXKNrbwmc/Tps4F44uvrlNWBPw\naivJSN3/o4qvrpsvnQ6HHx4/FS3Fvy88liW7qDA9IMtTpYChDo/Qbw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFeGdTV2FzS0pMZkFWRjVG\nbkxhL2pOdG9peUJZbXR1TGhOSWtoRzlvS2pBCm1LRXpqV3BqekVQejk4ZzcydEFs\nRk5tM1dLYS93dmRWMkMxR3R4T0dRM1UKLS0tIHN5U2ZwaVBCcmZSa09GSTlTZmxI\naEZ6SE1KODd5SUU4bDQzbXlldmRMOG8Kw3VGUaRVi/rdo7PsVDS8+TELqZYuQ91u\nknpWJyliPG+Yhst1FmxDTZGksRZcYBiwt3gYuHuBKm1WTwYVUevWEw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWa3pyK09vQmNuaXhnT2do\nUmpnN2JTVzdVUlFMQWdJR05tdTZQbHBxMkFzCnAxTytSbENWTGhQNHVWK1JTSzNO\nSllaZHIzSzBJMi9rSkZIczRsYk45K2cKLS0tIG83Ny9TYnpBVzUxYTllY2IwMlZo\nd2JpbEhpRkNUTXdWRi9XNWYxS1BvRjgKDu/vq8LyxpjvCG5yE5k2JeNfgTpP3yPc\n2Hv43IsvYELnpgYZ3DqCASFsk0dbP5R6vEcqMC1A+4Av5EsjW91dqA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOM0NVS1V0MEVrSzFkc0Q3\nb3dSUzcwVDNWVmFyVEVKdkdEZGdoY0lHSVNFCmZqVjRiSFZrb3N6NndFTG8rMXJS\nbkdzeXlOTE1qUFBtM05uMjJsakdKcFEKLS0tIHJPQTFwdVlWTlVYTEM4bmc3eHQ5\nSHVYeFZ3ZVAvUW8reHBjMkVVY25acVEKY9XbOaFURubHh4fTpVVkuTpQnYoABgxy\n/XyA79WpjRlzvXa52ac9K9QgE8R/HSIeIH1j2M3yRWXs+Jw2TtGaGg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYWVzaGhVTlNFcVF0d1Vh\nSmdMVnNhTmVZMDV1Z21LcThDbUVYdWlwTXlJCkhzd1VraUpmMWVaK25kZ0VtUVhl\nZmdOeVhVYzBMTC9OWnp4ZEtYNEVqRUkKLS0tIE1SS28xS1ltUk02L0U4aTZFLzQ1\nR1VTenhtQTNJd3M5VCt1WHpkWHBKS2MKOsRIAgc7LoTdgjW1JnCGO5qNzBUYId+F\nNQ4cU0FDJyu5MSimQ2tMgLYjo1tHh/AKGT/niydx3d+uFpVrjUmUQg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZC9SWGhUdzlYNWdLc21w\nbkVlUVZvbjJCL3pPOEJ5Rk5pQVVLRUN6clFrCkphUVUvOHc0OCtIRnNWWVRaWlNV\nQ20xSGo0b3htd1NlUXJQa2E3bFZSZFEKLS0tIHJhTkNoeC90RlRyUWlCNGtReTl6\nanNjV1NQeG1PempPOVNaMjJ0S3FLTTgK0EcUFCHfm47HEBHiEvs3TbylsSxAJ15p\nNOwgCIMFeaTNgkLuXDEYurNN0H6ioXaBNV2ecy7aHNLLgOyayW/jew==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZVFJcCsyOGJCTHo0Mmpv\nOFdjQmI1M3JmeDE3c3d2OFdFa24xR0pzem1NCnl6STVYRXRydmgwMlBsMGx5TThq\nUHZ2SEI4MEJhZGpuZzhFMHU0clVSdkkKLS0tIHdyVWp1VGhDZDd5M0JaVmI5VS9E\ncHd4b0hFNEo2djJLaGFnaVpGbWdzRTAK0XNX+8xOfmR2JPe1syZ5hTSqhp6pUGdg\nEL7yIhoyVLedyDHTZLAk1XFfodXnbjMB+r3eSBfBHwS0PJRYdgnNxw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBadUlZUXhublJvVXFNdG1L\nWkJUSkR6OTdJOUpWVTE4Wk5ISTFtT3d3cjJNCldzcTl5R21FUlNyUThGTTdhUDNh\naDlKcDVlMlJtR21xVGlyTHgyeTBmUUkKLS0tIGMyYitnWnpzM1JhcXFGbUtTek81\nTUlFVzJEMUZFNVFCUkNicXh1aStXTTgKderfUTU74b4NA9vScYiMT8FwyWx/DoGZ\nYcdCp1ciEuC8j08QeLcPAyGrWtZBkKlZU/HxEA/QDM+PvF2I2GYNag==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1THg4QlVXQ2dFSG0zL29h\ndW1ubnpzeWt4cE8xMkVQbTU3QU9wQlkyWmk0Cm02VmlVTGRnVmhDdytuQ3VxdGRS\nTWh6UkpKajRiUnJxU0YvaWdhMmN3akEKLS0tIHJvYVAvMjl6eDltSWZsNjFvOHNX\nbzQweHc1d3FRK2VaVmQ1UjN1R0pEbFEKU/nabtnnzwoTjrJ7Rib44Fwfcce52Obl\nsoz5ZSOSGJSn4h/usUg/WoEJYe7Ill7skxlUXExAdnvIpMrBpQlcbQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqUUg4M3hVRm1UMzBzSkNt\nVFU5bXNMaW9LU0ZpRHlITlQ1dTUzemhEMmwwClF3d29xVDQxVFpuc29kMUYvUk1w\ndW91dDFYbmwyQmJ0T0Z3alVncUIzazgKLS0tIERGek5Oc3pMaTRDNmJXRjY2V0Z1\nM0hMa1RiWVFDeEh4UTlRa3FpSm80L0kKU6uM8MAztxg9v0kGRChJu/DkTF/rnu0j\nxFU0VqCP9VhLMXCkyr+DxgwGRvTkWbKwlSmpffi6WxhOj/GWkY457w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCUkE5L2RPRG4weUVBVGcr\nam9FVm0vYSt1NFZJVjV1ZStNRi8zUFZsSURRClRkY1d4R0xLaUw3ZWpZdnZUUFM1\nVmF3cFF5OWY3enR6TVNiOVhwOGRNVTgKLS0tIFhXdzZzTlN3VCt6UHVncTB1bHZK\nRkY4YjU4QVpFTU16VENMVnR0ZVl0QjAKMbnsrwvGcAVVpMMVmKR1XANWoI3ZmuCI\nXHQh+XzKcCOQ1tRG071RthuptK8ALxxXuGzNfXYqAhjF02v6U5SBmA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TlpZM2doelowYmE2NklE\nR3UxK1oreHJ3Ni9LMmN4UjRrZGxtOWVJZlIwCkNVL3ViRGJybEh5L2JzS2ZBOTVU\nQkMvVGRYbGJsS3FXVTNTVCs0WmFLcW8KLS0tIHJLc1Z1dFlVTlFxR1FpTXluQ0JW\nVVVmcW1XdGhMTU9XWlhkUE5SRmNnb3MKyAjvmUuoFQmowdUPdvjWncfcmLTAQso6\nzxwgarw/Aj3h/ed4TYcufGOGjPPe3EBDEUaOnmRiaSOQ4IKqFYn30w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQ2tTSHJiV3FreXFnTGdn\nM2xsWHdEeTY0U1VwaERzTlM0UlhkZ3RERXdZCmFHdFRrTC9wOHdLazNBVDhHcVM1\ndkZFdnZIV3VUZWtXbjFkNkF6SjhLWTAKLS0tIFppaUxZM3ZSamFrR3RCSlJsWXRy\nYmtPa0UyK3JlbHZ2VVUyeUE5VEJDdW8KO6AE2G7E08C+TAhEa0F25kD4fm/VLftT\nFrkA5KoAwv5tbtrLbRN7hS1JPoh2zktuH/v4o+bXhoKBOcftcbTa2w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNHRycW9UK01XS01yZXhM\nSko4SXdlcGl1dFF2Q2hmZ1FTcHZiUkFyaVNnCjJLazZmWGFWSTN5dVNMQjVMblRY\nWVQySWtza2FwTTNrdzJ1aGlRd1F5ZDgKLS0tICsyYlNTam83Ym9kajViZnZ1aEVT\nVCt4M3hrUHp1cWZoQkpPa2t6ektOeVkKurB5LWVwA5Mc3iDe3DK91lLtEQUs3pRB\nrRAdrLhQqZUGFKTN9layYkjXRSt/tdTjhUlVZG/VvKwnNHJiVAlU0A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUGZJckY2Q3VqSXZYQWp5\nNEc0WkFsSitmWEwvaTFWUW82YUlYMm40eW5zClBOeDBsb3Z3a1I3OHFMT1RxTHZ1\nbnNBRUZlaE5jcnVvQjQxaktkaTZkT1kKLS0tIEcvK0tieTZvdjEyTHVVckFZUERj\nQkFxc3dLQWd4dERiZGhza2NMM3JoSTAKkm3T5FYSo4DU7Pw4wjVoDtMk3WognNH0\niJ8f6kW907ypotbAH0NZffQtikzhO63F0cPI3zQxbx2/7Bf8lw6QjA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5SE02WXpFWVNWa3hUTGNr\nL2k4d2h1aENCNG1LQ21NeGdtQTd4VHRqOGhNCk1IMFphWGRhN3NMQUcrc1BzNmJQ\nS3FWT0lGQVRGL3FQSGVFQ0xnYkI3Y0EKLS0tIEt3aEkrUzRWdnhlR3RBSXBIN1Vp\nSWFoVldVZ2NtaWlxZm9oWUovUTdDTDgKRSA8p9CYvnnNEX2WARCJyqzMXKwQ1CBk\nKMh00D15+nQZO4Z2VCeOm3s1m7h9AuYzjYLK/igWGy0ZgAMfrpo9Hw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-06-13T04:08:00Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQSGNFU00rSERHQXJJTnpL\nRXNoYm4xazN6Z3dvMDZ1OTA2Q1g3OURrRFdjCkgxaUZaN3k5RHFGM0hTWkRybFBV\ncnVZVkFiV0NWeXJoWGloV0c5Um01cncKLS0tIGZFODFxeXVpNmkyRFN0SE1ZK2J3\nTkd6dzFNT0F5dTJ6VGVVYTJwY2xCL2MKTDHVtRp1uojeHJ2dILTvjQTXtWU0A2ZT\n6KEe5pkoadVoI3lu70RLyGGQuImGgc/ZsEJiV2CHIuKG17J3bexBBw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0SGlxaVB4enJ3QjhmcC82\ndVlyc0JYUmhBbmQ0a3ZnSXRVUURmalZqZ3hjCm4yekRSeHZTc1A1dy9iL3c2WkNB\nSTIyNVVEWkNkRGlWSlVoaVZCNlo2WFUKLS0tIG94dFVNdzd3UDdBbStHWVhNTGp4\nYVFOcDNOaTFJN1hYZXVFSUh5WVpWSEkKzxXo3hCvdIROwi1v6nt73B+Sj03o5Mzx\n6di5nQH8X70hype2vEr85zfI92ON4fU6HdQXbJLVzyI1nrh5s9ZkiA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TWYwdmQxVzRESGR4Q0J1\nN0JXK2V3SXB1SWJxeHJKNjFpOXI3ZkFTbFNJCmNQeHRiM281MXliNDVHNExVMGtX\nR3FZcmtTdWhtaU1NSmlwbjdkcUJtVGcKLS0tIEtJaXBsZXVBSFRnZjRWRGdVcVBQ\nQ0RqQmhMZEJ5cXBkVk1CdWZsMFROSTAKx+uAnbpXblkJi8zSiyJXO3UtHTydGbM4\naSN58lAR3yCuSuNHdUlDXr9TQfF4rTHEBGMBFh0ey/CmX8hzoJXiDQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxU0xIQzNHOUF5bVdua3hN\nY0ZzZkpKYzN2ZmZtd0VZN1ZMcHQrZjFnTndNClVMUmFzdWdxMk1LZnJwNFFKdkdj\naVlucjZibHhyY3Vxa0VjUyt4QVd1cEkKLS0tIEN3WkRzOG9XVEJDSzBvZUFEcHor\nVUZSTUJaSktuUDN1dkMrdHAzNU1udGsK90HcoYT9ojDuTux4LHBafFo2iTRVq9iq\nrcyJpnJnquLtyhK72CnRkfHNrXYWMOT5k6b0DTwvKERcLtyrbOnU8g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpZllMSHRDN0tUajdwdzR6\nOTdadjN3L2JFR2RNcVVob0NLWGlycFdMNm5RCk5XbTExc09leGpsMUxUTWFBYjhy\nMnNDazI5WHprMFRNWVc1QkdKTkppZmsKLS0tIEJWRzhBb2lKeDc5bHl6OXdvMDZD\nS0UxSXM5R2xOUU1Ud2s2UmRkVE5uNlkKAHjY/gUahrkgAbb+2Q43asvVrgdaKfWC\nO5JPHo+krBydvNZ2k4261lBF8zwJ++D+qZK396WxChMH/RhiiPUBSQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNUFhCY1FpeGhjRkFWUjdL\nclFpU1VYQk94bUFvMy9seW53em04d0xrTFQwClNGUFZlOW1tU0FJYjlBdDlRM0RX\nRDBQVXVSRFJ1VXVOcnJFdmE1bVdiU0kKLS0tIE9WSDJxWHZuLzhFa09QZFoydlNM\nVDZsUUZKU1BSOFg4dlZGVDkvYmFmc2sKf5rZdc/grXqm8HHSKoDqkjVaJV/ayIt7\nSlGFHu8W3TES2jsKZr/2BtXxGBQv9D5i9Upm2xM8MWn2mx/hWDf2uA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxYVJYL3pmVjRmczJjaTlF\nUW9OOGU5dzdWTHg1bzh2OHR5d0tNTGF0NmdRClQxNVF4b0Z6ZzF0YndvWmZoMlBD\nQXB0dmZhQ3N6S2VjRFh5bko1LzJYR3MKLS0tIEgxS3kzWHJSUStUcDRDRG84bGJ3\nYmRNeEMybDB3b1dFV1QxNmhJeTNCM2MKywwuf2TNR0VuEQcaZB4uYdxSyG6dzNiy\nX2/ke2xG8yApIKW5WIrOO+UgGB9i7ZdiGKUx73YUKgm/4IECfbHxSg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZR052NWQrRExVRGMwWlJ4\nV0lIQlI4bW5Rc1ByK3lTT3prMmc1azBoVUVvClpvaFRDdG5QQXBxNmlyUEF5N24x\nQS81QTZyRS8xT2V3RFVKZWY0YzdhRVEKLS0tIE00aDdzRm1sWmpVd21XY3dwZHBz\nWTVYaU11elB2S0JxK1lvUFF4NWRMVVkKqTMfsdlWzzpbSR54W8VANzIbzYQtZ/11\nwHF2cZHlrwTnucpoIWugynGsvu9R8x5i9lFjaNlavUwIJ2VR+BRMhA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0SlJWRUk4Y3R3MitrbjRy\naTQzTHlUR095S0VSTkdIVE1ualJibVVML1RJCnZtVlJjUFpkYXZhUElGZXo4TEZ1\nanFLcmtnNm5aSWI2Wk5OYXpyMlBPTW8KLS0tICtRcWxDd2c3ZHUyV2gweHdoNTlv\ndG0zTWJUa0d1U1RuN1VSbHc2VVNjeVUK4a5tW0cqY6su54HRDS+ZNdw+DB8ipxxA\ngMOE7vQwCzofvME5Vxg5Yf09nlsSwdhkoBZwegM/0vTTREM/oiwznA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLdmtEWXJDUUdKdjF6QmNY\nUGd3dW5BNXY0NnB3WE9aSWF3RWxiNi9TMDJnCmhxaDBEVHRWelpLdEgvT2d5Uy9Y\nOUFBK1ZNdHl1Mi9kZ0dZSmpVUVJyQzAKLS0tIFNpeDBFa25wNmhqZk5vT0dOYk1B\nSWhKV2JKMmh4RllQWC9EQ08wVmZ4UmsKQVCwHKBSFOTrG7z3njR7HV1CC/ijQksT\nB4iYhs8Vt91QPLvVte7P9PYk5yNu3cjeV65h4jHn9G/RzfUnnNyfPw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0L25BcUNmTmNqTldjc2xV\nVnB5bWxsNzdXWnI2MmlBOHVQamJqeU5ac2dRCmcwMUw5VHFuUUlGWlAxTlhaNC96\nSUdVcXJ4QUlGWS9xSmQ4ckVMMEJNZU0KLS0tIEpsRys5MVMzVnk4LzBFWElWV1N6\nRUVRMHVheGp3MXpsVlR2SjE1VDcxYUUK/eum+yorcNj3CuAhZVL7vUqGTNHW6yBO\ntF2RpTpIXp3dje+LH+o4wMFdFhi7x8EiL+o11NvTwOfDU4nyWWn73w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBRm9PMWpxMjlsTHpnMVk1\nRmFNclNqdFRPc1N0bU12VEpPcjhDS2JIbXpVCmo1TDdKYTZrNW8vSUdScnRSQnVP\nMENQUGg4Nm1ocEpYS2JGaCtsdloxc28KLS0tIHNjaWE4dFFyU1FBakhoa0VMZFBT\nTG1FODZGYUQwb2w5Z1pvV2tuS0xFajAKAADHxS6UTmdsAxtbR7ioemPLmxVqTEd/\nD1rhXomfMQ7NSkb5SUh8z7axGxY8BziVheQJWGwdIn6+u2KiI8b1ow==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBONlVFVkV5bzNud3FLdzhh\nYUJFbWxORTFaVTlOK2pscllub1Z5K05SMGk4CjN5cG5sUlY5VEpGd2w0M2VFc0M0\nT3FtTnBIbk9iNXh1ZlVaZ1UzUnRRY1EKLS0tIDhMWjhZUFhXYU1BNVdTVUhjRG5W\nY2NQamlDcjIyNW5tTkRWdVFCZUQzeWsKkms0SeBMI3MVdOPSq6e3QcTrLrDmuEOn\nOVK1NHeV7wYspVXjRMcCUX3d86Asf0E7rV942vlVxHX+rq9ueP6O3A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYYUp4VjV5d05xQWFXRjR2\nd1crNVZyRmtuM05aZHAzNE02NC9zVER4SVRFCjN2c0VlZjh6NUJheEFuSFE1cVlW\nTUhTdjhRNXJXanJFTEhlbGhaRUczVWsKLS0tIGlwRTZBWEhQSzFhY1BYQXdyMVVk\nRUFZcHQ5c1MyaVp5ZVJNamxuc1pXOUEKTsSzOuNOReMPZ99ICOW8/TCQBt8jjP6a\nO9DnwjImazq0i3HKjT+dgNYNlwG+MaUqUNdqIixjbE7s7pskSZlgjw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqODRqeEY3ZHQ5cHYzTUdv\ndXVrRmZIaEdrTGdKRGIwcDcwSVQzQy9RbW00CjJrQ2RFL1ZPSUMvQURZMTV6NkFt\nSUxvd3lkeTFYdnpsc1pGK1ByY2doUm8KLS0tIG5SRVdCcTBPTHgxdnl1TVFGR29z\nb3FPVWNzWGxxdWNlMXVVbDRmajVyMUEKWHTmJz7z2kHgHibJcy7258NY09T5H6Iw\nz6piXOYaZmFRDjj27HPz5pTEI4VXnO/7oWXcqodjGSvh2+427NSLBA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUGlWNkg3aVpwZnppTUpY\nVzdaeXlHWUhFeTZsTDNkY1B2a1RRajQ5YUJvCmI1a0pOTjlnai91MjIrM1I2d3hI\nd0ZkOGk2WWo0U0hOdnRmaW1FQm8zR3cKLS0tIHBYdnFqdHRHbTM2OHpRcXFNN3Bz\nQUZVNnZSQkUxZGhRM2liSXZTRVRHcWsKGMhYTWmtcRy/WjxD9uWe+iQCEMncebzr\nnkOmOPHOdnvJY+WynTAbHs7nYKKRLizchN7WHLxWah39C5KzmTSQyg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmemhzSU45SE9VNzZwTE94\ndDQ5cUJBRDZPQ1dETGNZTGxUNEFaTGo2VzNjCmdBSndxQTB4eVhxejQxWUlSaDAy\nU2dEMFRlYlFOQ05ubEFXSVVJeHdudTQKLS0tIHk4VG1zWXBLUXpNVjNUMDRUM3Vn\nMUtueXJ4U0o0UXN3b3ZHaVpZOUJrTU0Kbs9GkyKT7efYaUpbt6bPFmtCb4sS9uM1\nJIINWHrWaa1QqVC1eCswuH/LVO0xPNxfnDU8i0Hk7HEcVCcBKjLtEQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-08-13T10:17:15Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcEdPbGJ6RWFZYUVKRUtZ\ncDFYQUxEYWhIYUtxQ1FFZmtrbWdSTU5GM3g4ClFXdE1GQTZiM0ttZTlMVlQ3bVpt\nY2w4blVpRFppclp5WFlSWnNzRm5JT1EKLS0tIFFvZUdqUHE4VGVOR0RxR3BUQnJo\nVngrVlVtTHhCd1NML3ZpeC9XdHU4c3MKDXdy69z+LjN4qpVyoGDdCxFJBrJpNYY5\nr7eD0LXGxQ7Z5/YemPzc2FJQ+IUkxnwB1z7o0hYGQIrvX0TvpjlHig==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwSzRTVHN0TEJPeU5MRDdn\nOUV4UjM1TlhoY2E5eklMWVFWa3JmYjdnekJzCm90dDZOS0sxWnlqbE5tY2NGL3FV\nZWs3Mm9WZnJIQWpYeW8xQ0gyZWRVazgKLS0tIHk0Wk1YWG16dFJBTXp1OS9wSHd6\nZ2RrWlMrdjk3UG1YeGlZYWpydWxkUUUK1TPTtHRwq4ET1cNY5Ioq9hni+0wqzf7+\nBh8k4DFP+ana376xkL0JolJebZJk/pKiQwo9Ts4irZPSujDcIlUZEg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRUEZCdmdmZHJmUjhUTUV1\nZnFBQzl2M29MY2tKcnRyeGhNYUZlSEEyT0ZnCjRuMGgzZWtYQWZaZGpYWlJHMHVo\nNi9WU1grK01lVGZkdGZENU5XOTBCbWMKLS0tIFN5SkNhbXZTZDEwbE84T1Z6M0RS\nQmhlbHQwN2ZzSXR5Q1ZsbHBvOUdiZ2cKSTLrKPM0TELStaqGZ7PvTyQeotREzYll\nbVNpxfpHadfOYTu0Qn2d/H8haY58hYia6tzKrMFRrnxl8r5fnk4jeg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkTk8xWk56dkx5N3RXZ1Jt\naSs1a1dscVExS3VZK0M2bEJodWRhQnMwMDFRCnFuQ3Z2eDMxQ3dpeFl6MmpLYW9C\nM2tFTkhYNHZVMzVJbDBydkNqODRsUmMKLS0tIFN6UnM3MEFEMUFzNjRIZ3p3Wlpl\nQ2JoOEs4MDB3a0pIdzBka21DL2JsTEEKX1/oYpk2uNxfaMd5UDApN4/5wJAlybvY\nWKHCHctWxd8GFMHR9r0vQmy91zEkeXpCSGUTIe8fPD0hfJfSnbeGfQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjMjV5WjI2YmYzdWNtU1Fw\ndVNlUFZQYmVmallCNFYvOWxxdHVZRjgzWWxRCmovenJqL2JpRHMxYkZXS2RBcUtL\nWmRndFZuaW5WMFlGSWgrVFZuaDJid0UKLS0tIDVpaGZhVmFSYVkrQzlSeGFxQkFQ\nMklCNDlndkFTb2l1aU5Pa0FEZ2UveHMKQnm7zJxPNvCw92Jog76nDaDQYUQpSXZ+\nmbIf0daqIu4yQhKlen/I6p4hWvr8a4mvmVqIkwL13MNRS4hzKb3NLg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0RGJoYTZnS3ZGc09Sek9K\nS0NibFA4VFZGSXlCbnRCQU53WkR1ZGZPdG5rCnhmdDVEYmxVMXUwcmZLYzhJMzh0\nUFcwS1U5QTI4ZHZDdVNTSXhYZ0xNNncKLS0tIFV5eitHVGtUWDNIQkRJTVp4QUhm\nQjRjQ0NpNittcHRtUnNGa05wUzExS1EKU0GbPeVaKjhp+wBbF36EmAuAcYLSSDCF\nGat1MvC96CjULlWrTKVZkjMN4TDA5akPObij7PcsWHVRawaYM0bOpQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYTEZONjRZa0FvWVcxSkMy\nYjZKaFpxcnBYbFI3SFVzc2Y0cWVEZGlCVHpVCi9tZGFnazVOeHZEZVdnSmUvL2FE\nQnJJbS9KNmtwNElvcWE1WGVQcG1Rd1kKLS0tIFpzQXp2ODBiaWtCbnVtTEZyYlRD\nSU5KTWdJdW5oNUpLQmVIZXM5bGxMK0kKNMTR3OpNL0POPmS9SbMAPFzW33uaz5EJ\nnOTnSlaSe/50bBPiHY9P5UAmNSr6prA86FV4sneGDz9C8yxFGaA0fw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtQW1vUU5WZWovcm9zMUVs\nY0xXN3h6SlFuR0pPU1YzNC9QWERSVEgrVmlRCjZKTFhaVE11SWM2a0hLN05TbnBC\nemk0VnlveVVhNzdtQms2SUR5c2I5eDAKLS0tIHY0S0lueE9xWEw3dGRxS00ycmZ1\nYWNoVFVhVjd1a2oyeWc5cStLekoxSVkKs2GtyhNYE9ZfskfxBf3Y8nJN87Hh1baU\ns5pRlp5NTNKwtLwXUp5Cn7jBHd8KmiBIyJ/GMqaLJO5AP5+6KNJwGQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIQkxLOGk0ZVBPL3hFVjAv\nUytSZm1iR2dCcDVvUWEvOEtCcHpQdm9VU20wCndDZXRjQlBtT0MzOE1YNVR2R3Vm\nSi9FRTJkeHFLNHRjbjMwUHNLRjZzMFEKLS0tIHY0MWhveVg3VWhxekhWTTZ6NnBJ\nS2xtanlweElyZ0RKUUJDSHNtdFlYWEUKVgQS1G4mCeDrfA6Ugyj7qRF6aGho2AfR\nUpEp/Zv3SaWLRLGiqtwV9+6l0yDj+L7As6c3ldkLVPrNnXfWEMshcg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtS3JDY2NpeFpJNi9HZHF5\nVkViTkJvdUsyTmVEMUN2UVFBQ0dybUFLY1UwCnl1L1RTdGlkYlhSTEQ3N0xYQzBj\nV3lTRGFyVzgwWDhJTXMweVhsWm1nQUUKLS0tIEErL1k5QmpkektkNm1ocjJ0Mlg5\nakpySVdjQ1c4Y05PUi9uYTR5V3p1bU0KCM7XHKnwS356DuKE/P0uOXO4Yu6Eyi58\nDtmgsaojXMnD9+dIP0Y1+2BY6L/uXizEakdfLTaGJcELq2sZX9Qmdw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjT3hWMzVaMTh0RFJkRGND\ndC9zUHpJYUcrQllFVkZRZWVBNmFRa3ozZkZzCkxtNDFacmMzTWtiV1VyZXdzRkg2\nZUhhV3Mvc2FYSW9nWkp3eVRKTjdCOEUKLS0tIGUrYjlCQXBLcVhHWmFTV3BRc0FR\nZGVEUjVYSVEwSmpuVXpSa3Z2UUw4SE0KzuTxHeZ0eODvQvHzgjop5FOWhDTR8MeO\nkF9Kv6kurpZuRNRmWZ5hlaMoyT2D94SV/YtW+PGvC/7ZeqTObSiUNA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiK24zS0h0Q1FEZDBKM2t3\nUHdlWXpaYzNQQzQrN0NPUXVVdWo5dmY4dVZrCktNRXNvVDZpejIxT2FvZmlHWlRU\nWmRZb1N1VFJ0ampRRVhuZGJIQU9pL0UKLS0tIEFXZk1zLzh1NFFKQnF5RzVSM2J1\ndlRXYnFUTFVDS1pybjRzNWkyaUlyQmcKysTv+9YJ7E+KBBtzlAlilZlkGg94nWGE\nE773pduaDN12ojMfc+JPdOU5oTISZk4/QvBL+kmAQI8AlmSap9Ix4w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaVENPRTgrUUNZYnovalk5\nUDdRbmdSVW9kdUxrZ1dpeGp1K2YrSjJGZ1FRCjZJT2p6L0lRTkhTZmlOWUkyZjh0\nS1Nqbk05L2krS2xTU3B4L2JJQWMxOUEKLS0tIDlyUHB6d1pURHN5TjRaWU1GS0o4\ndXVldWJGVmpDVExNcHA2NHpYSHAwZDAKfqXzRXCTAhCYme3Wf+bJqQU4kFCy1wT7\nPPqjex3eeYBSFkwTzx/cPNOAJkTXwIPziVGjJ1dvqaI4LKPel9QZ8Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhciswMkkrRDVBZmdSeml4\nTkhHeUh6UkVUb2tielkydmh5U0NmaGVWUEFVCndra0ZLeHYwaS9lMHladzVybWNX\nL1hsYlFPTzJCMElJZ2hWVGcyYTdCZkkKLS0tIHI0b3lyaldqNS9WT3BZUjVKMmZu\nZzBmakRFeHFxT0RMWCtONVIwV0VpT28KizkDpls5SVyypJY7aUF4v1DGdVLTMLLM\n2efp7mQB5YYvjKzXCiG+hYRWSbIS/5sHtE40ofmcCPijj7jY3wegUA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3WVlGdXFFVGo0RlZiYzFn\nZzdiWUpaV3ZhVlJEWkVmM2NZUlpBbGNWcUJrCnlITTBNL000WE0zY0lVeWplZmRh\nU0cxTnhWeVpEcEgwWnRzWDFiVld1ODgKLS0tICtHNFpyVEx1aGZIWnBhWXhCTElG\nNmVqeWgwNlFWbzkrd3FTcVo5ekRZbDAK8yGUHZbfwBgKuhY9lJN6X4ZewQLGqNjN\nysEAeLppIqLoz96lmFmhuIOju+z40wBq/lLn4YoAwkaMV9z0dvKA3Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHNHlhMkpscUJzdk5JMXVI\naGpjdEYxV3BvdFd5bjJLaUNQVndRWERkOXk4CnU5NW9aS0NNVEM4b2xvemtEc05V\nT3h4UjNOZ3F3ZW9VclQvOTNtcER0dU0KLS0tIGN5WisxWHBNQk9sYWlDbUp2eE8z\nR2RweVR4ZEo2ek45N0UwQWM1eVBFdUkK4e2noR5Xn8evKxh7GbAi7szT8uXBfn8K\nqgWlCWkUusUanRqJkmdi0y3zJxjtgs5bMU8JSF14hTwWveoIc/Ec+A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeUovMXBJRTQraUt4NGd2\nL2JkdWIyYWo0S1RJT0hlZlVaTldadFNRSTNRClc3c0QwYVJ2bkZBWmE5cG55TnQ0\nbGxOS21id2lrV2pia05XUW9nKzRaTXcKLS0tIG5tQmdXVkh4czdzRDZwa1l0bmN6\nSWcvRlpNTFNpZEdQRnBIclJiaUhSMGsKgEOyyfSggqWUrS9hW1t0e1nOFxXzHVq8\n3tTEiMwpQTtJ8WSC1H+gPBUxoSBt/5S56XCHDQrLCojIseYW8FFR1g==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-06-30T23:57:28Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNcmNwbU14bnFkTjMzYTZp\nblRGR0R0cDlrMDl6VDRRZmFGanM4NHY5Q1MwCjg3U2dtSGhHUmgrRzZVREZsL0ZH\nQTRyRTMxc05NaC85eW5Pc0ZJdHdFYzQKLS0tIDZFdGI0cTUxSlEwN1ZpMzFzMHlk\nWlJKNzZGN3N5bVk5cUI4T3Fya2NaMm8K3R99wPFdFiEtPCen2Wa9YzwxXnEcJobc\nuG8xvQUfUY/n0C2Ch4NJ5m9r+76WrnY3uG8f5o3OgWE9AiY1PUSZfQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZbjRLeFR2eUJzUENSajh6\nblFTMkNBRU5yak9BSUtnRnJpRjk1b1I5VzNJCk1ZVk8zaURnd3dISE1FWkpiYi9W\neFpXb2tvdExMT1ZlWlJoemdMUHczZEkKLS0tIGxkSGk5NzNOcVNNU0N4c3YxbFdE\nZGlMRzlRZWxaZ1ovSnU2Mlp1Qzc3Uk0Kf/jxKZF0dsYUFJHMXlk2mRV25s44nkOR\nxNHN9+Oq7h8fcPsE3dpFTajhVlbYNNY0Bkp1eBf6AVTfSQM5vhJUIg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzQnBHM0JJc0FJRUtnK1dV\ndmVwS3dnN2pKOHd1dU5SZ2hDT0grZEFHRFQ0ClRxcWw3NlM1Q0ZNVnY4N2JlUXpK\nb2l4cWVDNzViU1lYaStyK3pUM1Z3R28KLS0tIHhoVGtNUHVUUFJ3bFUraTJDdGY2\nMEc5ekh1a3hkTHZCNTRUVytieDhtNVkK7MR1CCPii79Yk3xJ4A+6oYnI54ykEXQM\nquEYdontLyX5s061p3PmHutEHOIGpQDQDDunbAnfIdSKngZuX/kY/A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxWGFIMFNOK1VneTk5Mkx3\naEQzdlo5WnFSQkplVjdyZFRveC95MVBHUTI4CmJDd200bnhUekRWOGExcWltUXUr\naGNmZERyT2FZQUNQN0JPU3V1MTFpSVkKLS0tIDJDcXgyN2trc29EcElRbHArWVdt\nSDdMT2xJS0J4QURiZFVjaU1ud2ZzY1UKecdHxE7a63R4qXg0sEPZ8K4JY3Opix2W\nVGs5fE6uV4NqGmOyiC+wAM+b5/5PJHX9TnhN1/QOwOUt5KNHljHV1g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUUTJLbEFsUW9LWEJrRjIz\nQ1dhZ2dGZFF1TDFSYUFmcERMemhaT1RXYUZzCmhCN2dSM0RJSDQ4WEtDcVN3RGhK\nUldnWHpnc1FWV2FOOGVINjZydCtBZ2MKLS0tIEJpaHB1KzBnQWg4ajA1dE9zU1FL\naHUrMnJQYk1BM1NpbEsrNWVBa1hXOGMK2gLe3Ddj9ErlzkR0RjlsmnEiY84VBMj8\nKV0NklDpxRdhYgrEKcJi6b+RZEKDLu1vlwGj70AzJUv3OK5uZoLCSw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGN3RZQUZUcThqWUpnQnhp\nc0lSK2lIbS9LSmpLZitnMGVkZEVJdjJaQ3pNCkZ6cG1mVm5kMzdhcHdVTjBuR0Nh\nNXZidDE0Z0greTZLanhrdm1ibHNzbWMKLS0tIERrQ0d1cEpUeit0UkkrbVBRU1dn\nSHZ5aWVkUWVNVSthOGp2eEtHZFM4L28K0fgqEtTV9z6IDRK7MXvgkIn3L+IZpVfP\nhJCcy1Qu48UZ8eCDaxPkG0VQwjdEHQXh+a+goMDaX+fmfpshQoF4qg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0WkhZZVlFaHFqeFp6aVdB\nMGRJSGVPRmJJeCttRjIva1pKM3EwMGVkdDFZCnFGTDdMc2ZURXR6NmRDTkRVYWg5\nbmd2V0FhdjNmQUx4b1NCRXEyU0lxL0UKLS0tIHJQRy82V0RkS2VNUGg0cnFFdHA4\nYUdMUStqM3NmRnVHQys2dzJ1cmhWYXcKxWRun88b2lClrI5zKl/XC8glXbE7nUFH\ncPdqSz4mYsPO8f5KZ8GZ8UZ68HBjrlS1vW6Zt1WmkUfXK3wOh2oKVg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0QjNKbGY0ajdnL1NDNzBU\nTlFuWnFWSFBManRTVnc3dHlER3c3OVQvTFdnCi8zVXplbzI5cktYOGxoUjdOY3BJ\nNC9jRlJwejZYQ09ReFBxN0RvSkpMcFUKLS0tIGxnczdZMnAvdm9PZWpUcGNSWndQ\nalFTM3VEUVhYeC96MTlZdFF4WmVZUUEKzEt0CxX88E7UggFs8zYARCC45L9aL8XM\nZdvAWnFmgEStZZUMb2pLUihGW97mjuOyyCQPzwrFRiu23HjHgoU0ZA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySFBJSklZTHo4dE45K1I4\nUlExQnFTYW5MRTVVSVRJWEl2S1FRaWp4ZUU0Ck9jTzhVUlo5RWZaMFQ2KzVONjJa\nalVtaGhQS3JIOWhsVE1MYm4zZjZ0aHMKLS0tIHpqUFV1VDc2bmpuYVp1ZzAyNmFW\nY01lL0RiYzVkWXd0RmlOcFNKc2duVW8KltSO3djgCUNcSZTHH1rWYqVdgVfZayGQ\ndCuL6pBM2wH2qJrPnVJ+JpwIFKiw+8cT8GKWUsnTqzbuvcLPrP0Yjw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIWXZXM29MWVlzQ2dEdi9L\nSkNlTXhUMkpwUC9UdXNwZTFsWjF1M0pZNzN3CkFKcHVyaHRzbVVNK3ZvRXBrTHNQ\naEhLL0puRklJbkgxK1VoaHZkRFF2ZzAKLS0tIFh2NVFJbTBmWnFueFlDWnkyVXBE\nZGdGTkhMQzdUQmpCdGFyRjVXeWZoMU0Km9gc4GdQFFL3+O54TT50YtqkDtFYQggF\nqbVBXNjX8saxODceotz5+Kb2M4nkNl9k94K0dPIdbckLZasTfFHuWw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnb2ZweHF4TUdBVHRrN2hJ\nQm5hSVlhelVYTEN1dWxvdC8zR2s1eXFDZ0hnClh4cFdqeFE4ZzdOVTRXZlJsaGtk\nc1NadHhhNVYrc0xBc3BmNk9Qd3k3T2sKLS0tIFVlcDV6c0UwL2R6Qm93a256UEpJ\nd0MyWC95NmFwdWw1MUlNajhMdzF0TVUKVbkgJowUZhmUWZxlcpxvnpobNRcKZSjj\nL6gIV0pBc0eDlTokgDSdQXfODckZLu4pH8m3ki6SFSfdEUKPQia4ew==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJSDQ5TFRXOTkvZmZLS1JP\nYkh5M2pXNjRoakt1cnd1R1hpZnREUEtJVUNJCldCTEhMaUVDY3pHOU9IUFh5Yml4\nN1VLd2w3Z2dFZFdqNjIxa2pWTFBKLzQKLS0tIFpXMDl3bitkaDJIYWxFaWdibSth\nRDI2SGpxVFdKSmIveFIvLzQrMEVySVEKUOwds3HEfKN1KtmkU1z3Q8c9RUkYH8my\n3+1vjanX2pgYhdEd4X0N6Yfn0JohFQWUbc2k426D0OSQQal3V38zqg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUDYwTUhkczVtQWIvM0Fq\nYTM2RGtDakd2dW5ZTk9jL2pBMUllVFJ1QkN3CkdqemhWYm1MWmE2YUdxdW9tVG9k\neTAvTHBQZm5rWFd5UjgvWUZPbU11ZjgKLS0tIHg3REMyc3RjMkNxZWkwd3lDc01u\ncHZPMjVhaVU1Y1d3RDVRMFIzRzk4d3MKL/kyWl4hR8iOI1/7RbDw20WKmKHf6xNM\nzc/rs8OVgOcLjjVLFq3XaQ65kI4uQ7NdbKJNv+PpDMg/7T/M5icEJg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN3BzeFU0d1lOSTVLWWw0\nZ21POE53bXRtVVcxbEZyY1dVMUxrNDdvd1FZClZmdk1MQVhXMDk4Zm8ya01lWURx\nSGRBVEp3RmQ4MldVOFE3OWlnbXkzQmMKLS0tIG82MGg4TjhGV2cvbEJtak1QdkpG\nUnMwM215WWF2UU5aNlhsUHpOcGQ4RkkK5V2ldURjODktz57kq/Sw95HM5xt+qsZb\nkt51MqxZvVfOqBTtBljwv//7HofLj2i7igz8L2NC2xOMJfNLT+SCrw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSWlXeWp2bmYrV3RTK2RX\namhyVmIxOXlENndPa0FCWUIwS2RoUkVHZG0wCjNva2IrbmhZU2lXanBuWDQ2Y1E4\ndVMxaTV5MmkrWDFjaWJtK3dyL3VmRm8KLS0tIHZ0bG05Nk93ZTlUTCttamcrK3B6\nbWlzendodm03M1VmYmJCVGJsKzJBalkKgVhZ/nmbqVhL+pBVOnM4pCPev6do+GP1\nSSeycSfnrLnxfSNFB7FXcq0VNshzeMo9RD/3qNjRfehXvXgzD5MnDQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2bjdDQXJYRythVTc0bDhD\ncWtWUmpBQXZrSW1PRThKS0VmK3A4V1FPa1JRCnhLVVFRT040bVdyZWVXRi80cS9j\nK2RvRjNWZ0ZieTh0WlA3aGxHZUdYWUkKLS0tIFI4TG84TVJnaXJEcDdYS29SZTRy\ndjYya1BmT0JhWVZQZ01FbTJsNGVvcnMK6yi1gBnKlXgEk/EzJUXMeXmsocDHF0ZM\n+yxXP/8YnBwpvArxO2hSNjjOrbU2NFfug4S1UAlYcBlK3Z7/tRAF9w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYmt3UWpVZHF0VDV3WCtj\neEpndlZkVjVsS3FiTXBUMWMxc04ramZndFNZCnQ4empHUTBCUEh1SWM2cEkya2Fn\nRk9FYlk1VmFzSURrWUg1djU2elpuNWMKLS0tIDIrOWpmQVZaVG9wc0VSa2Y5ZU5K\nZnNSQ1BGT2VYUVUvNzZZSkNJY2xBSTgKLHMhtBgBYxxoGQ7GfLzc0tR0rvccqCrX\n2Ibez3//z7MeF2ZDhx98m2i+JQ07/l8S8T0Y0nqDeuv8KWbvszCkcg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-04-27T21:10:14Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOHRvZ21vQzNJeXlVRjA1\nMzV0R0ZLN1JlbS81N2pnaEdsTGlCK0ZUeHhFCkN2T01DclNDbWtpQVQwbnZJazE5\nVVJtVGROdzJWOVQxeDc4eE5LWnpQZFkKLS0tIFg3UnFyOS9NeC9Wa3lJWWhmQWQ3\nbXpZMzhueE56VWlkRTFqN2EzMTJkelUKfikoZKm6z+nLooKWlHcr5Y204yPjWiuL\n8mezDTBk3c6YJ5vEGVWbrWoWPGqQ7kPPBUE1oJhoufGbtGOYNoMvcA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSZXVWT0U2T0ZncWNBY2Zp\nUFFJVExzVGttVWRlUVl6eGlEd1o4U1piSzBNCkxMNVlhRUlPK05WZTZURUt6R0po\nOEtscHRISmtuWU1wKzF2Z2tGZ0l0VUkKLS0tIFZnNnpRRXJPU2EwRlA2YTVaNnRj\nZEVFZWgzUWhCRndzZUJ5RDMvQmljUGcK6YWOAZmXSnoIwpBngkK7AHyzc/VGct+y\nEUIfj9K9DAEdkZZ0CfPMAOy6au5HvcWJ+ihmxfrDdtIyBdpaFmNrSA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2enNxVDBvNTl2REhpZkhN\nVHloWmpXYWx1YVZ2NEJNZkNNT0d2ZzdWUVRNCjdFVUlZbFIvRXNsZkxjSG1ITWZ6\nd1YyQmp5VG5hc1QyQzlhdzlpMDRxUWMKLS0tIHIrR215WWU4Vk0rYzEwelJOdXNG\naFZnT1doTmc1NGRvNEFLNUxScTBoZTgKKho/h/I1LlzOy5ZbEljQ9Q/3QNI9p9nN\n+g2lfENI4ZVbHJSWX9gQnj2DLVxW5hATUvl/3A4j6eUcPYU2QUQ+bw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDSVUwbE5uYWF6Nkc2bUlH\nbjdqcXl4dEhIS01idWVyUUFKOUwrOXdienpVCjk3bG5qN1YvRDBpemx5OFdnaGk2\ncHZRVXhKaTBzRFhqaFY4dUJUaHU4V2cKLS0tIE1kWVA1RXJZcFlzZEZ2T2NZVVEv\nVG1BM1pNc2ttcFdSUFdPcWkzdk5LVW8KaZm8fGw9SHPN1j2LWOs9WN7YIJ2k8fJK\nAfW7kmdKxW3zbxQfgjdfBPEeFg0fhOndsMWroF4u9kPWSnVPujC1gQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXdS9BL1FHSGhXQ2xZZWtD\nNGVrYW13aDgyaHpkMUFOTFpxZ2ZXYzFEUFNRClYwKy9DL1BvaE5MVzZDamdsc2sx\neDhaS2hjOWJreFFWb25NWjU4cE1ZQkUKLS0tIEhzUzJ3R2QwajJybG5aRE1QWEhs\nY3N4dU10N2R1VjQ5ZVByQnllSCtGTmsKy4CZvTIqEu7WuHixy8zuF4y1OmeCOplB\n5RscLEV3x45KRBnQRN/awO4cC4BD8O1Dm8nvgrhyQk/6uuZIZs8M0Q==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Vmw4c3ZpVk5acGZ2LzBE\nR1JzcDQyUDRqczJGZTRxRVdMRlBzTzJ3MUVVCllsNHJQTWFFU2xHRVVxM0Nka214\neXhHVDQyakFOeDkzMzZHZHZHZmZKVU0KLS0tIHBIclgreHFVYnBsK0JXd2RaR0tX\ncnRUUDRkZ09KMFRjVFh0Nm91L0R3TFUKfmspzS6jsU+2FjD7InLGw8i64dA3dB8L\nNhnHOkynnO2NjWNMvkP3ten7qXo38v6m1jCtJ50nkFjbaoCJboTbJw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaQUlWbU9Lb2s1emFTWTFa\nSHVhMUZLbzRnQ0ZtWnU3dnBqdy9TWjZrWHk0CnBMQk42NUh0Y2dvZTJvN1pTZ01q\nT1dDM05qKzJSallzM1NpZmJRR3hCQzgKLS0tIC9ocnVzREZzcUVRODc0VlUxUGJC\nZDFkQ3grOTRWQnRMTkY5dGROZjNtazgK80OFLrUqPic2aOHxDUEV6Re8AqOsrvt3\ni6rwinsrV+ppTvY5A6xFpxTq6LwopC9ATYjVjHJiIMYRxv+qjPbQbQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5YjdQSHpXTXM0MXBsNWEr\nWG04V2VFcDYzMUVYbWRDR2xHRGMwSnBudnpzCkJvRXBROXFuVUFwRDZXQmZqZ29u\nRUJLcGZKWnR1TDUrRnJrRmV0UEk0eUkKLS0tIGtnZ0YrckdZR0NSN3c2ckJ1ODhG\nRHRGSWdjakNDdFBkSkpGQm1SR2RnRGsKqfkVvM6OoIzogrIMJq86PHDHuM/JNAni\nOZegNK0WpYmq4/LpdE+09R0BRmpFWOyTJEpZ98okJAM8aKGtRh1Vog==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaa2lHdms3RzE4ZFZDNmFM\nTXZvU0g1dm9od1pIWVRwbXVvbFdSOVhJYVQ0Cm1TbUhkeE9kL3BVaGhRYjAzbERo\nME0wRHZjVHJQNFNGNm11S1I4OTB6UTgKLS0tIEorRU41cC84cVJaaGd5T2k4Sm1j\nRG9pRW50S3RwYmo5VFpGRWpvTkZRcTAKgnt43ZSC4QoNicEHTddUuM9UNYxwY4Jf\n/izPmE9vSRvv6O/WCuGDcbhRZpqXnEZKqTpFtVmhAcPwfEz0OzZfOA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTDVkblJVMGw2YUliQmVW\nK2h6Z3RVQS90L25vQkNLVDI1b2duWTVpaGlVCksvWENsMWwvWkRrQW5keG9tMlJa\nZW9KbmFyNTlyOXJ0M1pWM240ZHl3ancKLS0tIFFmQVpnOGlzeHdMb0F3RFltZGNW\nclBsczZBQ05LM2IrNlhCbEVoN3VMMDQKR8LBe0G9jSplKVwrHo+wuYT9UZM5QKks\n0JzgoewZYaWE6GoGuynCmgkJaKrU2WMEax2UcAn7LrWLwlx7zA+F2g==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbGFaakZoZ25ESzhNUmxR\nZWZYR0tDeGhXNzQ3UGRkMzJNTkp0b1RvMW1VCklLZTl3V1ZKVUlXZHp4MFpxUENU\nTFBmVEhqV1NoRk4xTmcwYzU0SGFYNEUKLS0tIGRQWHNsR2hqbThHODFZTHdTRkNj\nd2F1MjFBdjNPU1BJbUNJK0FibVdsVG8KmqaQb+r0YFvEJzvst66xB9HKYkRw0Zj7\nnMkAwiijAVcWjX95Sqvuo6jN2e70SmxZmRTnyZXOL11sR1U4/U/qGg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOTU1YnM2cStJSUYzRDFh\ndER2RmRNeWFZWW5YQ0dZY3MwWGlWWFJ2T2hFCjRNT2VSMExBYlN3blArd1NWY0RO\na3NUdkZSTzFwWUpjTUN2c3pKaHZHMVkKLS0tIHBkUUpLSGh3bTFTbUc1ckJPUHZv\nWUlQS1ZNVlA5Q3pqSnRRV1pkR1ltencK3RHk2lrcWcidkRO/MBmYgVllqP+ZTwmn\nNKj1gydSbtkboPTDu7tashWA54OY8OUEDFUERN0ZsMF+5wn+xCrzbw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6RzE0OWo5aTZQdlJnOWtz\nTjRzWlZlN3IxK2U4RWdYMFVId0FielZ5TUVFClJreXFRbEdGa2tNRitRc0licHJn\nMzIwVzRWL295d1IrLzZKMFRLUVY5bk0KLS0tIFpuVVVpa1gya0JmNDhvbDR1Mmg2\nQWxrVGUvTnNwWlJycHJXYktkNWJoRVEK2lkqOwiQCKBiCBToAuisVxN+Zk7KPZlA\n1EkBhG9BiD6udJ82cKJS3OJdaZ0rXu8XbIejwkSuyb4vA5tcgR1VOA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTnc5bzh4MS9rQnFXRlFy\nUmlJb2YycnB2ZlA0WnFmL0ltYUhMaGVqVUNJCk9Xa2ljSk1YVEF1dDRvajFhT09a\nY0RiMDd4MjRCdU1QTE1RbU53dEkrQ0EKLS0tIDlObjEvMGFQdkRmSHpSamhlMXd6\nM2FUeGo3am5SMldoKzZ2cDR5TjRGYTAKV6YX7BCK7U1y0OOX3cyHl3PwTcXdzs+C\n5Za16Gt3zpY1De5xuOGQSdLtuhbc+j2TXPP1BjS60KmZp3/benTH1A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUbzQrYmtpUWJQWmg2QjlI\nY2I2QVg3ZmFKT1NDdzNmR3d1cjFEZFVZNmxRCjI0b0M0UkFjWC9BS0NYOUNxaTVj\nUE1HWmFYUzhmdmxaRWVRNWVPQ1RDVzQKLS0tIFBMdHJ6Ykp4YTJqYUtxbitqa240\nMVozY2RNY3Z5RENJTk9zc0J2bXpFSlUKnQvUIA22JlVfEeWrnn8y3UiJ+Rqf1m5v\nFqxQ3ndh+j9rINpt3LvhuGdZqaTkewETdlTowVT73gLITieyRQUxDw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMXhCRzVmNGFCZVZ4cjZn\ndEdqK1htOWczL3M1bDVrb1hqeE1SNkY2Nm1ZCkdoeThESTZHNUhpZTVwa2kvV3lD\nMnF4T3dDTG03cU1SZ1BuY2pzcng1SncKLS0tIDkyS0NsYm44RkE3NG9MditRKzBD\nL2o1dFBURUI2T3lKckdHVllzb3FWUE0K+qzPZWUIXMeXWuzpAhNES9Hqi98Qj4jT\nU/uff1VLwjE3SDwaFwW7rVur8gews4Bxph1qzJfZVnRFvON6xGqzjQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcXlNMlFUaWhXbmlPc0Ir\nT2hRd3BMQUZ1TkVkWGlrdjJ5ZnhPdWhPbTFBCmdzazV5bzV0aTNNaTFpaDlBOWU5\naUdBTFlEeWM5T1Q3UGhrZWdGZkVPUzQKLS0tIEloSFVJd2JCNmY0VkpqTGppRE1p\nQ2Mvekx0RWN5dlhxWmwwaDVnUUVDdFEKJgyAed3yBaIBwfxypG7RKV+u80SiQV89\ntU4YMw0j7GvnkVhPenB8q0w3yrslCh35GDvKkaMpfp8jVFIpcrRXtA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-10-28T10:34:31Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2QnFzT1FabkJvWVJtbWdH\nWU9nQmp2cUlMNTRWM09HNGtibmNhNTRhT0JNCjNMdm5ScHhlWUN4d0R4cjRNVStz\nd0NLbkJpUHJtY1hYYWdmNjdTcWEwZk0KLS0tIDFmejRkQ2kzbGczc215QTluS1kv\ncHJtTHZZTmFIaDUvZHQ0UkVmNUlmVVkKoDh96fosdZ0W3FmnTkubzn648sSE0bPl\n+6V7njBcitIulPtv7vJS+RRe6CTI0hCATLw4wK08wj6y/QXUbeoI9Q==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBValk4T0NhN0lmdTdKa2lV\nSFZ5SFdES3Jva1NQNnpvNjdBNDVPYzdTb2trCmV0V1N0YVc0Z2hoMTNaZkY1ekRO\naUVIVG1XZ1BXTHhmaWNZSGNYTG1iR3cKLS0tIFNUbHRNSWFoN3ROc3VWQ1YvOUVW\nU1FZZXgwQzh2M0x6ZHFrb2M0OC9ScFUKqe0SbtfPJTkwevFZxdM/0Ts7WEGTwXmu\nnMf3r1e5G/QWHKFUL1KraoVD5Xt/GVqwUjfGJ0WPPPheI+yv42JXJA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQeEV4SEhsd2ZTUUtpMDVR\nNXVJYjBIYXlZNFJId3Q5aitmRk5jRExsMkVzCnRoMkQ0VUQ0RmEwWnpSSWd5cUdQ\nZ1dQS1BNM1Z5SW5MS3hvcVcweEdjZ0UKLS0tIElORFRxMWdKZUo3SzhxcHZFdW5D\nemxrYUxUUTQwRkJCSzZuSjd3SVgweHMKNyPLaqWCs6z5CkKin+pOezTQNuoiIqvx\nW5YyrphVL7q08LQLdATSRNRcaImxP0P0N8fhSVw2rvklYKRzTJOa4A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJNVVOT2UzeGY4WWpVWTYz\nTlB2ZmptekZZc3JYRVpBWU1tVTRDU3JKeHlrCmxYVkt0RWdJUkpRL2laaXVPNm8r\nTDRsWC9WRHpYOXlaZzhLNWFPWlBTWUUKLS0tIDRaemhtbmY3YU9RV2N4STAwcEZ3\nSHIydm40SENmdlBzamZjTTMvRWl5ZXcKMmbN8vCcY8Zr+UhmAHWit6D3TE0YTQ06\nwYsWQuQwvxmgf6k8BMpkaMt3Ech2RQJHCjpjHaLn3S92M3GeW4iymA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqT0lQTFVoV3FWenZhbkJ0\nNTlqUS9yV3JpU3VvbVNlSmF5RklFMTQzeHlFClM3K1duVXlkbHkrREQzQmYwYkNj\nU0ZvZEc2YlJxa3hSSFdwM3l3L3EzcnMKLS0tIGdub3d6NjVtaFV1OFhldDRqNnYx\nQ1NsOWxDZEFzZmswTVNmMkU4Qjl5cjAKIzP/HPFcomIOnkRSv6EQOmk2c8onhcxi\nLaG6xIjydye6W8sGRJxatthmRaxA0SsQKROwHj27EiW6GRZodSjKMw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFY2pTTWZSb1hWNHRUN0tt\ncEY0eHp5MzlkWDJFdnBRRTRQMWhLSk1zbmo4CmVtQkpQWjFIdWE0d3VTaU04QWY2\nMml1Y0RWVlUrbkdDZUJ0Y3QySkRDbU0KLS0tIE5PcmhhUitEWXpaaVlQSG01YzJs\nTkhpWFdUa0JDemh2eGh6dUcvbUxTMm8K9J9ygBOhYYHQmeFp7G4g/tlq5lFIplCd\nO63/B59Lv1tR+D0WMQCyTAIptocDZBUiBBWoGnrs3XSCcJ67ckbodw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCNVR1aWg1N3lnbHNoUlhK\nTjk0QkQ5aFFZMVhXeEtpa2ZQbkU0RkFxTVNjCjJEcjBHVXVLZWRMYVpwTFpMUnNN\naythd3BOdmgvekp0MUZCZmpmblV3UkkKLS0tIFRpZHFRLzhSdjBCN09rSUY5VUNT\nam1vQ3R2VnhUMThCN0dPU0ZlLy80Q28KehP5t4kIwUs9eu+8KWn5SCpvEKVnSHlJ\njR8RhRX7+f6hRP/OvryFxzGFmey3YApdHC3sDhvYjU8qDzs4xj7zAQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBESWhsQ2ZQeUl1Nk8zQ3NY\nVkdDU0FyQ09rcUZtWk8wT25tM252dktaT2s0CkJhWm1Qa1lXbG4zKzY0ZXRaSE5O\nNFVoQjZwSm9XeWc0OWZZQUFVUHFlOVUKLS0tIHY2bVJrWDhhdU95ZDZuU2VYQ3Bx\nMFZZek1GMVdXU1ZKUHBtcXRiaExRZUkKnC0H3LZVf1EFABg58sZDBXn8SEDbClVR\n10hSQFxe3XNQLFopJKdChTSeu4z50s8qgUPRCyqJYlPsrtSPqV8Odw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByMEVYTjlPVlBNeVQwSXBW\nMUxlQXlNMGhWRXlZdjBGdXRXWWlrcEI4U213CnFPQmlCNnQyOVg0KzBlQ0JvSS8y\nMXNibXlvWTNCcjVVYzdMczlQY2dONFUKLS0tIGh6REJWU3pxZDQrRWhqekxtd1hr\nSUlOK1Rka3ZsalgxRS8rWGdBTkZtcVkKfKlkXsWLtyAA7C0mPaJWyw6w4D2CjmfC\nMwLIYpKEUD2TIwkQZK7c0iY9m+KvsXtlh14cg+aasLpWHOYZ0ZLYww==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUVXFRRXNuTVJaUWRyRDIr\nV1FMcWlCUVluNWZZNUJxbU5UNzNsbHRLd1ZVCnlsUEYrWGtWem5DRElGaWxEN3d1\nWVNpT3d6d253RnhDamQ5Mkg0bDBQaWcKLS0tIHBiTDlMQmF4RVhqc2N1bDF5c0p1\nd3FiQjB6ckhJd3pSYVZHNjdhaEZEWnMKWdweoLlZg2CoB3VCjCo2J+injACNNXFp\nMjvWqzfibFetLNtxBpfCZY+7rhDDlT1njUBw1q1Dy1ZaIWOuJPYOwQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ZzFpcnJXV0dLTmo2VFpV\naDgzMk1kYk12N3hWbWsvSXhEVHRjVm11QkJJCnlkdXRvekJpY3lEdHlCOHZxUGlL\nbU1DUWY1Q3E3b29FODVxVE1ROWlYUXcKLS0tIFVUNmFxK21IMWtueXlBc3plMndm\nR3NtT0NucVdKNFBYdlBoREgxT1ZsYWsKUAU+e2Jcz4ZPQpFcZbe62MS4dAx/xKny\nLInxd6oJEefUaVmSOnRY050qdnig1vpE7yMkX52dhgj0xsTwGwN3qQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnVVRFWnVBNVp3Qndyb3p0\naDFnRHUrWlB3akg0WnRuNHNNQWpySFVWUEUwCjRYOWJxRkVEYmpoV2ZSR2RmcGdr\nTk9rN2FJOGIyRWpaMUpFUXJ6YTZmYkkKLS0tIE96djFyeitLM2Z0MjdaUExQS0Fu\nNlRhT21mWHZ4WXBJSDY5MDlKZnhQNTgKzjHbxqT2oiGl5jR1F52CWf4MSICdAJng\ndZwTQbtwUNfwhzxCdQ8a8qWR+mOGsd0WtBlrT3c6Yy83HV+PAePFcQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TWhwUWNDZVNudm8rOHpk\nMC9pL3pQWmhObFkrdk1zREZCeWxlL2pjeTA4CnBaVTg0LzRXVmt1Tm01VEgzWG9S\nY0NWaVY1QjdHL1EvcTBiZ2lrYnlEancKLS0tIERrT1RwUWNzZnNtQnVnb24wdnZY\nY2pmYUxBV0tzUWliSTg4VDFVK2kxOFkK6P3wplwx+ZDQdYh0H+BMZFA7qvV+5Z1b\nsakv5flbOXOAZxvIvFaDmSktIQnYdgMOmRoIW8q3gewCh1ddwkoxTg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4dTNwNVVmMUpCN1I2M25K\nR2VsY0c0Y0htbE15MktUZEt4bFlHU1BUaVcwCm9BK2EycTZFOEJBZ1VUZVdFZWhl\nY1dORGpXVzZwYml5c0tOUWZDVnEyWkkKLS0tIFdwNFFlVmhtVVZGRytDUWExU3BY\nWXgwbldKREdQUUVWSTRoR1AyNDc2VUEKy+b5IaoHLOha+kgVXlyOf2RuoXGvrMGJ\n1mYms2SLs+3/aUtz+nxGKm5H9aBSIf7wzjam6w9ASFIlQqd2Orpc9A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKODRpdWdQQW9vWGtCK20z\nS3pCSWY5eEN6SlBrWUFYQkkyWWhwcEk1a0ZJClBxQmd5ZWVXcXEwQUpzVWtWRWRE\nYW5vNGdRdHM2ckU1ei9NUmxldkx0TTAKLS0tIEowTElUMGpPN2tkeDY3U3JtOWpY\nMW1CQ0dQTTltdVFNK2hFaVlNUGI4dU0Kke+1y5EVssU3ze8jBuz+9hQ5BspwI8MC\nzlz5+lpZyfriHuLo8RmBmeRaQhfWMrXm42ah1VlasJj0xy9AJf5E/Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaeU5Bdjl6dDFhMXRuL3N1\nMVJ4V0VuQi91ZVZWTW9GbzVJR0FxejMrUEZvCkxxdjFzM3p6cjh1N0NFS3c3NWI3\nOHR0dWpUQ2Q1MzFyU2V6NlN5ajZqc1kKLS0tIGY0bG5BRG9zaVpqdWJZL0FhWS9o\nWi9Tend4c1RUK2QzVCtHalJBQ3l2THcKqUHi7CoHeUqRP/Dr/ZvLT2NgJJV3xC1D\nidZZgCRlrDnbcWnnx16tKyPNk/8pNGdnXbQrlgMMazkZEFqmznRZOg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsalRzRVFNVUlIdDBKWHF5\nMUJoTDNhd01SdFhkTVV6YmlUaGs3UGZ3VnpzCm8yY1hKNFczb0tWcUlsalNidmk5\nTWtUWVg4RE1TR0hrRVRPbEZSNEpmbE0KLS0tIGxuZzVrNjdRSmJsYUNwYkhabWxy\nVVYxVFV4V0VDbzV6VWVNaDVsNjVOMnMK4WjQZHawOgrqh37WvvEdOIqDZqMbrKSn\nQjZrfufh2+f7xy/vvAods2mYZAeNSGQJkc8vTsro/wLADhAuVqHl8A==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-11-23T00:57:17Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvN1Nza3hHWm1pVzlpMGxX\nUWZJZUIxZHhRSnh1OXVtRWhEZVYxUGluUEdBCkZlQ1NNTjNLLzQ0MXZseTk3V2ZZ\nWGlSclRsTHBNV1ppVkZHNEpxb1dtQjQKLS0tIGxlUm9NRXA2WHhaYW5LZ2VHbjMy\namJHeFdsaVR2amkrdmo1b1RiL1pDeU0K5E8Ps6QI+8v3X9xJ1gvw7Rp1nv2G0V2i\nlWM0U8KG8qnh8rLf4Izal+68Zpi2MCKQ8cfyCrW/ga+GoxDq6cc+2Q==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmQUhjbjJlSmhodmVySnps\neEJYQmZiRjZFWHFMWFNWRXFZTmpjYkJiNUNjCk1DZ3huQWdrM2xFUlBpUGlFTHNQ\nM00vMHlrN01KUzh0bnpzMGk3YkdqaFUKLS0tIEpUYXJ6a2ppc2d3M1d0UnVLdHZP\ncnhKNDQvMUc3Z0Npa2NJWmlwMWxxZW8Kj20MRuKlcaiuBo0ftD8ceqS1Zd46M0x7\nXaG2C1WVZEky1/n2xr/g5/Xh4Jdb0+4kcCvHUv47085Qb5cgI5GuPA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnckJVVTdsT1U0ZVU0YVJB\nbGJHeGdJTTlmNy8xdGxGT2hmSWNpeTBWbUNBClNOdkZFL0x0d1NNaHFYZXlIV1g2\nY290dDUxVTBSblA5K2NzZ2pxOEtoZmMKLS0tIEw4YzJDK1lCMENlYW9tRllBZDND\ndUVQbURuSkJxMmRoakdiUDJ2ZzN2aEEKqXLx7YKJJ5/Z7tAkoOHqaMoTOpzHW+bQ\najRypOcADmw82uKq715djN+WAq5Xj8/v+94jBCZFmE0/Z0dSTb6I4w==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZFN5SHpvS212b1RRZnRm\ncnJnRERvMndQWHhEdUgxVndLK29QYWNnWUF3CjI2NDZXZmxZazZBUG81dWgzaGsw\nNVdiYUxLQ3JNY05PYTRIYndHcytFUHMKLS0tIHoxRlhsZ3pITDlFdHRyWFRHMys0\nRk5hemc1aTFNVUQrajNjdHJ5Z1YzYXMKYOhinxnU+BTtsVisXDlfSdPl3SatBpO6\n1seSMvik/sPYH7J6D1PufOzHuSPi5bclEOANfN7Bvh2/cp6PoVwD7w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqRERDY0QzNkZtUDRMUkJU\nMVdUQ2FFNytKdW55WTdPT0tiV2JaVDNXemlvCjhhV2ZGTEYyU0dYNjdQMnBDMjAx\nMmkvL0JGWGh2UjluSFNZWVMrc1JpWTgKLS0tIGZnU1FOZ253bGFncE5UOXBKMVBz\nUHJ2NGloNjNKNUJha25jdXI3djg5cUkKD+k+RiS7LtDa8JlubZt/Tv3rlegqVjYF\nqlrundR3oVFJ+Y+VZh6a0xAtJexZ5BrdKtCAIgbdKAJUHF8lIB06WQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrYU1tclVUcjdXa0hYU3dQ\nYU5MVk1iZ2V6VXFOK2pYcnlUYi8xNmJjMUhjCmtkWXVDSkhKaEN5SXJLbk1EWksw\nSUlHZUVhbUQxQU41L2kza0hXSzdHY1UKLS0tIFpDZWJKTGt3bFh2VHpyelF1dUM4\nNW4vWkdsSExZOFY5QnAyQlJKQ0VwSGsKlHbOelGqu3KoznFoUdTD6CaEuV2p93yM\n2/oMEueWAy7pYldkHPEBg8cZNXdtvHOMEOU7sQcRyDB1ppXsMlIZMA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZktDRmpmb3JtVHQ2bUor\nWElQYkdCLzVPYWJUa1VXOThrMVo5SDBKcEFRClhaWHAwZHBaSU53OUsySEUyRG4z\nNS96UFFlSnBTR1EvbFBqOVhISEtXWVUKLS0tIHdKWGp3UmZ4akFwVlNNNnNWU0hH\neUdZUkpMQWMxS2JHUGhWMnBZSHRvZmsKP6Fv+Opk7rNK7SBcqvMgQ0/hfv/PXRYE\nALCySAJpo8oEZ5wVxucJgDsn/1pWWQe7LvownV0ZoVwTe83/Gr7+sQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXYXZmaHBwU0xGeWp1eWZi\nS3BVMUMxQjFOcWcyYklrSW1JSk5PZFlTYmdRCm80NVk5QzlBMTZBM3FNVTF1NlRQ\nVVBUVm14clJmTG80VVYyUGxZNGgzQU0KLS0tIGE2dXR2UVpOeTUxSGF5YzZDSHdw\nQ1h6YmJhdnBRZ082b2ZQV2JZeFV0ZTQKTmLPhr/zH99UvHilzOav2YfdkQOxATLO\n9HcliaQkix7LLasS8FnLQ1ttg59QDlXfkTkWhyMu5XI7O81Xj3oGvw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3b09vMDh4Y0hBQi9KWVB6\namRzeVdsN0h1Um5qWnJUci92UVUvWVBZVzE4Cnh2SkdWV201OUhrdEpvdTJDN1JQ\nR21VeE52VDZFZ0ZMd1BteCtoSGh6S3MKLS0tIHFld2tabUJJU0FjeW5QWXlFNkRs\nR2tGYkE3SnBlbmg1eVhBU25iMEk5L1kKNeoho0Nd74Uz0n+i16sg9G6gqPdlf7QT\naLzSlmTfYWHL5M8iX5drzrz9zRzU8GGV/q0w9jeUApXWniaDPLfZHw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYM0hnSE4ydTVIbE9aRGtC\nRlIvS1hxZkxLOU9PZ1N6N2N2RzRHWDRpK3hBCjNDVmdwaFY4M05SVy8raENzaFlE\nNVFiMzg0TUF2REdUZHM5N20wWjlHb0EKLS0tIFN1dmdTS2g5ZXZnY2NIWWZ2TS83\nOXZmWTN1aXZONTZ2NTB1endoTmxBYlUKZ6pl9sDpp2puQ8UYZhd0/JmFusTfdbWr\nhxpDyMQ+4kdXztFqVZd3/MRMPGpJrlsMIHsCVdFBu0hquHGZgph9rg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWSmh2VGxaRmJFbGM5Q0w2\nUU9WMHc1Vkw3eEltNUdpOGVMcUJyK3dicXk4CnRyQlJIMWxiemUxQnlyaHNZWFRW\nRDkxbnlOK0xBSmxtNFlqdU0wVERUV2sKLS0tIG1VZmlNUGFSajM1Z1pVSWVxZ3pv\nUWQ3VjdLS2tRNnRJcjZ1YnBtNGV1YlEKd6JrmzdBOYYOOH0RlxL+RBdFrNfkKVbw\naDXCfMinYw23jFF7ZWUJ5N+WXj0O012tHgco2IidQyoaTnRQ6aikjg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2NFlUYThYU2dDcjZHckJB\nSVB1T0RlZnJRclRtRkt0Y28wMGdIZnl1T1ZNCkxNT2I0SFUrb0dISms3eFJoZnor\nSjdNai9pa0I0aEFNSlFsdnVWSzFnV0EKLS0tIFYrWlM3elVIMkFxdTd6VEJ4UVE2\nVFQ5Si9nUEptV1BZU1pETnVHTk40d2MKDupPEAcm9smyOOCbv9TF74wA+gr2rBAf\nPYoKhUPfa+KkahdUQDu19DPrGHfKgUO44hAR+sMqKPM9+0r72La+BA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZQmRiK01oOEN3ekM1L1hX\nd0dXSnp3VFdBUVhhUE1YTnM0dDl5ME5Zd2dvCkNKVkJjK1F5OXpxcmRYSjFuNVQ0\nUG92QXdMTTNCZVdIYUtram1Vb1pNcEUKLS0tIEdGclhOQVlGT3VydjFUa29VdFRE\nNVhzR2kxU2V5VnFKUmRIaEJMWnVxZzgKAhIQZJypVZy16g5UX7s3gXzwUGP1p71V\nzKCzCRUYvY6XUXIpGbXUmZyLqpUxM1wDlTbngfFTAmWjFzJTUm2MqQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAybXFsQTdyV1hpV3lteGxl\ncC95eko1MHoremczOEo0dklHM0FqRlBjdG1RCksxck5kWlp0ZTIxUzAxWGhxdGMv\nUS9LRHc0T0l0NDV2bTVCTkFqTER0Z1kKLS0tIEZXaFBWVU4zOEJSVDRPWlVya1pW\ndEdUbE9WSmZCN01uaTdjekNuSmNOY2cKMIeJFfDJVDJPj7sXWJKRQIEmFrZzPm7f\nmM6F3C1oT5mJF8GSkZ7HMrdbVTi/JL2t7yqZpeC34HMnLXMPHPTayw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmSjg2aHFObDFhZzN0MWVT\nSE9PZTN1ODhwVHRuY2MwcHpDS1BqZGlCWlJZCjM3WkdVcjBVUXFXUi9tYU5qSDU5\nTVlBMVhJOHpCWThTbEd0cmI0RjJYcmMKLS0tIFlXOElrTnRDeGd2MlZIMHhsRmhF\ncU43czlWbE5ISkFNRDFzOS9ObDdJVzAKUOCvf2sPfLgDYKKbpd7chLZIBalBv3F6\n4ASwdtBe0/PIgLqFIT2XCf9tzVRCRjM8c7wNKC5mZD0KIUU1uIIQXg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyaFRxQTZpUUxnZXdKQ3dP\nRUVlNkEwT2N0N1FGbWZDejVLM3dPWks1aVNFCk0vTVU5UjlKWUI5YnhUb2QwK2w1\nYjMvYXA0NnhRczBZWGtZeUxQTkJBdUkKLS0tIEJWcm1OMjdMNm83dllSQW5yRnNl\nRWdudm43eEY4SVdpVkhsWjgwTjlhWlkKSprhV93WhL6uLPeW/dW2ZibXMghLMI9t\nTm50jEzcg+kp7AIxSUOdTjnPM5TG05q8edq1TLYOol+cbh0fPBH02g==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Rld0T0Q2dlo5dFdmRThC\nVUNOQVE4U2x0bVJKdUdiRURneVVEd0QyalRJCmFLVGQ3YUtKcXVESitpamJsZmly\nbU5zcE83MGRsRW5IZWFMaEsyUWNFVUUKLS0tIHl6dlZXeEJRU1IzNDFZbVdpZWx0\nZ1JuNktOdDBoSDEzT0dwSGZhSHJUc0EKxK/tsnz1VJ6KyBRL2A/WAZGdlb5M9dRR\nhwvLhrkV19Yjxq/GVWCyKabkjM2DgisFmdKnsgCRnml9isVOSiAVRA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-09-25T16:35:34Z",

View File

@@ -8,35 +8,39 @@
"age": [
{
"recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Wmx4QUZSZVFYM1NjRGxO\nRzhmSGV1RTViTjljM0kyaitsV05Jc1dQcXpNCjdFR1FWTFY0L1NkclVJQ2t2bk1P\nNk1WeDA4TE9Zcjc2MkNTeDltQk5TSW8KLS0tIGIvcmNVdDN6eldMamxrWUJ0ekZF\nWlcyN0haZFpmQVcyWS9vOFBHVmFiamMKwROo4FD5Y6TiSDK8byxAq4T9Rtvy1Dr+\nExZFzLeJxXBukLJgzxV8UpBNbcGejetyOZiH+GPwdwO4QKlMGiCsog==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTzlOSUpBMzJqWXlKb2pH\nQ0kzRi81SFc2eVFnVU9BWHV0a1dBNDdOSmdJCmE1N1ZwbkdvTmFxcGNia3dJOVlj\nUTBEK2tLSjgzNzFiYjF1WWhKUE5TancKLS0tIDZJMS91R2ZXVjVDb0xrS3lsYnZG\nd2IzNkREZC91ZlpXcFhHYUN6eSs2bVkKti3pFasMPr4WoUri4z5OGs1RGfBnnIHe\n73JH8C7kQjfvH0LlH6/C4vGtL0bdWwBvjJN1tc2FQ2n+8HrAaigrXA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEYzhiZjFVWEZidGJpRkpl\nOSszdUNiWDlIMVVTaGFVdi9oZjFoYVhwOFM0CjFNR0ZadExxZDBnOEU1eEJXaHda\nK0NyWmhHZzdSOHFHbEYrQnhwMTcxdVUKLS0tIGd0WjFOczRCSkpkZFpOSDdlTFhG\nQUFQMlRDa1YwM0F0N2U2ZFdxa3YrMFEKXNdULEzPEh3Wk+PxgRt0fypVNAaa682u\nMZBfQbNnAOVU5xlM66+YGWXY/ENWwr3nEauNKq7pWLZqQOCA9RnvvQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZdlMxbUpLbTIrdTFzOExu\nZ1hvNk5oKzRSb1hhTytHWVZ4UVliYVovQ3o0CnJpdTBnNUl2TUNnbk9XYzhSaThZ\nbGh4MU1UUG5qUFNDcC9ybTVLMmVodG8KLS0tIEF4ZFc3dE13R0FOSlNROXJGY2tq\ndFlnU2NlalBDbEpvQk8xbXp1eUdKWDQKxWGTu7pCg+RaXP6nXh+txalInuIZQxwk\nkAQ1OCRDvny1qbdiJUHXL1RLFyF+L5035LAxMF07WV1As5bUAxgwWg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1TFcvWll5RGZDeU5RYnpS\nb1hHcG4vbzBxL3RiRjl2eUhGbHFjSTJYZ0hBCkhyQUtacktuR0ZZNkM3cEdyMTd1\nVnpMZlNPL1NzcUZzWnd0VC9veW1jL0UKLS0tIHdQalI4N3ZRVFdsMEtCUllBREZG\nUmdQYVVqUGZ0QXJKODFvblgvYnRnZTgKKMmEswejP1HdEtg9hK10pRlt89Iz2iF8\npcZTBFjMnahLvxI4M8HCF7ESxI46jebyna43ZzELQQLPGLuZG0n3Bg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhL3RMWEdSM0c1bGY3dHkr\nenMwUzdLWFUxaE9YRHAzQU42ODN5WWRoYnhBCnU3czFnYlVmbDlSRE5WMGhkVjdS\nUzdMZkJGdWN5WU5nUkpKRDU3OWk1MEkKLS0tIFRrWWRDUitnMTVUYlMvYTZmYVBr\ndmRXZk9xQkZCaVZnU0pPRVZ4R3NxZ1EKzJh5qtYcEVntuIgqRar4GSEpmt0nkEfB\nL07HhgEYcSxnw84kMgesQPqkwgju6trMJr3+3+ZyhgAEp564UqgO2w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScXJpV2NkMFhJaDNGVHRZ\nVlRCZVkzSWFyTFRCUktYNFNYekwrNkpITUMwCkZlZm14Q2dZVGlFd2VZZWpmSFU4\nelhNVmE1b015YWYzcGRRa2VMS1ErMDQKLS0tIHFxaEJ4M3cxSHlNV2ppaFUzcTlk\nZWVuN085TnRES0ZGZko3Ym9vOXRhSEEKU8YZFKtDzokS1OXlqA3vBe2C5N7Em+Oq\nDh5N+2qrvqKUzT/YVg9j/YIPswrn2WMJ2xgMgT5VVK+2kn38fk4n4A==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1UkxWWDNSckZhQ1gvY1Nx\nSUlGZmRTV3EwaHg2ZVJIbk9nOG5UbVlDRlNFCmppT1dMUWtjZmo1N05WVlcwZmhN\nd1Bicm5aU2VQZWtBUGdnazVEYkdGT1UKLS0tIGFCYjk0VkcwUTQ3YUZ5bFdhWVJI\nMlNyaml6M2Z5QTcwcEdhYlNNVW9lRW8K3jdNQP3erbNCQKLZ1/gh28ohYijR1q5R\nK+4F16oo0vP0BgPckee9ymtcd+VCtP/TzwOklRIXT06qTRUTv7uDXA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hl50ufuxnqy0jnk8fqeu4tclh4vte2xn2d59pxff0gun20vsmv5sp78chj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPU3dCNlBYOXNFSlpFek1z\nS2w2Q25CaFZQU3hRRzZvUDEya2ZCMXBUUmtjCmh4RGNvclBMU1BlZmdGcjdSeXEz\nN0Y0ZFZuVFprazVaaE5jTlRQbHFYZE0KLS0tIC9RTDQ3bVdkUFE2ekptSkFJY2Zy\nMURtcGtpWG80c2VSRGNqdCt6QVZ1VjgKh9v1SIVvcMksZ+hSU4EILcoklauBTRyB\nS1BWRi22VvghCxVZfnG/fTYiu5ANc22GS8OpjM11r+SCtGkgLh5WEw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZWWFFZGVPTEVlc1hvQ3Qy\nUTNrc1Y0ek9ONlQ0RzlkbTNWangrdnFVZ0hNCkovNCtkaG9JUlpnRFJBMFE0Nmkz\nNXByUjlLRUd6RUV1OU53UjBEZnNjTUUKLS0tIDd4S3VrVDkvanlzZStkYllQT3NN\nYWxyYW1pVmt3djIyWVhtdEZCVlducmMKI94q+UTXpUGa/up0lVbWqmBYcPpuoLZD\neW2KbX2MTzotJVXlJyckYvaylEyyN1pKO37OViPnzik2cJYCyD8QSQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCWE9BKzZUMEw1bzhTdFhP\nWnA1RTA3b1VzaktORW4yWkdmcTVkcUtFL0ZrClVuZFZuM0RSU2NUcWlrQ1NVRTBX\nUjRWMVZsRU4ycHJkbUZ4ZGJMbDZKUVkKLS0tIGxJbHdHRGFxcHM5bFN6RUNtc2RU\nVE52bDlaSFFwWExUdktNdytoVDBtMmcKQVs4Z5qS7zkrGIDUhyRf+gWYUN9mFT6a\nYKpNTIBouycwPs6zQlsTPiuA+k8woqi83VOiTWC4+eye0YJrLNJjDQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN2ZkbzB1K0g4V0NPQ21x\nckQ3MFVwZzBwNDMzVk9mb0YvVmJxYm5hTTB3CkgzWTR1dUkrdkFKeDBjNWpCcnl2\nY2lCU0dPcUh1VXdWbExST29nRFFQcHMKLS0tIEFucEpGc2s4VGhGYWlQQW9Kd1pt\nTGY5YURVa1NYUit1UHpPVm4zTHNTVVUKTyKPabMpXBkiV9MSfoJr41DfJjzW6FVP\nHWVfUwoVeKEYVJEPYIcso4kywroBWJ5tBpeOdsbth9en3TOHHlBXCQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4VUJTcWx2UmRKQmFtb1V3\nMWd4dnpzUDlrSFdNcktlVjZYN01GdDNSQVJvCjZJb3VzZ0oxT3JsUTZPSVV6RnpV\ndHpBRSs4Nk5MdUt5QkREcEFVNTdBazgKLS0tIERIaXpnYjdYUW00bURqQ3dvdG5n\nRlQvZUkyYVpiUXFmVmhUM3krZnlQdncKFPHSykUf/Yuup+Hi6YrzEjfX8g0OnEL3\nNwaXWlY2/7vvbobaml79wzDxKaDRyyiXBANokQMg++trFaGn7Zd0Kw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvN2dvUDRXUWc2eVVoQ2xK\ndXc2anJZVjhobjJrODVlbXNuZjNhZ2lpNERnCkN6V0Y2QmlGNHVJM3JoQ3hwbHJo\nTncrVVN3R0wvQVAzb293WFpCV29BNUEKLS0tIFdhV3RSbkZQVVBxVWpuYzk4bzZt\nekhxSEFFMHRBZWZaOWxUVnFUbkluUFUK53HBDttykEO7lB/86d/ey4I4AZsLrvLm\n7J/rItqQeNJ1qYp/J3HSilbDZmQBI8jM95SP75tUPsmWndK1i9gHlA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuckxCSjYyam1wTE5IcGJ6\neGd6bXZBQXI3OFcwN0ZGREk5NlgyUjVVY0ZJCmg4MGJORkVsNU1FZVNCbnBKVis0\nZmhzSlZKdHVvRFJ1WkRJZlIwNnk2dzAKLS0tIFJYdGZjTU5Qc01XTTFRcCt0OXpJ\nbXdSb29qSkdPZjJreHM0YWYyUjlWR0kKVl9wkGFA5ol8+UU5B5uWn/429vR0kS9f\nuYR28B8lBQSsg1MwKK5RLfx49iBJ7YMLMSEYP8/D86i+MY//jSmv8A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHNXB2dkJoMzlJRlJxbGRS\nNTl2YmRUb3YxdEcwRnhuT1RHMTJMNm1MQUZjCkMrNGEzV05sdWc1OUROU2V2UVlJ\nSGl1bGxNSzBZalRZd0YyMElEbGlXZWsKLS0tIFRVQmpqRGNmTW9YaTN2Y0JtNHp6\nbkw0dTlmNVFwQkl6Q1ZIcUNxTGp2TzAKaZawNzF3mYl/m0X/IbfWL8WhLllF6fkT\nl5BQg3uMLC4pTnRcZHmBLrzRHhoOy9qLLkiimkQaseUhI+hAUt9bAQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NWlBd3RXQWk5NjhGZmJF\nSllscWJLbjVTL2NqRDk0bk1JckI2NVh5TkZvCjhZVFYvNlBnVHJQQ0lPQ3lMYzV2\naXFaMUpxQjVkeEdDYldCMW9Jcy9YeUUKLS0tIDNuK1FtZE9zSEhvMkt6cXBtc09Q\nVmorTVA5ZktFd0hEZnp0ajZyUkt5NEEKu7IV6PElauOcMthMP11os8/Y6mjTYHXv\nTw5/VAzPbttzkgvOyYlk3rCKuH1RzOh2Vty835cJzBFUAXlu3EIJSw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2023-03-03T08:41:07Z",

Some files were not shown because too many files have changed in this diff Show More