Compare commits

..
Author SHA1 Message Date
kurogeek 8eb4f40a36 bosona: repoint ERPNext site from tempoerp to b4lerp.newedge.house 2026-11-03 17:03:14 +07:00
kurogeek f121a3ec30 stellio: drop mt7530 get_stats64 kernel patch, in 6.18.58
Upstream 07d9958739 was backported to linux-6.18.y as af98611ad109
(2026-10-15) and is in the 6.18.58 nixpkgs now builds for stellio.
Applying the patch on top fails: patch(1) rejects all 10 hunks as
already applied, so the kernel build has been broken since the nixpkgs
bump brought 6.18.58.
2026-11-03 06:39:35 +00:00
kurogeek 570cc7c74a router: pin stellio mgmt ipv6SubnetId to 1
Restores the mgmt subnet id the dropped mkForce used, via cnx-network's
new per-VLAN option instead of overriding networkd config. Still skipped
on AIS's bare /64; unlike the VLAN-id default (10) it also fits a /61-/63
delegation.
2026-11-03 06:34:17 +00:00
kurogeek e66589a654 stellio: drop IPv6 workarounds now upstream in cnx-network
Both interim blocks are in cnx-network b2b5daa:

- 27c697a adds vlans.<name>.ipv6SubnetId (lan -> 0, others -> VLAN id),
  replacing the SubnetId=auto race the mkForce pins worked around. mgmt
  moves from 0x1 to 0xA; on AIS's bare /64 both are skipped alike.
- 45643d6 is the router-radv-deprecate unit this file carried a copy
  of. Keeping both concatenated the two scripts into one unit running
  two ip-monitor loops.
2026-11-03 06:24:48 +00:00
kurogeek bb3bdc9e2b flake.lock: bump cnx-network to b2b5daa
b2749dc -> b2b5daa (rev 203 -> 497). Pulls in cnx-network's new
hermes-agent input (uv2nix, pyproject-nix, ...) and its nixos-mailserver
pin d357b9f -> b3e735a.

All nixosConfigurations, checks, packages and the devShell evaluate.
2026-11-03 06:24:48 +00:00
kurogeek 68475ab2ba vars: update via generator data-mesher-node-identity (machine: vega) 2026-11-02 16:43:55 +07:00
kurogeek c0c83bee1c vars: update via generator data-mesher-node-identity (machine: tangra) 2026-11-02 16:43:55 +07:00
kurogeek 7ecb9d0a2b vars: update via generator data-mesher-node-identity (machine: stellio) 2026-11-02 16:43:55 +07:00
kurogeek 7b505fdcfa vars: update via generator data-mesher-node-identity (machine: sirius) 2026-11-02 16:43:55 +07:00
kurogeek f13f513c1d vars: update via generator data-mesher-node-identity (machine: rigel) 2026-11-02 16:43:55 +07:00
kurogeek c9b8541224 vars: update via generator data-mesher-node-identity (machine: rana) 2026-11-02 16:43:55 +07:00
kurogeek 4bb3fe1efe vars: update via generator data-mesher-node-identity (machine: ramus) 2026-11-02 16:43:55 +07:00
kurogeek caeaafe664 vars: update via generator data-mesher-node-identity (machine: procyon) 2026-11-02 16:43:55 +07:00
kurogeek 548558da9e vars: update via generator data-mesher-node-identity (machine: petra) 2026-11-02 16:43:55 +07:00
kurogeek e2bc58b7ee vars: update via generator data-mesher-node-identity (machine: neptune) 2026-11-02 16:43:55 +07:00
kurogeek 4c5248669f vars: update via generator data-mesher-node-identity (machine: mirach) 2026-11-02 16:43:55 +07:00
kurogeek 5b973c3e51 vars: update via generator data-mesher-node-identity (machine: hadar) 2026-11-02 16:43:55 +07:00
kurogeek 9a4da3ae26 vars: update via generator data-mesher-node-identity (machine: deneb) 2026-11-02 16:43:55 +07:00
kurogeek 56e397286d vars: update via generator data-mesher-node-identity (machine: cursa) 2026-11-02 16:43:55 +07:00
kurogeek 87ca5e8349 vars: update via generator data-mesher-node-identity (machine: canopus) 2026-11-02 16:43:55 +07:00
kurogeek 5247afa512 vars: update via generator data-mesher-node-identity (machine: buna) 2026-11-02 16:43:55 +07:00
kurogeek c9869083f5 vars: update via generator data-mesher-node-identity (machine: bosona) 2026-11-02 16:43:55 +07:00
kurogeek 50a01ba7fc vars: update via generator data-mesher-node-identity (machine: alpheratz) 2026-11-02 16:43:55 +07:00
kurogeek b3523208f7 vars: update via generator data-mesher-node-identity (machine: almach) 2026-11-02 16:43:55 +07:00
kurogeek c9c967f111 vars: update via generator data-mesher-node-identity (machine: alasia) 2026-11-02 16:43:55 +07:00
kurogeek 58f7189702 vars: update via generator data-mesher-node-identity (machine: adhil) 2026-11-02 16:43:55 +07:00
kurogeek 7cdbd12835 inventory/data-mesher: sign node identity certs for 10 years
All data-mesher-node-identity certs were signed on 2026-07-22 with the
default 90-day validity and expired on 2026-10-20, taking the whole mesh
down ("identity certificate not signed by network certificate authority"
is actually an expiry failure). Nothing rotates them automatically.

Requires `clan vars generate --generator data-mesher-node-identity
--regenerate` and a redeploy to take effect.
2026-11-02 16:43:55 +07:00
kurogeek 7abdbfec85 inventory/borgbackup: fix ssh key path for cursa, hadar, procyon, bosona, canopus, deneb
The sops vars backend deploys generator files at
/run/secrets/vars/per-machine/<machine>/<generator>/<file>; the hard-coded
rsh still pointed at /run/secrets/vars/borgbackup/borgbackup.ssh, so
borgbackup-job-alex could not find its key. Align with alasia's entry.
2026-10-27 06:15:06 +00:00
kurogeek 63614d824a inventory.json: update install time of alasia 2026-10-27 12:01:54 +07:00
kurogeek cc7cb5aae9 machines/alasia/facter.json: update hardware configuration 2026-10-27 12:01:53 +07:00
kurogeek 2f36a34a95 gtcm-file-uploader: bump to deadb17 (1.1.6)
upload-large-file untouched upstream; rev pinned in lockstep.
2026-10-27 02:20:53 +00:00
kurogeek 85d1591f05 think-gtcm, think-backend-gtcm: bump to deadb17 (1.1.6)
composer.lock unchanged; vendorHash moves with the version (embedded in
vendor/composer/installed.*).
2026-10-27 02:20:53 +00:00
kurogeek 9f76f7ddc2 gtcm-file-uploader: bump to c274e6d (1.1.5)
upload-large-file untouched upstream; rev pinned in lockstep.
2026-10-27 02:04:04 +00:00
kurogeek ee3059a8d7 think-gtcm, think-backend-gtcm: bump to c274e6d (1.1.5)
composer.lock unchanged; vendorHash moves anyway because the vendor FOD
embeds the root package version (vendor/composer/installed.*).
2026-10-27 02:04:04 +00:00
kurogeek 37496b974e modules/prometheus: run alertmanager as a static user
nixpkgs' alertmanager uses DynamicUser, so the `alertmanager` user only
exists while the service is running. The matrix-alertmanager-urlfile
secret is owned by that user; at boot sops-install-secrets cannot resolve
it and rejects the whole manifest, leaving /run/secrets empty (no ssh
host key, yggdrasil key, tor key, ...). Deploys masked it because the
dynamic user was resolvable via nss-systemd at switch time.

Create a static alertmanager user/group and disable DynamicUser.
2026-10-26 09:27:42 +00:00
kurogeek 452bd5f686 flake.lock: bump frappix to dbfa76d
frappe v15.113.3 -> v15.120.1, erpnext v15.115.0 -> v15.121.2,
insights v3.0.24 -> v3.12.6.
2026-10-26 07:54:10 +00:00
kurogeek d8193f0652 bosona, canopus, deneb: apply frappix fixups overlay 2026-10-26 07:54:10 +00:00
kurogeek ac2b1873b9 overlays: add frappix fixups for nixos-unstable (sql_metadata, rq_1)
Building the frappix hosts on nixos-unstable 3ec6363 fails in frappix's
python overlay:

- sql_metadata 2.12.0 pins sqlparse<0.6, nixpkgs ships 0.6.0. frappe
  itself needs 0.6 (MAX_GROUPING_TOKENS), and sql_metadata 3.x needs
  sqlglot >= 30 which nixpkgs lacks, so relax the pin. frappe only feeds it
  SELECT statements; the only regressions on 0.6 are CREATE TABLE IF NOT
  EXISTS name extraction.
- rq 1.16.2 test_parse_connection fails against redis-py 8.1 (extra
  himport_registry kwarg). Test-only; disable it.

nix flake check does not catch these: it only evaluates hosts.
2026-10-26 07:54:10 +00:00
kurogeek 466dcba07c gtcm-file-uploader: bump to fdb71d6 (1.1.4) 2026-10-26 07:09:32 +00:00
kurogeek 136daea65d think-gtcm, think-backend-gtcm: bump to fdb71d6 (1.1.4)
composer.lock unchanged; vendorHash moved with the php/composer bump in
nixos-unstable 3ec6363.
2026-10-26 07:09:32 +00:00
kurogeek 835373fa06 flake.lock: bump clan-core to 9486215
Also moves clan-core/{disko,nix-darwin,sops-nix}.
2026-10-26 06:53:54 +00:00
kurogeek d63c87d0bf ramus, tangra, flake, overlays: drop php backport (nixpkgs#576853 landed)
nixos-unstable 3ec6363 ships php83 8.3.36 / php85 8.5.12; the overlay
was warning that it had become a no-op.
2026-10-26 06:53:54 +00:00
kurogeek 477af55f8c flake: switch nixpkgs to nixos-unstable, bump to 3ec6363
nixos-unstable dropped nixVersions.nix_2_31, which clan-core still pins
for clan-cli (pkgs/clan-cli/flake-module.nix); override it to pkgs.nix in
the devshell.
2026-10-26 06:53:45 +00:00
kurogeek c909e483b8 bosona, canopus, deneb: apply posthog workaround overlay 2026-10-26 06:53:24 +00:00
kurogeek 70be800f77 overlays: work around nixpkgs#578265 (posthog broken with mcp 2)
nixpkgs#575004 bumped mcp 1.29 -> 2.2 and marked python3Packages.posthog
broken; only one optional MCP test fails. frappe needs posthog at runtime.
Skip that test and clear meta.broken until the upstream unbreak lands;
the overlay warns at eval time once it does.
2026-10-26 06:53:24 +00:00
kurogeek e04805f889 gtcm-file-uploader: bump to 225578a (1.1.3) 2026-10-23 09:31:23 +00:00
kurogeek 2b69d0d7c4 think-gtcm, think-backend-gtcm: bump to 225578a (1.1.3) 2026-10-23 09:31:23 +00:00
kurogeek 3612bb2d22 ramus, tangra, flake: apply php backport overlay
Covers every PHP consumer: think/think-backend (php83) on ramus,
wordpress pools (pkgs.php) on tangra, and the perSystem think packages.
2026-10-23 02:30:28 +00:00
kurogeek d13c64f314 overlays: backport nixpkgs#576853 (php 8.3.36/8.4.27/8.5.12)
Temporary overlay until the PR reaches nixpkgs-unstable. Fixes
CVE-2026-109618 and CVE-2026-109619. Becomes a no-op and warns at eval
time once the locked nixpkgs ships these versions; delete it then.
2026-10-23 02:30:27 +00:00
kurogeek 32b1d76dbf flake.lock: bump clan-core to a566329
Fixes devShell build on nixpkgs 5adc508: makeWrapper no longer word-splits
makeWrapperArgs, so clan-cli's "--unset LD_LIBRARY_PATH" single-string
args failed with "makeWrapper doesn't understand the arg". Upstream
clan-core main splits the tokens.
2026-10-22 11:12:07 +00:00
kurogeek 51d7b7eef0 Revert "personal-computer: vendor ipp-usb module with fixed avahi options"
This reverts commit d41fa2210a.
2026-10-22 17:32:15 +07:00
kurogeek a48f1c75c5 personal-computer: vendor ipp-usb module with fixed avahi options
nixpkgs' services/printing/ipp-usb.nix still sets the obsolete
services.avahi.publish.{enable,userServices}, warning on every machine
that enables ipp-usb. Disable the upstream module and carry a copy that
uses services.avahi.settings.publish; only that block differs.
2026-10-22 17:32:15 +07:00
kurogeek 8769b83d42 prometheus: write README
manifest.readme read an empty file, triggering a missing-readme warning.
2026-10-22 17:32:15 +07:00
kurogeek d19cd6c51e emmie: fix hunspell and firefox deprecation warnings
hunspellWithDicts -> hunspell.withDicts; pin programs.firefox.configPath
to the legacy .mozilla/firefox so the profile stays put when stateVersion
crosses 26.05.
2026-10-22 17:32:15 +07:00
kurogeek 862d46b157 samba: migrate obsolete services.avahi.publish options
Use services.avahi.settings.publish as nixpkgs now expects.
2026-10-22 17:32:15 +07:00
kurogeek 7d3dc6c1ee think-gtcm: pin to php83
Default php is now 8.5; composer.lock pins nette/* to php <= 8.4.
Matches think-backend-gtcm and the runtime module.
2026-10-22 17:32:15 +07:00
kurogeek 57e03a0557 emmie: remove wasabiwallet
Removed from nixpkgs (vendored ancient openssl, unmaintained).
2026-10-22 17:32:15 +07:00
kurogeek 47ce38ab4b stellio: drop image.repart.enable shim
nixpkgs declares the option again.
2026-10-22 17:32:15 +07:00
kurogeek e1e4687168 nextcloud: create admin user via occ
nixpkgs removed services.nextcloud.config.{adminuser,adminpassFile} and
now installs with --disable-admin-user. Add a nextcloud-admin-user oneshot
that creates the admin account from the vars secret after nextcloud-setup.
2026-10-22 17:32:15 +07:00
kurogeek 78d4960301 flake.lock: bump nixpkgs to 5adc508, clan-core to 86d72f3
clan-core bumped alongside: the previous rev used lib.licenses.apsl20,
which nixpkgs renamed to apple-psl20.
2026-10-22 17:32:15 +07:00
kurogeek ea9529aef6 gtcm-file-uploader: bump to 895092d (1.1.2) 2026-10-22 09:45:30 +00:00
kurogeek 9a2f3e1ada think-gtcm, think-backend-gtcm: bump to 895092d (1.1.2) 2026-10-22 09:45:30 +00:00
kurogeek a460f345d8 gtcm-file-uploader: bump to 421ed1f (1.1.1) 2026-10-21 09:45:39 +00:00
kurogeek e4133ad242 think-gtcm, think-backend-gtcm: bump to 421ed1f (1.1.1) 2026-10-21 09:45:39 +00:00
kurogeek 759e3ec61b default_thai_company: bump to c8fb983 2026-10-21 03:42:43 +00:00
kurogeek b99cb381c4 gtcm-file-uploader: bump to b67934a (1.1.0) 2026-10-20 08:38:30 +00:00
kurogeek 5540557413 think-gtcm, think-backend-gtcm: bump to b67934a (1.1.0) 2026-10-20 08:33:59 +00:00
kurogeek 50d923442a gtcm-file-uploader: bump to 0658ed2 2026-10-20 03:48:00 +00:00
kurogeek 243c66e0ab think-gtcm, think-backend-gtcm: bump to 0658ed2 2026-10-19 10:57:43 +00:00
kurogeek 72a17fea6e yggdrasil: replace dead public peers, add Asia/US peers
ygg.jjolly.dev:3443 has been offline 21 weeks and
[2602:fc24:18:7a42::1]:993 is unreachable (dropped from the public
peer list); every node was retrying both. Add measured-reachable
peers near the Asian (SG/JP/HK) and US nodes so tree parents are no
longer forced through two US-Midwest relays.
2026-10-09 09:35:15 +00:00
kurogeek 81f4e393e3 vars: update via generator zerotier-ip-mirach-b4l-network (shared) 2026-10-09 14:45:19 +07:00
kurogeek ff88a93280 vars: update via generator zerotier-ip-alpheratz-b4l-network (shared) 2026-10-09 14:44:45 +07:00
kurogeek 9abafc50aa vars: update via generator zerotier-ip-almach-b4l-network (shared) 2026-10-09 14:44:45 +07:00
kurogeek 08f87d630a vars: update via generator zerotier-identity-mirach (shared) 2026-10-09 14:44:44 +07:00
kurogeek b848f709fa vars: update via generator zerotier-ip-adhil-b4l-network (shared) 2026-10-09 14:44:44 +07:00
kurogeek 5174234e95 vars: update via generator zerotier-identity-mirach (shared) 2026-10-09 14:44:44 +07:00
kurogeek 3dcc71de4b vars: update via generator zerotier-identity-buna (shared) 2026-10-09 14:44:44 +07:00
kurogeek 04e1fc2f8e vars: update via generator zerotier-identity-alpheratz (shared) 2026-10-09 14:44:43 +07:00
kurogeek 6350dff658 vars: update via generator zerotier-identity-buna (shared) 2026-10-09 14:44:43 +07:00
kurogeek 5bad8fba97 vars: update via generator zerotier-identity-almach (shared) 2026-10-09 14:44:42 +07:00
kurogeek 9a861fa294 vars: update via generator zerotier-identity-alpheratz (shared) 2026-10-09 14:44:42 +07:00
kurogeek 4536b97366 vars: update via generator zerotier-identity-adhil (shared) 2026-10-09 14:44:42 +07:00
kurogeek 2d13588f77 vars: update via generator zerotier-identity-almach (shared) 2026-10-09 14:44:41 +07:00
kurogeek 46ad94c4b9 vars: update via generator zerotier-identity-adhil (shared) 2026-10-09 14:44:40 +07:00
kurogeek c915103634 phonebox: open port 80 on the yggdrasil interface so the ATA web UI proxy is reachable over ygg too 2026-10-09 07:02:35 +00:00
kurogeek 597f0df6b3 phonebox: move hello-world test extension from 999 to 99 so it is reachable cross-node (e.g. 2099 → rigel) 2026-10-09 03:27:17 +00:00
kurogeek 7f3457859e machines/stellio: stop deprecating a PD prefix the ISP re-delegates (sync with cnx-network 45643d6)
The ISP modem restart at 08:19 re-delegated the same /64 five seconds
after the PPPoE drop. networkd re-announced it at once, but the fixed
7 s radvd run kept sending preferred-lifetime-0 RAs for it, so clients
sat on a deprecated prefix until networkd's next periodic RA and IPv6
stayed broken for minutes.

Send one RA per radvd start, up to three 3 s apart, and skip each one if
the /64 is already back on the interface. Verified on stellio with the
rendered script: a prefix gone for good -> three RAs; the PD address
removed and re-added 4 s later -> two RAs, then "is back, leaving it
announced", client preferred again and pinging over v6.
2026-10-08 08:36:59 +00:00
kurogeek 31ebf2d081 machines/stellio: deprecate withdrawn DHCPv6-PD prefixes (interim copy of cnx-network fa11327)
After the reboot vlan-lan got its /64 at boot, but IPv6 still failed for
clients: the first PPPoE session lands on another AIS BNG, is torn down
minutes later, and the reconnect brings a different /64 (07:53
2405:9800:b911:91e3 -> 07:57 b910:1f5d). networkd announces the new
prefix at once but never deprecates the old one (systemd#29651), so
clients keep it preferred for up to 30 minutes and source selection
sends every connection from a dead address.

router-radv-deprecate.service watches vlan-* for networkd removing a
dynamic address and sends RAs with that /64 at preferred lifetime 0 via
a short-lived radvd (SIGKILLed: no shutdown RA). Identical script to the
upstream commit; drop once the cnx-network input is bumped past it.

Verified on stellio: the stale prefix flipped to deprecated on the
client at the first RA and pings resumed; a synthetic dynamic address
removed from vlan-lan produced the same RA end to end.
2026-10-08 08:13:23 +00:00
kurogeek b5077983ea machines/stellio: give the AIS /64 to vlan-lan, not whichever VLAN came up first
Clients on stellio's lan had no global IPv6. AIS delegates a single /64
over PPPoE; cnx-network's router service carves the VLAN prefixes with
SubnetId=auto, so vlan-mgmt took the whole prefix and vlan-lan logged
"Couldn't find a suitable prefix. Ran out of address space" -- no RA
prefix on lan.

Pin SubnetId: 0x0 on vlan-lan (the whole /64), 0x1 on vlan-mgmt (out of
range on a /64, harmless; works unchanged if AIS ever delegates wider).
Verified live via runtime drop-ins: vlan-lan got 2405:9800:b910:1f5d::/64
and a LAN client pinged 2606:4700:4700::1111 over v6.

Drop once cnx-network carries the per-VLAN `ipv6SubnetId` option
(cnx-network-clan commit 27c697a) and the input is bumped.
2026-10-08 07:54:39 +00:00
kurogeek 0a87664afd default_thai_company: bump version 2026-10-05 15:49:34 +07:00
kurogeek 7469976750 stellio: allow ssh over yggdrasil
The router service only opens SSH to the mgmt VLAN, the staging port
and the ZeroTier mesh. Also admit it on the yggdrasil interface (`ygg`,
as named by clan-core's service) so the box stays reachable when
ZeroTier is down. Interface-scoped, so a spoofed 200::/7 source on the
WAN never matches.
2026-10-02 07:53:47 +00:00
kurogeek c95f74be25 default_thai_company: e7d0a54 -> c6e6c12
Default Standard Sales Order as Sales Order default print format;
position line under signatures on print formats.
2026-10-01 04:51:37 +00:00
kurogeek 2e56bfc54c default_thai_company: 68f0817 -> e7d0a54
Picks up print formats for Purchase Invoice/Order and Sales Order,
Withholding Tax Certificate print format and button, DRAFT watermark
on unsubmitted certificates, Type of Income Paid on Tax Withholding
Category.
2026-10-01 04:19:20 +00:00
kurogeek b4c197e64c w-inventory: allow phone to access 2026-09-30 13:56:52 +07:00
kurogeek 0dc7595f43 poy-inventory -> w-inventory 2026-09-29 18:25:07 +07:00
kurogeek 92a3676b83 remove break 2026-09-29 15:42:11 +07:00
kurogeek 6039edfac6 phonebox: stop dnsmasq trying to write leases to /dev/null
dhcp-leasefile=/dev/null logs 'failed to write /dev/null: Invalid argument'
every lease; leasefile-ro is the supported way to run without a lease file.
2026-09-29 07:46:41 +00:00
kurogeek 5066d4ee46 phonebox: arm hardware watchdog and auto-reboot on panic
mirach and almach have each hung at least twice since July with nothing in
the journal or pstore, and stayed down until someone power-cycled the board.
RuntimeWatchdogSec was 0 and kernel.panic was 0, so a hung kernel/PID1 or a
panic could never self-recover.

Arm the systemd hardware watchdog (30s) and reboot 10s after a panic on all
phonebox nodes. Watchdog resets will show up as extra entries in
journalctl --list-boots.
2026-09-29 07:46:41 +00:00
kurogeek a80202e419 flake.lock: cnx-network (ppp0 KeepConfiguration=yes) 2026-09-28 15:17:32 +07:00
kurogeek 9b0368edc6 machines/stellio: backport mt7530 .get_stats64 atomic-context fix
The MT7531 on the Flint 2 is MDIO-attached and shares the SoC MDIO bus
with the 2.5G WAN PHY. On 6.18.49 mt7530_get_stats64 takes the MDIO
mutex under the RCU read lock that /proc/net/dev readers hold; when the
WAN PHY is renegotiating (PPPoE flap) the mutex is contended, the read
sleeps in atomic context and the box oopses:

  BUG: scheduling while atomic: zerotier-one/1748/0x00000002
  mt7530_get_stats64 -> dsa_user_get_stats64 -> dev_seq_show
  Unable to handle kernel paging request at 0000afa547cef5f0

Vendor upstream 07d99587396024932e02474c3a5bede71d108454 (mainline
2026-05-04, absent from linux-6.18.y). Applies to v6.18.49 with one
fuzz-1 hunk (6.18 still exports mt7530_switch_ops).
2026-09-24 09:21:59 +00:00
kurogeek d525e63050 machines/stellio: persist the journal
Storage=volatile left nothing behind for the 2026-09-23/24 reboots: the
last persisted entry is journald stopping during the 2026-09-22 switch,
and /sys/fs/pstore is empty too. Keep the eMMC-wear intent with a 256M
cap and a 1 min sync interval matching the ext4 commit=60.
2026-09-24 09:21:46 +00:00
kurogeek 9b8d15d583 machines/stellio: a new whitehouse router that uses clanService/router from cnx-network 2026-09-23 15:31:57 +07:00
kurogeek fa95098b7e frappix: bump default_thai_company to 68f0817 (main) 2026-09-17 10:55:54 +00:00
242 changed files with 2711 additions and 1880 deletions

No files matched your search

Generated
+433 -32
View File
@@ -2,7 +2,7 @@
"nodes": {
"arion": {
"inputs": {
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts_3",
"haskell-flake": "haskell-flake",
"nixpkgs": [
"frappix",
@@ -38,6 +38,22 @@
"type": "github"
}
},
"blobs": {
"flake": false,
"locked": {
"lastModified": 1604995301,
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"type": "gitlab"
}
},
"call-flake": {
"locked": {
"lastModified": 1687380775,
@@ -135,11 +151,11 @@
]
},
"locked": {
"lastModified": 1788346295,
"narHash": "sha256-k9Ol++FFhQuPya6ZNQwVhqZZkMvE1ytLtbdrbH5zkrI=",
"lastModified": 1792819087,
"narHash": "sha256-1bxllGymY+u3NvEX4FHMZyE4l9y0nRpvk/qLaPkwAjg=",
"ref": "refs/heads/main",
"rev": "b15797faeca7494a7fe5fde2691d93affa3d3e37",
"revCount": 15239,
"rev": "94862153f6e63016151d7c527f9e7bb3e96b0598",
"revCount": 15417,
"type": "git",
"url": "https://git.clan.lol/clan/clan-core"
},
@@ -148,6 +164,38 @@
"url": "https://git.clan.lol/clan/clan-core"
}
},
"cnx-network": {
"inputs": {
"clan-core": [
"clan-core"
],
"devshell": "devshell",
"flake-parts": [
"flake-parts"
],
"hermes-agent": "hermes-agent",
"nixos-mailserver": "nixos-mailserver",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": [
"treefmt-nix"
]
},
"locked": {
"lastModified": 1793614125,
"narHash": "sha256-BsitI6IZ727mUtKQjN14eYHbnAsskuDB5A9co16R+oc=",
"ref": "refs/heads/main",
"rev": "b2b5daaed71c7d4f0b9a8b3cf31b5c1469dfdc2e",
"revCount": 497,
"type": "git",
"url": "https://git.b4l.co.th/B4L/cnx-network-clan"
},
"original": {
"type": "git",
"url": "https://git.b4l.co.th/B4L/cnx-network-clan"
}
},
"data-mesher": {
"inputs": {
"flake-parts": [
@@ -164,11 +212,11 @@
]
},
"locked": {
"lastModified": 1788308203,
"narHash": "sha256-dCOb9YIJv9I2udjqukvjlGiTyOvGnO7zVbot0PxjBGk=",
"rev": "644c49bbf121b3e256bc83ce10b5d97813d9181d",
"lastModified": 1791886485,
"narHash": "sha256-/+7ayxD7PeW6wMQiHw20UJHmSTGN8Y5HXbn0zG/EgoA=",
"rev": "8d4d36437f9fff6ecaa34872bd53c3ed09ef5464",
"type": "tarball",
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/644c49bbf121b3e256bc83ce10b5d97813d9181d.tar.gz"
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/8d4d36437f9fff6ecaa34872bd53c3ed09ef5464.tar.gz"
},
"original": {
"type": "tarball",
@@ -176,6 +224,27 @@
}
},
"devshell": {
"inputs": {
"nixpkgs": [
"cnx-network",
"nixpkgs"
]
},
"locked": {
"lastModified": 1791918082,
"narHash": "sha256-oN9JrhRfHa7MUTdUq+11dHn7u0Z4WfEA4mhzBq0/zoQ=",
"owner": "numtide",
"repo": "devshell",
"rev": "9e29c63dde99a2d80c94b3d024c9768c01544558",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"devshell_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
@@ -203,11 +272,11 @@
]
},
"locked": {
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"lastModified": 1792526520,
"narHash": "sha256-3hSJlv8mUVnZPMWK2+CM7a9O+nR6Z4mCh27NfLCmTPc=",
"owner": "nix-community",
"repo": "disko",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"rev": "cedd626e11b635470fa6f9fdb8ad79b0075dd7f9",
"type": "github"
},
"original": {
@@ -249,7 +318,45 @@
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"cnx-network",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixpkgs"
@@ -269,7 +376,7 @@
"type": "github"
}
},
"flake-parts_2": {
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"frappix",
@@ -357,11 +464,11 @@
"std": "std"
},
"locked": {
"lastModified": 1787631179,
"narHash": "sha256-l+Zt5XNTD0f0ChkzDJURfQlFAgANIMrGYrk51SZEJKU=",
"lastModified": 1789106589,
"narHash": "sha256-RMQdAvDaa4eUcdePDqUGAhnyTtzKxc6a8abauy8bzb0=",
"owner": "kurogeek",
"repo": "frappix",
"rev": "fcb797886ae753b26a6e4415a7f2c19ba6adcf3b",
"rev": "dbfa76d84df6354bd7528c9d0c407387f66c3e33",
"type": "github"
},
"original": {
@@ -370,6 +477,57 @@
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"cnx-network",
"nixos-mailserver",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"cnx-network",
"nixos-mailserver",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"cnx-network",
"nixos-mailserver",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1675296942,
@@ -409,7 +567,57 @@
"type": "github"
}
},
"hermes-agent": {
"inputs": {
"flake-parts": "flake-parts",
"home-manager": "home-manager",
"nixpkgs": [
"cnx-network",
"nixpkgs"
],
"npm-lockfile-fix": "npm-lockfile-fix",
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1792043576,
"narHash": "sha256-i9rob9jtBv6XTV0acNbHDEUM+9f3ZsN1zJkD6dMBzTc=",
"owner": "NousResearch",
"repo": "hermes-agent",
"rev": "d923a5eb487a17c0a68801bba9ef0f56c81040a8",
"type": "github"
},
"original": {
"owner": "NousResearch",
"ref": "v0.22.2",
"repo": "hermes-agent",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"cnx-network",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1786487128,
"narHash": "sha256-ad60hrRVhH/bo3Jl1YLzO+QcS3mUNZr9LNJdzhMO2P4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f404edbfa4117810c96b97048299242fc50e5362",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
@@ -497,6 +705,35 @@
"url": "https://gti.telent.net/dan/liminix"
}
},
"matthew-hardware": {
"inputs": {
"disko": [
"clan-core",
"disko"
],
"flake-parts": [
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
],
"unf": "unf"
},
"locked": {
"lastModified": 1789393925,
"narHash": "sha256-8PHRxSVWxu1ol1AIrqiP8g6t+h9fLekTgDdpgRa+sME=",
"ref": "mc/wip",
"rev": "ebee3891bc9cbec584f611b4bcdf12618da25148",
"revCount": 34,
"type": "git",
"url": "https://codeberg.org/matthewcroughan/matthew-hardware"
},
"original": {
"ref": "mc/wip",
"type": "git",
"url": "https://codeberg.org/matthewcroughan/matthew-hardware"
}
},
"microvm": {
"inputs": {
"flake-utils": "flake-utils",
@@ -547,11 +784,11 @@
]
},
"locked": {
"lastModified": 1786845137,
"narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=",
"lastModified": 1792737899,
"narHash": "sha256-P0/GhewcEQmAbzq3QunNWY2jLJaYH9F6c/5dEM/jQ4M=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48",
"rev": "bb0b90dbd54e207100de72b5dcbe3188c98a4b69",
"type": "github"
},
"original": {
@@ -690,6 +927,31 @@
"type": "github"
}
},
"nixos-mailserver": {
"inputs": {
"blobs": "blobs",
"flake-compat": "flake-compat",
"git-hooks": "git-hooks",
"nixpkgs": [
"cnx-network",
"nixpkgs"
]
},
"locked": {
"lastModified": 1792432400,
"narHash": "sha256-ayqyWcMFat+/FPyzm6iABDWyQwqKw4dG5yY6tcmN53Y=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "b3e735a82a531e34ea3df3495026ca1d8a4e62fe",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"ref": "nixos-26.05",
"repo": "nixos-mailserver",
"type": "gitlab"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1712920918,
@@ -707,11 +969,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1788775869,
"narHash": "sha256-JRf1lSypbvKj6AzUZHpUA6YC1DirVuitZWOnRwcm+Ww=",
"lastModified": 1780365719,
"narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "58973d74f1893afe13f5902919803a0e99da0ca4",
"rev": "ffa10e26ae11d676b2db836259889f1f571cb14f",
"type": "github"
},
"original": {
@@ -721,6 +983,22 @@
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1792773339,
"narHash": "sha256-rZLrzrC6i+jnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3ec636362e1816bc2f0888fa0fa2c69f1bc9e504",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nosys": {
"locked": {
"lastModified": 1668010795,
@@ -736,6 +1014,28 @@
"type": "github"
}
},
"npm-lockfile-fix": {
"inputs": {
"nixpkgs": [
"cnx-network",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775903712,
"narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=",
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8",
"type": "github"
},
"original": {
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"type": "github"
}
},
"paisano": {
"inputs": {
"call-flake": "call-flake",
@@ -805,18 +1105,74 @@
"type": "github"
}
},
"pyproject-build-systems": {
"inputs": {
"nixpkgs": [
"cnx-network",
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": [
"cnx-network",
"hermes-agent",
"pyproject-nix"
],
"uv2nix": [
"cnx-network",
"hermes-agent",
"uv2nix"
]
},
"locked": {
"lastModified": 1785115949,
"narHash": "sha256-8AM37BfyGaL2v/SZyg4PupRxJ01Y4htvM+WrTjWrPpo=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "62c0d86027edb1c4f39a5facc09876348144f7c9",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"cnx-network",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1784591072,
"narHash": "sha256-zP/WaDxrRu8GANZM61+V2LT/7ycEEdoyLWn7M6WzU7M=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "e3b599ca2e7fcf93d4edf65d7f19bbf6491724f3",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": {
"inputs": {
"clan-community": "clan-community",
"clan-core": "clan-core",
"devshell": "devshell",
"flake-parts": "flake-parts",
"cnx-network": "cnx-network",
"devshell": "devshell_2",
"flake-parts": "flake-parts_2",
"frappix": "frappix",
"home-manager": "home-manager",
"home-manager": "home-manager_2",
"import-tree": "import-tree",
"liminix": "liminix",
"matthew-hardware": "matthew-hardware",
"nixos-images": "nixos-images",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"plasma-manager": "plasma-manager",
"treefmt-nix": "treefmt-nix"
}
@@ -829,11 +1185,11 @@
]
},
"locked": {
"lastModified": 1788337237,
"narHash": "sha256-gkSH8VUtCo6hnysNmb9DbTuDepH2t5pv+QWjP75xKAk=",
"lastModified": 1792809984,
"narHash": "sha256-KV+CaZX7QS0hcdKxwGKehDb1jmUgx6lbkTPpaoIW5Nw=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "fbf759290e0cb0a98dfc813a4eb7d53ad1dacb57",
"rev": "442449fa7b1fe6c692d0103ac9fc8f9e82931cf3",
"type": "github"
},
"original": {
@@ -920,11 +1276,11 @@
},
"systems": {
"locked": {
"lastModified": 1774449309,
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"lastModified": 1791244623,
"narHash": "sha256-uuanbkFk8a313Zfrxdcz8Us/yQtaxNnKJtX8v0ZPpd8=",
"owner": "nix-systems",
"repo": "default",
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"rev": "d36eeed142f88b5a636f2e3856a53c61654cf29b",
"type": "github"
},
"original": {
@@ -984,6 +1340,51 @@
"type": "github"
}
},
"unf": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1779596435,
"narHash": "sha256-ztzeJVOQDhQtE0z9DwtSWL+OyoWKZrAD4gzRRvUP9ug=",
"ref": "refs/heads/main",
"rev": "4f5ab30ee524f09126b09f42f249c0aba756459d",
"revCount": 6,
"type": "git",
"url": "https://git.atagen.co/atagen/unf"
},
"original": {
"type": "git",
"url": "https://git.atagen.co/atagen/unf"
}
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"cnx-network",
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": [
"cnx-network",
"hermes-agent",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1785277507,
"narHash": "sha256-9Tq3UDX2hD/aveW/HvkBlAmEwJTOlY5HQXJM+L5BGmE=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "5a836d395cbf5fc22670eb98dd4aa4fc4d406977",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"yants": {
"inputs": {
"nixpkgs": [
+18 -1
View File
@@ -31,7 +31,7 @@
inputs.home-manager.follows = "home-manager";
};
import-tree.url = "github:vic/import-tree";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
@@ -51,6 +51,23 @@
inputs.nixos-unstable.follows = "nixpkgs";
inputs.nixos-stable.follows = "nixpkgs";
};
matthew-hardware = {
url = "git+https://codeberg.org/matthewcroughan/matthew-hardware?ref=mc/wip";
inputs.flake-parts.follows = "flake-parts";
inputs.nixpkgs.follows = "nixpkgs";
inputs.disko.follows = "clan-core/disko";
};
# `router` clan service (site gateway: PPPoE, VLAN bridge, Kea/Blocky,
# nftables). Consumed via `module.input = "cnx-network"` in inventories/router.nix.
cnx-network = {
url = "git+https://git.b4l.co.th/B4L/cnx-network-clan";
inputs.clan-core.follows = "clan-core";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.treefmt-nix.follows = "treefmt-nix";
};
};
outputs =
{
+25 -10
View File
@@ -2,6 +2,7 @@
imports = [
./personal-computer.nix
./emmie.nix
./router.nix
];
clan = {
inventory = {
@@ -16,7 +17,10 @@
"deneb"
"bosona"
];
w = [ "sirius" ];
w = [
"sirius"
"stellio"
];
b4l = [
"rigel"
"rana"
@@ -64,43 +68,43 @@
roles.client.machines."cursa".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/cursa/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/cursa/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."hadar".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/hadar/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/hadar/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."procyon".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/procyon/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/procyon/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."bosona".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/bosona/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/bosona/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."canopus".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/canopus/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/canopus/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."deneb".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/deneb/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/deneb/borgbackup/borgbackup.ssh";
};
};
roles.client.machines."alasia".settings.destinations = {
alex = {
repo = "ssh://borg@10.0.10.225:2222/backup/alasia/backup";
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
rsh = "ssh -i /run/secrets/vars/per-machine/alasia/borgbackup/borgbackup.ssh";
};
};
};
@@ -113,6 +117,9 @@
roles.bootstrap.tags = [ "dm-bootstrapper" ];
roles.default.tags = [ "all" ];
roles.default.settings.interfaces = [ "ygg" ];
# default 2160h (90d) expired cluster-wide on 2026-10-20; node certs
# are only re-signed when `clan vars generate --regenerate` is run.
roles.default.settings.certificateValidity = "87600h";
};
auto-pull-update = {
@@ -306,10 +313,17 @@
"200:c8db:ea9b:5bdc:44ed:ad87:462a:6bd0"
];
roles.default.settings.extraPeers = [
"tls://ygg.jjolly.dev:3443"
"tls://[2602:fc24:18:7a42::1]:993"
"tls://133.18.201.69:54232"
"tls://153.120.42.137:54232"
"tcp://yg-sin.magicum.net:23901"
"tls://asia.deinfra.org:15015"
"tls://ygg5.mk16.de:1338?key=0000009611ae5391dc0aceea9f3fa6a0dc1279f4306059339e84bfb8b74d2f9b"
"tcp://leo.node.3dt.net:9002"
"tcp://ygg-kcmo.incognet.io:8883"
"tls://23.184.48.86:1443"
"tls://192.3.13.16:8118"
"tls://ygg-pa.incognet.io:8884"
"tls://mo.us.ygg.triplebit.org:993"
];
};
@@ -520,6 +534,7 @@
almach.settings = {
exporters.smartctl = { };
};
stellio.settings.exporters.smartctl = { };
};
};
+97
View File
@@ -0,0 +1,97 @@
# Site gateways: the `router` clan service from cnx-network-clan (see
# flake.nix input `cnx-network`, and that repo's modules/clan/router/README.md).
# One instance for the fleet; each site adds its gateway machine with the
# site's port / VLAN layout. `clan vars generate <gw>` then prompts for the
# PPPoE username/password.
{ lib, ... }:
let
# Admin mesh = the site's ZeroTier network. The service only opens SSH,
# metrics and iperf3 to this prefix, so the gateway must also be a peer of
# the same network (tag membership in default.nix). Prefix derivation as in
# cnx-network's modules/mesh-hosts.nix: fd + 8-byte network id + 0x9993,
# /88 covers every peer.
meshSubnet =
instance:
let
networkId = lib.fileContents ../vars/shared/zerotier-network-${instance}/network-id/value;
full = "fd" + networkId + "9993";
hextet = i: builtins.substring (i * 4) 4 full;
in
"${hextet 0}:${hextet 1}:${hextet 2}:${hextet 3}:${hextet 4}:${builtins.substring 20 2 full}00::/88";
in
{
clan.inventory.instances.router = {
module = {
name = "router";
input = "cnx-network";
};
roles.default.settings.mesh.subnet = meshSubnet "w-network";
# stellio: GL.iNet Flint 2 (GL-MT6000, MT7986a). Ports as named by the
# device tree in matthew-hardware: eth1 = the 2.5G "WAN" port, lan1 = the
# 2.5G LAN port, lan2-lan5 = the 1G LAN ports (DSA on the MT7531 switch).
roles.default.machines.stellio.settings = {
site = "white-house";
siteId = 8;
# PPPoE on the ISP's VLAN 10, as on the liminix router it replaces
# (routers/white-house); set to null if the ISP runs PPPoE untagged.
wan.interface = "end1";
wan.vlanId = 10;
# lan1 (2.5G): untagged mgmt port for on-site recovery. lan2-lan4 (1G):
# untagged client ports on lan. lan5 is the pre-cutover staging uplink:
# DHCP client into the old LAN (routers/white-house), SSH only, no VLAN
# membership; set stagingPort = null at cutover.
accessPorts = {
lan1 = "mgmt";
lan2 = "lan";
lan3 = "lan";
lan4 = "lan";
};
stagingPort = "lan5";
# Both MT7976 radios serve lan as an untagged access port, one SSID per
# band named like the GL-AR750 it stands in for ("GL-AR750" on 2.4 GHz,
# "GL-AR750-5" on 5 GHz) so clients roam over unchanged. Passphrases
# are the `wifi-GL-AR750-passphrase` / `wifi-GL-AR750-5-passphrase`
# vars prompts. Channels as on the old router. Check the band mapping
# with `iw phy` (mt7986: phy0/wlan0 = 2.4 GHz, phy1/wlan1 = 5 GHz).
wifi = {
enable = true;
countryCode = "TH";
networks = {
"GL-AR750".vlan = "lan";
"GL-AR750-5".vlan = "lan";
};
radios = {
wlan0 = {
band = "2g";
channel = 2;
wifi6 = true;
networks = [ "GL-AR750" ];
};
wlan1 = {
band = "5g";
channel = 36;
wifi6 = true;
networks = [ "GL-AR750-5" ];
};
};
};
# 10.1.<id>.0/24, router .1, DHCP pool .100-.199.
# ipv6SubnetId: which /64 of the DHCPv6-PD prefix the VLAN announces.
# lan defaults to 0 (whole prefix on AIS's bare /64). mgmt would default
# to its VLAN id (10); keep it at 1 so it also fits a /61-/63 delegation.
vlans = {
mgmt = {
id = 10;
ipv6SubnetId = 1;
};
lan.id = 20;
};
};
};
}
+1 -1
View File
@@ -43,7 +43,7 @@
"installedAt": 1775458442
},
"alasia": {
"installedAt": 1778661666
"installedAt": 1793077313
},
"bosona": {
"installedAt": 1779098893
+251 -100
View File
@@ -25,7 +25,10 @@
{
"index": 8,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -73,7 +76,10 @@
{
"index": 9,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -125,7 +131,10 @@
{
"index": 10,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -173,7 +182,10 @@
{
"index": 11,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -229,7 +241,10 @@
{
"index": 12,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -282,14 +297,21 @@
},
"driver": "piix4_smbus",
"driver_module": "i2c_piix4",
"drivers": ["piix4_smbus"],
"driver_modules": ["i2c_piix4"],
"drivers": [
"piix4_smbus"
],
"driver_modules": [
"i2c_piix4"
],
"module_alias": "pci:v00008086d00007113sv00001AF4sd00001100bc06sc80i00"
},
{
"index": 17,
"attached_to": 0,
"class_list": ["pci", "bridge"],
"class_list": [
"pci",
"bridge"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -337,9 +359,13 @@
],
"cdrom": [
{
"index": 22,
"index": 23,
"attached_to": 15,
"class_list": ["cdrom", "scsi", "block_device"],
"class_list": [
"cdrom",
"scsi",
"block_device"
],
"bus_type": {
"hex": "0084",
"name": "SCSI",
@@ -396,8 +422,14 @@
"unix_device_name2": "/dev/sg1",
"driver": "ata_piix",
"driver_module": "ata_piix",
"drivers": ["ata_piix", "sr"],
"driver_modules": ["ata_piix", "sr_mod"]
"drivers": [
"ata_piix",
"sr"
],
"driver_modules": [
"ata_piix",
"sr_mod"
]
}
],
"cpu": [
@@ -464,7 +496,9 @@
"spectre_v2_user",
"its"
],
"power_management": [""],
"power_management": [
""
],
"bogo": 4224,
"cache": 16384,
"page_size": 4096,
@@ -475,7 +509,7 @@
"fpu_exception": false,
"cpuid_level": 13,
"write_protect": false,
"tlb_size": 32764,
"tlb_size": 32766,
"clflush_size": 64,
"cache_alignment": 128,
"address_sizes": {
@@ -546,7 +580,9 @@
"spectre_v2_user",
"its"
],
"power_management": [""],
"power_management": [
""
],
"bogo": 4224,
"cache": 16384,
"page_size": 4096,
@@ -557,7 +593,7 @@
"fpu_exception": false,
"cpuid_level": 13,
"write_protect": false,
"tlb_size": 32764,
"tlb_size": 32766,
"clflush_size": 64,
"cache_alignment": 128,
"address_sizes": {
@@ -568,16 +604,20 @@
],
"disk": [
{
"index": 23,
"attached_to": 19,
"class_list": ["disk", "scsi", "block_device"],
"index": 22,
"attached_to": 20,
"class_list": [
"disk",
"scsi",
"block_device"
],
"bus_type": {
"hex": "0084",
"name": "SCSI",
"value": 132
},
"slot": {
"bus": 1,
"bus": 3,
"number": 0
},
"base_class": {
@@ -606,20 +646,20 @@
"value": 0
},
"model": "QEMU HARDDISK",
"sysfs_id": "/class/block/sda",
"sysfs_bus_id": "1:0:0:0",
"sysfs_device_link": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio2/host1/target1:0:0/1:0:0:0",
"sysfs_id": "/class/block/sdb",
"sysfs_bus_id": "3:0:0:0",
"sysfs_device_link": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio3/host3/target3:0:0/3:0:0:0",
"unix_device_names": [
"/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0",
"/dev/disk/by-path/pci-0000:01:01.0-scsi-0:0:0:0",
"/dev/sda"
"/dev/sdb"
],
"unix_device_name2": "/dev/sg0",
"unix_device_name2": "/dev/sg2",
"rom_id": "0x80",
"resources": [
{
"type": "disk_geo",
"cylinders": 8354,
"cylinders": 9399,
"heads": 255,
"sectors": 63,
"size": "0x0",
@@ -628,21 +668,30 @@
{
"type": "size",
"unit": "sectors",
"value_1": 134217728,
"value_1": 150994944,
"value_2": 512
}
],
"driver": "virtio_scsi",
"driver_module": "virtio_scsi",
"drivers": ["sd", "virtio_scsi"],
"driver_modules": ["sd_mod", "virtio_scsi"]
"drivers": [
"sd",
"virtio_scsi"
],
"driver_modules": [
"sd_mod",
"virtio_scsi"
]
}
],
"graphics_card": [
{
"index": 16,
"attached_to": 0,
"class_list": ["graphics_card", "pci"],
"class_list": [
"graphics_card",
"pci"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -699,8 +748,12 @@
},
"driver": "bochs-drm",
"driver_module": "bochs",
"drivers": ["bochs-drm"],
"driver_modules": ["bochs"],
"drivers": [
"bochs-drm"
],
"driver_modules": [
"bochs"
],
"module_alias": "pci:v00001234d00001111sv00001AF4sd00001100bc03sc00i00"
}
],
@@ -708,7 +761,10 @@
{
"index": 24,
"attached_to": 7,
"class_list": ["usb", "hub"],
"class_list": [
"usb",
"hub"
],
"bus_type": {
"hex": "0086",
"name": "USB",
@@ -781,8 +837,12 @@
"hotplug": "usb",
"driver": "hub",
"driver_module": "usbcore",
"drivers": ["hub"],
"driver_modules": ["usbcore"],
"drivers": [
"hub"
],
"driver_modules": [
"usbcore"
],
"module_alias": "usb:v1D6Bp0001d0618dc09dsc00dp00ic09isc00ip00in00"
}
],
@@ -790,7 +850,9 @@
{
"index": 5,
"attached_to": 0,
"class_list": ["memory"],
"class_list": [
"memory"
],
"base_class": {
"hex": "0101",
"name": "Internally Used Class",
@@ -814,7 +876,9 @@
{
"index": 21,
"attached_to": 16,
"class_list": ["monitor"],
"class_list": [
"monitor"
],
"base_class": {
"hex": "0100",
"name": "Monitor",
@@ -960,7 +1024,10 @@
{
"index": 25,
"attached_to": 24,
"class_list": ["mouse", "usb"],
"class_list": [
"mouse",
"usb"
],
"bus_type": {
"hex": "0086",
"name": "USB",
@@ -996,7 +1063,9 @@
"model": "QEMU USB Tablet",
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/usb1/1-1/1-1:1.0",
"sysfs_bus_id": "1-1:1.0",
"unix_device_names": ["/dev/input/mice"],
"unix_device_names": [
"/dev/input/mice"
],
"unix_device_name2": "/dev/input/mouse0",
"resources": [
{
@@ -1037,11 +1106,18 @@
"hotplug": "usb",
"driver": "usbhid",
"driver_module": "usbhid",
"drivers": ["usbhid"],
"driver_modules": ["usbhid"],
"drivers": [
"usbhid"
],
"driver_modules": [
"usbhid"
],
"driver_info": {
"type": "mouse",
"db_entry_0": ["explorerps/2", "exps2"],
"db_entry_0": [
"explorerps/2",
"exps2"
],
"xf86": "explorerps/2",
"gpm": "exps2",
"buttons": -1,
@@ -1054,7 +1130,9 @@
{
"index": 18,
"attached_to": 13,
"class_list": ["network_controller"],
"class_list": [
"network_controller"
],
"bus_type": {
"hex": "008f",
"name": "Virtio",
@@ -1079,7 +1157,9 @@
"model": "Virtio Ethernet Card 0",
"sysfs_id": "/devices/pci0000:00/0000:00:12.0/virtio1",
"sysfs_bus_id": "virtio1",
"unix_device_names": ["ens18"],
"unix_device_names": [
"ens18"
],
"resources": [
{
"type": "hwaddr",
@@ -1092,8 +1172,12 @@
],
"driver": "virtio_net",
"driver_module": "virtio_net",
"drivers": ["virtio_net"],
"driver_modules": ["virtio_net"],
"drivers": [
"virtio_net"
],
"driver_modules": [
"virtio_net"
],
"module_alias": "virtio:d00000001v00001AF4"
}
],
@@ -1101,7 +1185,9 @@
{
"index": 26,
"attached_to": 18,
"class_list": ["network_interface"],
"class_list": [
"network_interface"
],
"base_class": {
"hex": "0107",
"name": "Network Interface",
@@ -1115,7 +1201,9 @@
"model": "Ethernet network interface",
"sysfs_id": "/class/net/ens18",
"sysfs_device_link": "/devices/pci0000:00/0000:00:12.0/virtio1",
"unix_device_names": ["ens18"],
"unix_device_names": [
"ens18"
],
"resources": [
{
"type": "hwaddr",
@@ -1128,13 +1216,19 @@
],
"driver": "virtio_net",
"driver_module": "virtio_net",
"drivers": ["virtio_net"],
"driver_modules": ["virtio_net"]
"drivers": [
"virtio_net"
],
"driver_modules": [
"virtio_net"
]
},
{
"index": 27,
"attached_to": 0,
"class_list": ["network_interface"],
"class_list": [
"network_interface"
],
"base_class": {
"hex": "0107",
"name": "Network Interface",
@@ -1147,14 +1241,19 @@
},
"model": "Loopback network interface",
"sysfs_id": "/class/net/lo",
"unix_device_names": ["lo"]
"unix_device_names": [
"lo"
]
}
],
"pci": [
{
"index": 13,
"attached_to": 0,
"class_list": ["pci", "unknown"],
"class_list": [
"pci",
"unknown"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -1211,14 +1310,21 @@
},
"driver": "virtio-pci",
"driver_module": "virtio_pci",
"drivers": ["virtio-pci"],
"driver_modules": ["virtio_pci"],
"drivers": [
"virtio-pci"
],
"driver_modules": [
"virtio_pci"
],
"module_alias": "pci:v00001AF4d00001000sv00001AF4sd00000001bc02sc00i00"
},
{
"index": 14,
"attached_to": 0,
"class_list": ["pci", "unknown"],
"class_list": [
"pci",
"unknown"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -1274,8 +1380,12 @@
},
"driver": "virtio-pci",
"driver_module": "virtio_pci",
"drivers": ["virtio-pci"],
"driver_modules": ["virtio_pci"],
"drivers": [
"virtio-pci"
],
"driver_modules": [
"virtio_pci"
],
"module_alias": "pci:v00001AF4d00001002sv00001AF4sd00000005bc00scFFi00"
}
],
@@ -1283,7 +1393,10 @@
{
"index": 6,
"attached_to": 17,
"class_list": ["storage_controller", "pci"],
"class_list": [
"storage_controller",
"pci"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -1325,7 +1438,7 @@
"resources": [
{
"type": "io",
"base": 49152,
"base": 49216,
"range": 64,
"enabled": true,
"access": "read_write"
@@ -1340,14 +1453,21 @@
},
"driver": "virtio-pci",
"driver_module": "virtio_pci",
"drivers": ["virtio-pci"],
"driver_modules": ["virtio_pci"],
"drivers": [
"virtio-pci"
],
"driver_modules": [
"virtio_pci"
],
"module_alias": "pci:v00001AF4d00001004sv00001AF4sd00000008bc01sc00i00"
},
{
"index": 15,
"attached_to": 0,
"class_list": ["storage_controller", "pci"],
"class_list": [
"storage_controller",
"pci"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -1437,8 +1557,12 @@
},
"driver": "ata_piix",
"driver_module": "ata_piix",
"drivers": ["ata_piix"],
"driver_modules": ["ata_piix"],
"drivers": [
"ata_piix"
],
"driver_modules": [
"ata_piix"
],
"module_alias": "pci:v00008086d00007010sv00001AF4sd00001100bc01sc01i80"
}
],
@@ -1448,33 +1572,10 @@
"unknown": [
{
"index": 19,
"attached_to": 6,
"class_list": ["unknown"],
"base_class": {
"hex": "0000",
"name": "Unclassified device",
"value": 0
},
"sub_class": {
"hex": "0000",
"name": "Unclassified device",
"value": 0
},
"vendor": "Virtio",
"device": "",
"model": "Virtio Unclassified device",
"sysfs_id": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio2",
"sysfs_bus_id": "virtio2",
"driver": "virtio_scsi",
"driver_module": "virtio_scsi",
"drivers": ["virtio_scsi"],
"driver_modules": ["virtio_scsi"],
"module_alias": "virtio:d00000008v00001AF4"
},
{
"index": 20,
"attached_to": 14,
"class_list": ["unknown"],
"class_list": [
"unknown"
],
"base_class": {
"hex": "0000",
"name": "Unclassified device",
@@ -1492,16 +1593,54 @@
"sysfs_bus_id": "virtio0",
"driver": "virtio_balloon",
"driver_module": "virtio_balloon",
"drivers": ["virtio_balloon"],
"driver_modules": ["virtio_balloon"],
"drivers": [
"virtio_balloon"
],
"driver_modules": [
"virtio_balloon"
],
"module_alias": "virtio:d00000005v00001AF4"
},
{
"index": 20,
"attached_to": 6,
"class_list": [
"unknown"
],
"base_class": {
"hex": "0000",
"name": "Unclassified device",
"value": 0
},
"sub_class": {
"hex": "0000",
"name": "Unclassified device",
"value": 0
},
"vendor": "Virtio",
"device": "",
"model": "Virtio Unclassified device",
"sysfs_id": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio3",
"sysfs_bus_id": "virtio3",
"driver": "virtio_scsi",
"driver_module": "virtio_scsi",
"drivers": [
"virtio_scsi"
],
"driver_modules": [
"virtio_scsi"
],
"module_alias": "virtio:d00000008v00001AF4"
}
],
"usb_controller": [
{
"index": 7,
"attached_to": 0,
"class_list": ["usb_controller", "pci"],
"class_list": [
"usb_controller",
"pci"
],
"bus_type": {
"hex": "0004",
"name": "PCI",
@@ -1568,15 +1707,25 @@
},
"driver": "uhci_hcd",
"driver_module": "uhci_hcd",
"drivers": ["uhci_hcd"],
"driver_modules": ["uhci_hcd"],
"drivers": [
"uhci_hcd"
],
"driver_modules": [
"uhci_hcd"
],
"driver_info": {
"type": "module",
"db_entry_0": ["uhci-hcd"],
"db_entry_0": [
"uhci-hcd"
],
"active": true,
"modprobe": true,
"names": ["uhci-hcd"],
"module_args": [""],
"names": [
"uhci-hcd"
],
"module_args": [
""
],
"conf": ""
},
"module_alias": "pci:v00008086d00007020sv00001AF4sd00001100bc0Csc03i00"
@@ -1682,7 +1831,9 @@
"name": "RAM",
"value": 7
},
"memory_type_details": ["Other"],
"memory_type_details": [
"Other"
],
"speed": 0
}
],
+8 -5
View File
@@ -5,10 +5,10 @@
...
}:
let
sitename = "tempoerp.newedge.house";
sitename = "b4lerp.newedge.house";
in
{
clan.core.settings.machine.description = "VM machine that host ERPNext for tempo";
clan.core.settings.machine.description = "VM machine that host ERPNext for Buildforlife";
imports = [
inputs.frappix.nixosModules.x86_64-linux.frappix
];
@@ -17,6 +17,9 @@ in
inputs.self.overlays.frappixLibsOverlay
inputs.self.overlays.frappixPythonOverlay
inputs.self.overlays.frappixToolsOverlay
inputs.self.overlays.frappixAppsOverlay
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
inputs.self.overlays.frappixFixupsOverlay
];
clan.core.vars.generators.frappix = {
@@ -41,13 +44,13 @@ in
services.frappe = {
enable = true;
project = "poyerp";
project = "b4lerp";
gunicorn_workers = 2;
adminPassword = config.clan.core.vars.generators.frappix.files.adminPassword.path;
apps = [
pkgs.frappix.erpnext
pkgs.frappix.hrms
pkgs.frappix.crm
pkgs.frappix.default_thai_company
];
sites = {
"${sitename}" = {
@@ -56,7 +59,7 @@ in
"frappe"
"erpnext"
"hrms"
"crm"
"default_thai_company"
];
};
};
+2
View File
@@ -17,6 +17,8 @@ in
inputs.self.overlays.frappixLibsOverlay
inputs.self.overlays.frappixPythonOverlay
inputs.self.overlays.frappixToolsOverlay
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
inputs.self.overlays.frappixFixupsOverlay
];
clan.core.vars.generators.frappix = {
+2
View File
@@ -26,6 +26,8 @@ in
inputs.self.overlays.frappixPythonOverlay
inputs.self.overlays.frappixToolsOverlay
inputs.self.overlays.frappixAppsOverlay
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
inputs.self.overlays.frappixFixupsOverlay
];
fonts.packages = [ pkgs.tlwg ];
+2 -1
View File
@@ -5,7 +5,7 @@
...
}:
let
domain = "poy-inventory.newedge.house";
domain = "w-inventory.newedge.house";
in
{
clan.core.settings.machine.description = "VM machine that host Inventree system for Poy";
@@ -79,6 +79,7 @@ in
secretKeyFile = config.clan.core.vars.generators.inventree.files.secret-key.path;
adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
settings.INVENTREE_SITE_URL = "https://${domain}";
settings.INVENTREE_FRONTEND_SETTINGS = ''{"mobile_mode": "allow-ignore"}'';
};
system.stateVersion = "25.11";
+3 -1
View File
@@ -54,7 +54,9 @@ in
self.nixosModules.think-gtcm
self.nixosModules.think-backend-gtcm
];
nixpkgs.overlays = [ self.overlays.packagesOverlay ];
nixpkgs.overlays = [
self.overlays.packagesOverlay
];
clan.core.vars.generators.greaterchiangmai = {
files = {
+1 -3
View File
@@ -60,9 +60,7 @@
};
};
services.journald.extraConfig = ''
Storage=none
'';
services.journald.settings.Journal.Storage = "none";
systemd = {
coredump.enable = false;
+92
View File
@@ -0,0 +1,92 @@
{
config,
inputs,
lib,
pkgs,
...
}:
{
imports = [
inputs.matthew-hardware.nixosModules.mt7986a-glinet-gl-mt6000
];
config = {
hardware.mt7986a-glinet-gl-mt6000.enable = true;
hardware.mt7986a-glinet-gl-mt6000.zealous = true;
hardware.mt7986a-glinet-gl-mt6000.image.repart.enable = true;
nixpkgs.hostPlatform.system = "aarch64-linux";
nixpkgs.buildPlatform.system = "x86_64-linux";
system.stateVersion = "26.11";
clan.core.sops.defaultGroups = [ "admins" ];
clan.core.settings.name = "stellio";
clan.core.settings.machine.description = "Flint-2 router";
# Root is ext4 on the Flint 2's eMMC: keep steady-state writes off it.
# The journal is persistent but bounded (256M) and synced once a minute
# (the router needs logs for pppd/kea debugging and, after the Sep 2026
# unlogged reboots, for post-mortem; volatile storage left nothing).
# /tmp is tmpfs, no core dumps, and ext4 skips atime updates and
# flushes its journal every 60 s instead of 5 s so the small periodic
# writes (Kea leases, timesyncd clock, speedtest textfile, journal)
# coalesce. A power cut loses at most a minute of that state.
fileSystems."/".options = [
"noatime"
"commit=60"
];
boot.tmp.useTmpfs = true;
services.journald.settings.Journal = {
Storage = "persistent";
SystemMaxUse = "256M";
SyncIntervalSec = "1m";
};
systemd.coredump.enable = false;
# nixpkgs' services.blocky check runs the aarch64 blocky in a
# system.checks derivation, which an x86_64 builder without binfmt cannot
# execute (`--max-jobs 0` -> Exec format error). Validate the same YAML
# with the build host's blocky instead. Drop once cnx-network's router
# service carries this itself (router/dns: validate the Blocky config
# with the build host's binary).
services.blocky.enableConfigCheck = false;
system.checks = [
(pkgs.runCommand "check-blocky-config" { } ''
${lib.getExe pkgs.buildPackages.blocky} --config ${
(pkgs.formats.yaml { }).generate "blocky-config.yaml" config.services.blocky.settings
} validate && touch $out
'')
];
# The router service opens SSH only to the mgmt VLAN, the staging port
# and the ZeroTier mesh (inventories/router.nix). Also admit it over
# Yggdrasil (fleet-wide instance in inventories/default.nix) so the box
# stays reachable when ZeroTier's controller/relays are down. Scoped to
# the tunnel interface (clan-core's yggdrasil service names it `ygg`):
# only decrypted 200::/7 traffic arrives there, so a spoofed source on
# the WAN never matches.
networking.firewall.interfaces.${config.services.yggdrasil.settings.IfName}.allowedTCPPorts = [
22
];
systemd.services.heartbeat-push = {
description = "Heartbeat push to uptime monitor";
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.curl}/bin/curl -s -o /dev/null https://uptime.b4l.co.th/api/push/X0WCHAcY5gPf1U8If7BT1FLjpacZqGZu?status=up&msg=OK&ping=";
};
};
systemd.timers.heartbeat-push = {
description = "Heartbeat push timer";
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "60s";
OnUnitActiveSec = "60s";
Unit = "heartbeat-push.service";
};
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{ inputs, ... }:
{
disko = {
imageBuilder = {
# Avoid double emulation to significantly speed up image building process.
# Update the system according to your host system.
# See https://github.com/nix-community/disko/issues/856
qemu =
inputs.nixpkgs.legacyPackages.x86_64-linux.qemu
+ "/bin/qemu-system-aarch64 -M virt -cpu cortex-a57";
};
};
}
+1
View File
@@ -1,3 +1,4 @@
{ ... }:
{
system.stateVersion = "25.11";
nixpkgs.hostPlatform = {
+5 -2
View File
@@ -82,8 +82,11 @@ in
};
services.avahi = {
publish.enable = true;
publish.userServices = true;
settings.publish = {
disable-publishing = false;
disable-user-service-publishing = false;
publish-addresses = true;
};
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
nssmdns4 = true;
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
+8 -10
View File
@@ -80,15 +80,12 @@
...
}:
let
dictionaries =
with pkgs;
(hunspellWithDicts (
with hunspellDicts;
[
en-us-large
th-th
]
));
dictionaries = pkgs.hunspell.withDicts (
d: with d; [
en-us-large
th-th
]
);
in
{
imports = [ inputs.plasma-manager.homeModules.plasma-manager ];
@@ -111,7 +108,6 @@
keepassxc
vlc
thunderbird
wasabiwallet
protonmail-desktop
];
};
@@ -119,6 +115,8 @@
programs.firefox = {
enable = true;
# Keep the pre-26.05 profile location; moving it would orphan the existing profile.
configPath = ".mozilla/firefox";
};
programs.home-manager.enable = true;
+19 -2
View File
@@ -42,10 +42,27 @@
dbhost = lib.mkDefault "/run/postgresql";
dbuser = lib.mkDefault "nextcloud";
dbname = lib.mkDefault "nextcloud";
adminuser = lib.mkDefault "admin";
adminpassFile = lib.mkDefault config.clan.core.vars.generators.nextcloud.files.adminpassFile.path;
};
};
# nixpkgs installs Nextcloud with --disable-admin-user; create the
# admin account ourselves once the instance is installed.
systemd.services.nextcloud-admin-user = {
wantedBy = [ "multi-user.target" ];
after = [ "nextcloud-setup.service" ];
requires = [ "nextcloud-setup.service" ];
before = [ "phpfpm-nextcloud.service" ];
path = [ config.services.nextcloud.occ ];
serviceConfig = {
Type = "oneshot";
User = "nextcloud";
};
script = ''
if ! nextcloud-occ user:info admin >/dev/null 2>&1; then
NC_PASS="$(<${config.clan.core.vars.generators.nextcloud.files.adminpassFile.path})" \
nextcloud-occ user:add admin --password-from-env --group admin
fi
'';
};
clan.core.state.nextcloud.folders = [
+2 -2
View File
@@ -31,7 +31,7 @@
server.wait_for_unit("phpfpm-nextcloud.service")
# Check that garage is running
server.succeed("systemctl status phpfpm-nextcloud.service")
# Admin account exists and is in the admin group
server.succeed("nextcloud-occ user:info admin --output=json | grep -q '\"groups\":\\[\"admin\"\\]'")
'';
}
-12
View File
@@ -16,18 +16,6 @@
...
}:
{
nixpkgs.overlays = [
(final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyFinal: pyPrev: {
psycopg = pyPrev.psycopg.overrideAttrs (old: {
disabledTests = old.disabledTests ++ [ "test_stats_connect" ];
});
})
];
})
];
services.paperless = {
enable = lib.mkDefault true;
};
-45
View File
@@ -1,45 +0,0 @@
A peer to peer phone relay network built on top of yggdrasil.
Successor of the `phonebox` service with a global, decentralized number
directory. Every box is reachable from any yggdrasil node running this
service, not only from members of the same clan. A machine runs either
`phonebox` or `phonebox-global`, not both (they share the asterisk setup).
Regenerate vars with `clan vars generate --generator phonebox-global`.
## Numbers
Each box gets a random 6 digit number (100000-999999) when its vars are
generated. The number is signed with the box's yggdrasil private key, so a
number is cryptographically bound to the yggdrasil address it belongs to;
nobody can claim a number for an address they do not own. Regenerate the
`phonebox` vars to get a new number.
Dialing from a phone plugged into the ATA:
| dialed | reaches |
| ------------- | ------------------------------------------ |
| `NNNNNN` | the phone on box `NNNNNN` (line `00`) |
| `NNNNNNXX` | line `XX` on box `NNNNNN` |
| `00`, `01`... | local lines on this box |
| `888` | fax of the current number directory |
| `000` | fax echo test |
| `999` | hello world |
Caller ID on the callee is the caller's box number followed by its line, so
calling it back works.
## Directory
There is no central registry. Each box runs a serf agent on yggdrasil port
7946 that gossips its signed number record (`number`, `key`, `sig`, `owner`
tags) to every other box it knows about. On every membership change the
`phonebox-sync` handler verifies all records and writes the resulting
`number -> yggdrasil address` map to `/run/phonebox/numbers/`, which the
asterisk dialplan reads at call time.
Bootstrapping: boxes of the same clan join each other automatically. To
connect to boxes outside the clan add one of their yggdrasil addresses to
`extraPeers`; after the first successful join the agent remembers the whole
membership in `/var/lib/phonebox/serf.snapshot` and rejoins on its own.
`serf members -rpc-addr 127.0.0.1:7373` shows the live directory.
-583
View File
@@ -1,583 +0,0 @@
{
clanLib,
...
}:
{
_class = "clan.service";
manifest.name = "phonebox-global";
manifest.description = "A peer to peer phone relay network built on top of yggdrasil.";
manifest.readme = builtins.readFile ./README.md;
manifest.categories = [ "System" ];
roles.default = {
description = "a default server role";
interface =
{ lib, ... }:
{
options.ata-ethernet-iface = lib.mkOption {
type = lib.types.str;
description = "An Ethernet interface that connect to ATA box.";
default = "enp2s0";
};
options.extraClientNumbers = lib.mkOption {
type = with lib.types; listOf str;
description = "List of client suffix number.";
default = [ ];
};
options.extraFixedIPClient = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule {
options = {
ip = lib.mkOption {
type = lib.types.str;
description = "IP address for this client";
};
name = lib.mkOption {
type = lib.types.str;
description = "Name of the client";
};
};
}
);
description = "Extra client to be added to pjsip config as a fixed IP auth";
default = { };
example = {
"01" = {
ip = "192.168.1.3";
name = "bob";
};
};
};
options.extraPeers = lib.mkOption {
type = with lib.types; listOf str;
description = ''
Yggdrasil addresses of phonebox nodes outside this clan to bootstrap
the number directory from. Any single reachable node is enough; the
directory is gossiped from there and remembered across restarts.
'';
default = [ ];
example = [ "200:1234:5678:9abc:def0:1234:5678:9abc" ];
};
};
perInstance =
{
roles,
settings,
...
}:
{
nixosModule =
{
lib,
config,
pkgs,
...
}:
let
asterisk = pkgs.asterisk.overrideAttrs (old: {
propagatedNativeBuildInputs = [ pkgs.spandsp3 ];
});
machineName = config.clan.core.settings.machine.name;
machines = lib.attrNames roles.default.machines;
user = "asterisk";
faxDir = "/run/asterisk/fax";
rtpPortFrom = 10000;
rtpPortTo = 20000;
ata-interface = settings.ata-ethernet-iface;
# The ATA's own line. Remote callers reach it by dialing the 6
# digit box number alone or with this extension appended.
ataLine = "00";
sipPort = 5060;
# Well-known port of the phonebox directory gossip. Every phonebox
# node worldwide must agree on it, so it is not configurable.
directoryPort = 7946;
directoryRpc = "127.0.0.1:7373";
directoryUser = "phonebox";
directoryDir = "/run/phonebox";
phoneboxVars = config.clan.core.vars.generators.phonebox-global.files;
ownNumber = phoneboxVars.number.value;
ownerName = lib.trim phoneboxVars.owner-name.value;
getYggdrasilIP =
name:
lib.trim (
clanLib.getPublicValue {
flake = config.clan.core.settings.directory;
machine = name;
generator = "yggdrasil";
file = "address";
default = "";
}
);
ownYggdrasilIP =
if config.clan.core.vars.generators.yggdrasil.files ? address then
config.clan.core.vars.generators.yggdrasil.files.address.value
else
throw "clanService/yggdrasil is required";
seedPeers = lib.unique (
lib.filter (ip: ip != "") (map getYggdrasilIP (lib.remove machineName machines))
++ settings.extraPeers
);
# Rebuilds the number -> yggdrasil address directory from the
# gossip membership. Every record is verified: the yggdrasil
# address is derived from the record's public key, so a node can
# only publish numbers for the address it actually owns, and the
# number is signed with the matching private key.
phoneboxSync = pkgs.writers.writePython3Bin "phonebox-sync" {
libraries = [ pkgs.python3Packages.cryptography ];
flakeIgnore = [ "E501" ];
} (builtins.readFile ./phonebox-sync.py);
phoneboxSyncWrapped = pkgs.writeShellApplication {
name = "phonebox-sync";
runtimeInputs = [ pkgs.serfdom ];
text = ''
exec ${lib.getExe phoneboxSync} ${directoryRpc} ${directoryDir}
'';
};
createContactListTiff = pkgs.writeShellApplication {
name = "create-contact-tiff";
text = ''
magick -background white -fill black -pointsize 20 -font DejaVu-Sans label:"$(cat ${directoryDir}/contacts.txt)" "$1"
magick "$1" -border 20x50 -bordercolor white "$1"
magick "$1" -resize 1728x -units PixelsPerInch -compress Group4 -density 204x196 -monochrome -depth 1 "$1"
'';
runtimeInputs = [ pkgs.imagemagick ];
};
genLocalSIPEndpoint =
{ localNumber }:
''
[${localNumber}](internal_endpoint)
aors=${localNumber}
auth=${localNumber}
[${localNumber}](userpass_auth)
username=${localNumber}
password=${localNumber}
[${localNumber}](dynamic_aor)
max_contacts=1
remove_existing=yes
'';
genLocalSIPEndpointV6 =
{ localNumber }:
''
[${localNumber}](internal_endpoint)
transport=transport-udp6
aors=${localNumber}
auth=${localNumber}
[${localNumber}](userpass_auth)
username=${localNumber}
password=${localNumber}
[${localNumber}](dynamic_aor)
max_contacts=1
'';
genLocalSIPIPEndpoint = number: ''
[${number}](internal_endpoint)
aors=${number}
auth=${number}
contact_deny=0.0.0.0/0
contact_deny=::/0
contact_permit=${settings.extraFixedIPClient.${number}.ip}/128
[${number}](dynamic_aor)
max_contacts=1
remove_existing=yes
[${number}](userpass_auth)
username=${number}
password=${number}
'';
genLocalExtenConf =
{ localNumber }:
''
exten => ${localNumber},1,Dial(PJSIP/${localNumber},20)
'';
localNumbers = [
ataLine
]
++ settings.extraClientNumbers
++ lib.attrNames settings.extraFixedIPClient;
in
{
assertions = [
{
assertion = !config.networking.nftables.enable;
message = "phonebox-global: opening the yggdrasil interface to non-clan nodes is only implemented for the iptables firewall backend";
}
];
clan.core.vars.generators.phonebox-global = {
files = {
number.secret = false;
public-key.secret = false;
signature.secret = false;
owner-name.secret = false;
};
dependencies = [ "yggdrasil" ];
prompts.owner-name = {
persist = true;
type = "line";
description = "The owner's name for this unit";
};
runtimeInputs = with pkgs; [
coreutils
openssl
xxd
];
# A random 6 digit number (100000-999999), bound to this
# machine's yggdrasil identity by signing it with the yggdrasil
# private key. Other nodes accept the number only if the
# signature checks out and the key derives to the yggdrasil
# address the record is gossiped from. Regenerate to re-roll.
script = ''
cat $prompts/owner-name > $out/owner-name
shuf -i 100000-999999 -n 1 | tr -d '\n' > $out/number
openssl pkey -in $in/yggdrasil/privateKey -pubout -outform DER \
| tail -c 32 | xxd -p -c 64 | tr -d '\n' > $out/public-key
# openssl needs a regular file for one-shot ed25519 signing
printf 'phonebox:%s' "$(cat $out/number)" > $out/message
openssl pkeyutl -sign -rawin -inkey $in/yggdrasil/privateKey -in $out/message \
| base64 -w0 > $out/signature
rm $out/message
'';
};
networking.interfaces = {
${ata-interface} = {
useDHCP = false;
ipv4.addresses = [
{
address = "192.168.254.1";
prefixLength = 24;
}
];
};
};
services.dnsmasq = {
enable = true;
settings = {
bind-dynamic = true;
listen-address = "192.168.254.1";
# enable-ra = true;
domain-needed = true;
domain = "localhost";
dhcp-range = [
"192.168.254.100,192.168.254.100,255.255.255.0,3m"
];
dhcp-leasefile = "/dev/null";
dhcp-option = [
"3,192.168.254.1"
];
interface = [ ata-interface ];
};
};
services.nginx = {
enable = true;
virtualHosts = {
"_" = {
locations."/" = {
proxyPass = "http://192.168.254.100";
extraConfig = ''
client_max_body_size 100M;
'';
};
};
};
};
networking.firewall.allowedUDPPortRanges = [
{
from = rtpPortFrom;
to = rtpPortTo;
}
];
networking.firewall.allowedUDPPorts = [
53
67
sipPort
];
networking.firewall.allowedTCPPorts = [
53
];
networking.firewall.interfaces = {
"zt+".allowedTCPPorts = [ 80 ];
ygg = {
allowedTCPPorts = [ directoryPort ];
allowedUDPPorts = [ directoryPort ];
};
};
# clanService/yggdrasil drops everything on the ygg interface that
# does not come from a clan member. Phonebox is a global network,
# so let SIP, RTP and the directory gossip through from anyone.
networking.firewall.extraCommands = lib.mkAfter ''
if ip6tables -n -L ygg-input >/dev/null 2>&1; then
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString sipPort} -j RETURN
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString rtpPortFrom}:${toString rtpPortTo} -j RETURN
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString directoryPort} -j RETURN
ip6tables -I ygg-input 1 -i ygg -p tcp --dport ${toString directoryPort} -j RETURN
fi
'';
users.users.${directoryUser} = {
isSystemUser = true;
group = directoryUser;
};
users.groups.${directoryUser} = { };
# Decentralized number directory: a serf gossip cluster over
# yggdrasil. Each node advertises its signed number record as
# tags; membership changes trigger phonebox-sync, which writes the
# verified number -> address map to ${directoryDir}/numbers/ for
# the dialplan. The snapshot lets a node rejoin from previously
# seen members, so seeds are only needed for the very first join.
systemd.services.phonebox-directory = {
description = "Phonebox number directory (serf gossip over yggdrasil)";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [
"network-online.target"
"yggdrasil.service"
];
serviceConfig = {
User = directoryUser;
Group = directoryUser;
RuntimeDirectory = "phonebox";
RuntimeDirectoryMode = "0755";
RuntimeDirectoryPreserve = "yes";
StateDirectory = "phonebox";
Restart = "always";
RestartSec = 5;
ExecStart = lib.concatStringsSep " " (
[
(lib.getExe pkgs.serfdom)
"agent"
"-node=${machineName}-${ownNumber}"
"-bind=[::]:${toString directoryPort}"
"-advertise=[${ownYggdrasilIP}]:${toString directoryPort}"
"-rpc-addr=${directoryRpc}"
"-profile=wan"
"-snapshot=/var/lib/phonebox/serf.snapshot"
"-rejoin"
"-retry-max=0"
"-retry-interval=30s"
"-tag number=${ownNumber}"
"-tag key=${phoneboxVars.public-key.value}"
"-tag sig=${phoneboxVars.signature.value}"
"-tag ${lib.escapeShellArg "owner=${ownerName}"}"
"-event-handler=member-join,member-leave,member-failed,member-update,member-reap=${lib.getExe phoneboxSyncWrapped}"
]
++ map (ip: "-retry-join=[${ip}]:${toString directoryPort}") seedPeers
);
};
};
services.asterisk = {
enable = lib.mkDefault true;
package = lib.mkDefault asterisk;
confFiles = {
"logger.conf" = ''
[general]
dateformat = %F %T.%3q ; ISO 8601 date format with milliseconds
use_callids = yes
appendhostname = no
queue_log = yes
queue_log_to_file = no
queue_log_name = queue_log
queue_log_realtime_use_gmt = no
rotatestrategy = rotate
exec_after_rotate=gzip -9 $\{filename\}.2
[logfiles]
console => notice,warning,error
security => security
messages => notice,warning,error
full => notice,warning,error,verbose,dtmf,fax
syslog.local0 => notice,warning,error
'';
"modules.conf" = ''
[modules]
autoload=yes
load => res_fax_spandsp.so
'';
# Dial plan config
"extensions.conf" = ''
[from-internal]
exten => 999,1,Answer()
same => n,Playback(hello-world)
same => n,Hangup()
exten => 000,1,Answer()
same => n,ReceiveFAX(${faxDir}/echo-''${UNIQUEID}.tiff)
same => n,Set(FAXFILE=${faxDir}/echo-''${UNIQUEID}.tiff)
same => n,Set(FAXECHO=true)
exten => 888,1,Answer()
same => n,Set(FAXFILE=${faxDir}/contact.tiff)
same => n,System(${lib.getExe createContactListTiff} ''${FAXFILE})
same => n,Set(FAXECHO=true)
same => n,Playback(vm-goodbye)
same => n,Wait(3)
exten => h,1,GotoIf($[''${FAXECHO}]?sendfax)
same => n,Hangup()
same => n(sendfax),Originate(PJSIP/${ataLine},app,SendFAX,''${FAXFILE})
same => n,Set(FAXECHO=false)
; 6 digit box number, optionally followed by a 2 digit line
exten => _[1-9]XXXXX,1,Goto(to-yggdrasil,''${EXTEN},1)
exten => _[1-9]XXXXXXX,1,Goto(to-yggdrasil,''${EXTEN},1)
''
+ lib.concatMapStrings (number: genLocalExtenConf { localNumber = number; }) localNumbers
+ ''
; Outbound: resolve the box number through the directory and
; send the call to that node over yggdrasil.
[to-yggdrasil]
exten => _[1-9]X.,1,Set(PEER=''${FILE(${directoryDir}/numbers/''${EXTEN:0:6})})
same => n,GotoIf($["''${PEER}" = ""]?unknown)
same => n,Set(CALLERID(num)=${ownNumber}''${CALLERID(num)})
same => n,Set(CALLERID(name)=${ownerName})
same => n,Dial(PJSIP/yggdrasil/sip:''${EXTEN}@[''${PEER}]:${toString sipPort},30)
same => n,Hangup()
same => n(unknown),Playback(ss-noservice)
same => n,Hangup()
; Inbound from any yggdrasil node: only our own number is served.
[from-yggdrasil]
exten => ${ownNumber},1,Dial(PJSIP/${ataLine},20)
exten => _${ownNumber}XX,1,Dial(PJSIP/''${EXTEN:6},20)
'';
"rtp.conf" = ''
[general]
rtpstart=${toString rtpPortFrom}
rtpend=${toString rtpPortTo}
'';
"pjsip.conf" = ''
[global]
type=global
; Local lines authenticate by username; everything else from
; the yggdrasil range is a remote phonebox node.
endpoint_identifier_order=username,ip,anonymous
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[transport-udp6]
type=transport
protocol=udp
bind=::
[base_endpoint](!)
type=endpoint
disallow=all
allow=ulaw,alaw,g722,gsm
direct_media=no
[internal_endpoint](!,base_endpoint)
context=from-internal
[userpass_auth](!)
type=auth
auth_type=userpass
[dynamic_aor](!)
type=aor
[yggdrasil](base_endpoint)
transport=transport-udp6
context=from-yggdrasil
[yggdrasil]
type=identify
endpoint=yggdrasil
match=200::/7
''
+ (genLocalSIPEndpoint { localNumber = ataLine; })
+ lib.concatMapStrings (
number: genLocalSIPEndpointV6 { localNumber = number; }
) settings.extraClientNumbers
+ lib.concatMapStrings genLocalSIPIPEndpoint (lib.attrNames settings.extraFixedIPClient);
};
};
environment.systemPackages = [
createContactListTiff
phoneboxSyncWrapped
];
systemd.tmpfiles.rules = [
"d ${faxDir} 0755 ${user} ${user} - -"
];
systemd.services.asterisk-watcher = {
enable = true;
description = "Asterisk Configuration files watcher";
requires = [ "asterisk.service" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [
inotify-tools
asterisk
];
script = ''
inotifywait -m -e move /etc/asterisk |
while read path action file; do
case "$file" in
pjsip.conf)
echo "restarting pjsip"
asterisk -rx "pjsip reload"
;;
esac
case "$file" in
extensions.conf)
echo "restarting core"
asterisk -rx "core restart now"
;;
esac
done
'';
};
};
};
};
}
@@ -1,39 +0,0 @@
{
inputs,
self,
...
}:
let
module = ./default.nix;
in
{
clan.modules = {
phonebox-global = module;
};
perSystem =
{ pkgs, ... }:
{
clan.nixosTests.service-phonebox-global = {
imports = [ ./tests/vm/default.nix ];
_module.args = { inherit self inputs; };
clan.modules."@clan/phonebox-global" = module;
};
# Unit tests for the directory sync logic (record verification,
# address derivation, collision handling, file output).
checks.phonebox-global-sync =
pkgs.runCommand "phonebox-global-sync-test"
{
nativeBuildInputs = [
(pkgs.python3.withPackages (ps: [ ps.cryptography ]))
pkgs.yggdrasil
];
PHONEBOX_SYNC = ./phonebox-sync.py;
}
''
python3 ${./tests/sync/test_sync.py} -v
touch $out
'';
};
}
@@ -1,111 +0,0 @@
"""Rebuild the phonebox number directory from serf membership.
Usage: phonebox-sync <serf rpc addr> <state dir>
Runs as a serf event handler. Every alive member carries its number record
as tags (number, key, sig, owner). A record is accepted only when the
yggdrasil address it is gossiped from derives from `key` and `sig` is a
valid ed25519 signature of "phonebox:<number>" under that key, so a number
can only ever be bound to the address of the node that signed it.
Output, consumed by the asterisk dialplan:
<state dir>/numbers/<number> the yggdrasil address, no trailing newline
<state dir>/contacts.txt "<number> : <owner>" per line, for the fax
"""
import base64
import ipaddress
import json
import os
import subprocess
import sys
import syslog
import tempfile
from cryptography.exceptions import InvalidSignature
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
def yggdrasil_address(public_key: bytes) -> ipaddress.IPv6Address:
"""Port of yggdrasil-go address.AddrForKey.
Invert the key; the address is 0x02, the count of leading one bits,
then the bits following the first zero, truncated to 128 bits.
"""
bits = "".join(f"{b ^ 0xFF:08b}" for b in public_key)
ones = len(bits) - len(bits.lstrip("1"))
body = int(bits[ones + 1:ones + 113], 2).to_bytes(14, "big")
return ipaddress.IPv6Address(bytes([0x02, ones]) + body)
def verified_record(member: dict) -> tuple[str, str, str, str]:
"""Return (number, key hex, address, owner) or raise ValueError."""
tags = member.get("tags", {})
try:
number, key_hex, sig = tags["number"], tags["key"], tags["sig"]
key = bytes.fromhex(key_hex)
host, _ = member["addr"].rsplit(":", 1)
address = ipaddress.IPv6Address(host.strip("[]"))
signature = base64.b64decode(sig, validate=True)
except (KeyError, ValueError) as e:
raise ValueError(f"malformed record: {e}")
if not (len(number) == 6 and number.isdigit() and number[0] != "0"):
raise ValueError(f"invalid number {number!r}")
if yggdrasil_address(key) != address:
raise ValueError(f"key does not derive to address {address}")
try:
Ed25519PublicKey.from_public_bytes(key).verify(signature, b"phonebox:" + number.encode())
except (ValueError, InvalidSignature):
raise ValueError(f"bad signature for number {number}")
return number, key_hex, str(address), tags.get("owner", "")
def directory(members: list[dict]) -> dict[str, tuple[str, str, str]]:
"""number -> (key hex, address, owner); on a collision the lowest key wins."""
book = {}
for member in members:
try:
number, key, address, owner = verified_record(member)
except ValueError as e:
syslog.syslog(syslog.LOG_WARNING, f"ignoring {member.get('name')}: {e}")
continue
if number in book:
syslog.syslog(syslog.LOG_WARNING, f"number {number} claimed by keys {book[number][0]} and {key}")
if book[number][0] <= key:
continue
book[number] = (key, address, owner)
return book
def write_atomic(path: str, content: str) -> None:
fd, tmp = tempfile.mkstemp(dir=os.path.dirname(path))
with os.fdopen(fd, "w") as f:
f.write(content)
os.chmod(tmp, 0o644)
os.replace(tmp, path)
def main() -> None:
rpc_addr, state_dir = sys.argv[1:]
syslog.openlog("phonebox-sync")
out = subprocess.run(
["serf", "members", "-format=json", "-status=alive", f"-rpc-addr={rpc_addr}"],
check=True, capture_output=True, text=True,
).stdout
book = directory(json.loads(out)["members"])
numbers_dir = os.path.join(state_dir, "numbers")
os.makedirs(numbers_dir, exist_ok=True)
for number, (_, address, _) in book.items():
write_atomic(os.path.join(numbers_dir, number), address)
for stale in set(os.listdir(numbers_dir)) - book.keys():
os.unlink(os.path.join(numbers_dir, stale))
write_atomic(
os.path.join(state_dir, "contacts.txt"),
"".join(f"{number}\t\t: \t\t{book[number][2]}\n" for number in sorted(book)),
)
syslog.syslog(syslog.LOG_INFO, f"directory has {len(book)} numbers")
if __name__ == "__main__":
main()
@@ -1,164 +0,0 @@
"""Tests for phonebox-sync: record verification and directory output.
Run via the `phonebox-global-sync` flake check; needs the `cryptography`
python package and the `yggdrasil` binary on PATH.
"""
import base64
import importlib.util
import ipaddress
import json
import os
import subprocess
import sys
import tempfile
import unittest
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
spec = importlib.util.spec_from_file_location("phonebox_sync", os.environ["PHONEBOX_SYNC"])
sync = importlib.util.module_from_spec(spec)
spec.loader.exec_module(sync)
PORT = 7946
class Node:
"""A phonebox node identity: yggdrasil key, address and signed number."""
def __init__(self, number: str, owner: str = ""):
self.key = Ed25519PrivateKey.generate()
self.public = self.key.public_key().public_bytes_raw()
self.address = str(sync.yggdrasil_address(self.public))
self.number = number
self.owner = owner
def member(self, name="node", **overrides) -> dict:
tags = {
"number": self.number,
"key": self.public.hex(),
"sig": base64.b64encode(self.key.sign(b"phonebox:" + self.number.encode())).decode(),
"owner": self.owner,
}
member = {"name": name, "addr": f"[{self.address}]:{PORT}", "port": PORT, "status": "alive", "tags": tags}
for k, v in overrides.items():
(tags if k in tags else member)[k] = v
return member
def yggdrasil_binary_address(key: Ed25519PrivateKey) -> str:
private = key.private_bytes_raw() + key.public_key().public_bytes_raw()
out = subprocess.run(
["yggdrasil", "-useconf", "-address"],
input=json.dumps({"PrivateKey": private.hex()}),
check=True, capture_output=True, text=True,
)
return out.stdout.strip()
class AddressDerivation(unittest.TestCase):
def test_known_vector(self):
# A real clan machine key and the address yggdrasil assigned to it.
key = bytes.fromhex("0ec53986a2bdca8a43f74063aeab6a958fc697c528c83e7281365072926886f0")
self.assertEqual(str(sync.yggdrasil_address(key)), "204:2758:cf2b:a846:aeb7:8117:f38a:2a92")
def test_matches_yggdrasil_binary(self):
for _ in range(16):
key = Ed25519PrivateKey.generate()
expected = ipaddress.IPv6Address(yggdrasil_binary_address(key))
self.assertEqual(sync.yggdrasil_address(key.public_key().public_bytes_raw()), expected)
class RecordVerification(unittest.TestCase):
def setUp(self):
self.node = Node("482913", owner="alice")
def test_valid_record(self):
number, key, address, owner = sync.verified_record(self.node.member())
self.assertEqual((number, key, address, owner), ("482913", self.node.public.hex(), self.node.address, "alice"))
def test_record_from_foreign_address_is_rejected(self):
other = Node("111111")
with self.assertRaisesRegex(ValueError, "does not derive"):
sync.verified_record(self.node.member(addr=f"[{other.address}]:{PORT}"))
def test_signature_over_other_number_is_rejected(self):
with self.assertRaisesRegex(ValueError, "bad signature"):
sync.verified_record(self.node.member(number="999999"))
def test_garbage_signature_is_rejected(self):
with self.assertRaisesRegex(ValueError, "malformed"):
sync.verified_record(self.node.member(sig="not base64!"))
def test_missing_tags_are_rejected(self):
with self.assertRaisesRegex(ValueError, "malformed"):
sync.verified_record({"name": "foreign", "addr": f"[{self.node.address}]:{PORT}", "tags": {}})
def test_number_must_be_six_digits_without_leading_zero(self):
for bad in ["012345", "12345", "1234567", "12a456", ""]:
node = Node(bad)
with self.assertRaisesRegex(ValueError, "invalid number", msg=bad):
sync.verified_record(node.member())
def test_owner_defaults_to_empty(self):
member = self.node.member()
del member["tags"]["owner"]
self.assertEqual(sync.verified_record(member)[3], "")
class Directory(unittest.TestCase):
def test_invalid_records_are_skipped_not_fatal(self):
good = Node("482913", owner="alice")
bad = Node("555555")
members = [bad.member(sig="AAAA"), good.member(), {"name": "x", "addr": "[200::1]:7946", "tags": {}}]
self.assertEqual(sync.directory(members), {"482913": (good.public.hex(), good.address, "alice")})
def test_collision_lowest_key_wins_regardless_of_order(self):
a, b = Node("482913"), Node("482913")
winner = min((a, b), key=lambda n: n.public.hex())
for members in ([a.member("a"), b.member("b")], [b.member("b"), a.member("a")]):
self.assertEqual(sync.directory(members)["482913"][1], winner.address)
class Main(unittest.TestCase):
def run_sync(self, members: list[dict], state: str) -> None:
bindir = tempfile.mkdtemp()
with open(os.path.join(bindir, "serf"), "w") as f:
f.write("#!/bin/sh\ncat <<'EOF'\n" + json.dumps({"members": members}) + "\nEOF\n")
os.chmod(os.path.join(bindir, "serf"), 0o755)
env_path = os.environ["PATH"]
os.environ["PATH"] = bindir + os.pathsep + env_path
argv = sys.argv
sys.argv = ["phonebox-sync", "127.0.0.1:7373", state]
try:
sync.main()
finally:
sys.argv = argv
os.environ["PATH"] = env_path
def test_writes_numbers_and_contacts_and_removes_stale(self):
state = tempfile.mkdtemp()
os.makedirs(os.path.join(state, "numbers"))
with open(os.path.join(state, "numbers", "111111"), "w") as f:
f.write("200::dead")
a, b = Node("482913", owner="alice"), Node("555555", owner="bob")
self.run_sync([b.member("b"), a.member("a")], state)
numbers = os.path.join(state, "numbers")
self.assertEqual(sorted(os.listdir(numbers)), ["482913", "555555"])
with open(os.path.join(numbers, "482913")) as f:
self.assertEqual(f.read(), a.address) # no trailing newline: read by FILE() in the dialplan
with open(os.path.join(state, "contacts.txt")) as f:
self.assertEqual(f.read(), "482913\t\t: \t\talice\n555555\t\t: \t\tbob\n")
def test_empty_membership_clears_directory(self):
state = tempfile.mkdtemp()
self.run_sync([Node("482913").member()], state)
self.run_sync([], state)
self.assertEqual(os.listdir(os.path.join(state, "numbers")), [])
with open(os.path.join(state, "contacts.txt")) as f:
self.assertEqual(f.read(), "")
if __name__ == "__main__":
unittest.main()
@@ -1,77 +0,0 @@
{
self,
hostPkgs,
config,
lib,
...
}:
{
name = "service-phonebox-global";
result.update-vars =
let
relativeDir = lib.removePrefix "${self}/" (toString config.clan.directory);
in
hostPkgs.writeShellScriptBin "update-vars" ''
set -x
export PRJ_ROOT=$(git rev-parse --show-toplevel)
${
self.inputs.clan-core.packages.${hostPkgs.system}.clan-cli
}/bin/clan-generate-test-vars $PRJ_ROOT/${relativeDir} ${config.name}
'';
clan = {
test.useContainers = false;
directory = ./.;
inventory = {
machines.server = { };
machines.nodeA = { };
instances = {
yggdrasil = {
module.name = "yggdrasil";
roles.default.machines.server = { };
roles.default.machines.nodeA = { };
};
phonebox-global-test = {
module.name = "@clan/phonebox-global";
module.input = "self";
roles.default.machines.server.settings.ata-ethernet-iface = "enp2s0";
roles.default.machines.nodeA.settings.ata-ethernet-iface = "enp2s0";
};
};
};
};
nodes = {
server = { };
nodeA = { };
};
testScript =
{ nodes, ... }:
let
number = node: nodes.${node}.clan.core.vars.generators.phonebox-global.files.number.value;
address = node: nodes.${node}.clan.core.vars.generators.yggdrasil.files.address.value;
in
''
start_all()
for node in [server, nodeA]:
node.wait_for_unit("asterisk.service")
node.wait_for_unit("phonebox-directory.service")
# Directory converges: each node learns the other's number and address.
server.wait_until_succeeds("test -f /run/phonebox/numbers/${number "nodeA"}", timeout=300)
nodeA.wait_until_succeeds("test -f /run/phonebox/numbers/${number "server"}", timeout=300)
assert server.succeed("cat /run/phonebox/numbers/${number "nodeA"}") == "${address "nodeA"}"
assert nodeA.succeed("cat /run/phonebox/numbers/${number "server"}") == "${address "server"}"
assert "${number "nodeA"}" in server.succeed("cat /run/phonebox/contacts.txt")
# A call from server to nodeA's number is routed over yggdrasil and
# accepted by nodeA's asterisk (no phone is registered, so it fails
# after being identified, which is enough to prove the path).
nodeA.succeed("asterisk -rx 'pjsip set logger on'")
server.succeed("asterisk -rx 'channel originate Local/${number "nodeA"}@from-internal application Wait 3'")
nodeA.wait_until_succeeds("grep -q 'INVITE sip:${number "nodeA"}@' /var/log/asterisk/full", timeout=60)
'';
}
@@ -1,6 +0,0 @@
[
{
"publickey": "age18yf7r0dalnue5vwzanxl046fxsskhu9lzvd488ajhz7rp62mu94scmw3w4",
"type": "age"
}
]
@@ -1,6 +0,0 @@
[
{
"publickey": "age1sy8xkmssttcchjj0nkapk4tu530lrzszdp4lka6nn4gzlxam6e2s3xzp2j",
"type": "age"
}
]
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:NkOeX6FboG7NOkdgiTgAsS+XjRoDU+AEYfMhpZXIJTYEM2dQti+PMGyizKRvr1wRnSGMp56XaX0bHdToBuf1gYruqAsEkKwqsYw=,iv:RFyO5/JybroNAKe+F3vv51l4OEu5XXNs+biTTH8poEg=,tag:zfPm0ZAjT2CC734EU+36KQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2RklrTFQxMll5VUxiaGVu\nNlRzeldTRnVrSG93TXYzc1YrRE9Nc1VqTHpNCjh4aHJMZmtpM2tDclNaT3d2SDhN\na1QxTXVFOHRuY3dpL1YxMTJKK3pUVmMKLS0tIHoyMGVyc01vak5EKzZONC9XUmFw\nMU5MRmx6UDROQzFiaTNuNXFiQTZoYmcK6wxypuP7vTnz//EcEt2pUNqUuKxjOaY3\nAmKToJQADJfzTsYGzpmWkkYaMHvG00v8Ja6TF6IxZr5SxUh4bdHr+w==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
}
],
"lastmodified": "2026-09-18T02:02:10Z",
"mac": "ENC[AES256_GCM,data:kRpbcT5+I80iHPjPUnveQE9jpa65n0xPPQR/by4p1iM80ZKk9KH0cObB5hHhXO4BD1OqI79UJ3O9O7Jhmylgx5Uh8RNbK6wf26p4GO2Bvqh9r15NqbCZtXkoW30MTLLIs58Q7NeK9O2LgeckWrXLtyEytfhnTuoTSDFo8Sh8NQY=,iv:rcNow1Z4BN7bo1XERB6c+G6Gwl3tRU1VHvYmoDaLTl4=,tag:vy/5EB/1gw/KLLqXHSEV3g==,type:str]",
"version": "3.13.3"
}
}
@@ -1 +0,0 @@
../../../users/admin
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:Sy9T0zEgSGZ/qkz5kaRN2qlH2X+pFRibzb8FpWuknuSI/9lActSG2Loq4LhmhqPGC5MGVkQcz2pcVFI7afUjzDzejfJf4De1ka4=,iv:JNLXguWEwJXR2+WNl0v0nUvkESVAbccfeQSUijKbj2I=,tag:/AAFKncO+B/XmUZYTQnTTw==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqOXJoSXgvcEFXK2hWTlpi\nQWhCdnZPUCt5R2xEWFYxUnpWVlc1ei93TncwCjNKaVB0MFN1VUdheEwyUTBzcmFT\nb0RjTHp2MGE4cWIraCtZME9rQXAvVEkKLS0tIFpiZDhCN0NIY3FWTnlXaFhiMmtC\nTFJMUncvMnFRSEhNdHlhaWozcjlqYWsKLDH1VFG/QS3VIMn6Iwo2NmY5kdBiOPNR\nj4sOY6xBpWP5AiGUypGoX4Bm52gLgW5AdcBRIxxhFOekIv5G8wmRaw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
}
],
"lastmodified": "2026-09-18T02:02:23Z",
"mac": "ENC[AES256_GCM,data:DN97Dcpy29IZkBbwFVnMxnUnWYrgLKuvbANabkMCdpOJYgI1msYODltHJlR68Lk8Fmg25sXysvdbJOnc2cMH3pgcKxeyfhdAFwlIXdie1HRtTpZql15RF0fwPBGJjwL9YYubpZU7K4cNflGbjuOCEhp8bQOUYY8Ptd2deiDGGuw=,iv:bxTcKLUu6fcz7JKzStKiakgBeNx7aWCw6M7HolthfEo=,tag:/0nWBkdCPkpcWSpcfY/TfA==,type:str]",
"version": "3.13.3"
}
}
@@ -1 +0,0 @@
../../../users/admin
@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}
@@ -1 +0,0 @@
cf28bbcd822efec197dfaa99fbe9004f78b4efa9724b4f453d05f12a61a0bb44
@@ -1 +0,0 @@
CrnzGbqfVORt00zeI99crpBRUMfGF+2uEfaHe1L3Y8k7CIojc+8TID40HPhwEgXNtC9/xr61mN5L0Vp4vpviBA==
@@ -1 +0,0 @@
200:61ae:8864:fba2:27c:d040:aacc:82d
@@ -1 +0,0 @@
../../../../../../sops/machines/nodeA
@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:hR33SvxgsU+hZnvF2hoQxE7n0IB6kLC9MgK0wS0NXpCht5NuPjTo5p51oUE8t95Dht2qlEdXAkGO39k/h42p54vhqcfuF7u/eqVMdX6pEJyOokFmsdDmdVZziyhZghrTI/nDlctxCPcqFkeCHU4SIBZs85NS8uk=,iv:Q8k8OXSS3lFw33UO8JiZYNkrH3s+Cvh0xnAbMiBmnNA=,tag:DtNYKgDYB2nSHIjvMdvu/w==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSzk1RUhIekVJRStQd3Er\nbXlHUmtVb201dkRteVR1VFpoMTVFcTFPSG5NCmlPcVM5cWVJQ0g0VHNXaS9rTzh2\nWTIyQnRXakVCRWRQL0xuVUdDOEV0WEUKLS0tIE43RENWL1M2STF1VzdMcHJTNThh\ndHpqNE9MMnkrMlIxN2FEcjZ6anRIbDAK3rZ1lzO42bH37lb+zoeF6rKoVgI0TBST\n9EoVwom5xOKtmVAh5jobY/z4TGSD1BqQ6P2rQ/IM1Dtw3/18Yk7TXQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age18yf7r0dalnue5vwzanxl046fxsskhu9lzvd488ajhz7rp62mu94scmw3w4"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkdDFsSTZHUG54ZWNtQVdj\nZno4enBaRVlaQU1wNTBEVDVscS9Jc1JaTXhjClA3YUNQa3B2L0JXY25SSHRGbS94\nNVVNdHZ5VzdXcWpXZG1ZS1U4T0NPUkEKLS0tIFJLVmZyazU4dWUyVnpvRDRWbHNn\nZFQ3dlhxN0lwc0loWEZIOE0yMElRV0EKeUVy2QpLHbJ8JUCl07f74V+ZnRkGfDdP\n5W28yiLuq+LYfKUaFYeRDvSVFCQo6FiYJcBPGmnPF5gg1BIUtUUBYw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
}
],
"lastmodified": "2026-09-18T02:02:10Z",
"mac": "ENC[AES256_GCM,data:Oq1UCi+VYuuAkMmVBife740m6fiXC+PfkaQAii+FORyv8Zpj938cPrZzE9z/LO5Ixye5cbUHGRhZr0vM1egnv9nhIFyfGinKyE/BLEOXHxOtHnAXSQOJU2bWiR6w/QzVCTy6vTTVnqD2AtEfbKndIK1PJ0ASLvxMGaRqRsA/juE=,iv:xCEQg6DHV6hbyfBk62bUKA1lnC3HgQtkn2o8i2CFjhs=,tag:Zvt9tomYGoDFDQGjLZC59A==,type:str]",
"version": "3.13.3"
}
}
@@ -1 +0,0 @@
../../../../../../sops/users/admin
@@ -1 +0,0 @@
cf28bbcd822efec197dfaa99fbe9004f78b4efa9724b4f453d05f12a61a0bb44
@@ -1 +0,0 @@
7291692f9a94948724377fc22055edde8e2773a581153317bc20bd5779736647
@@ -1 +0,0 @@
IwAOYcmClqi8K8EStthYMqWCr6WsxM3nD0CLDRvvb7I3CUyihXBjdghXLutDD/bFsHKzOkDVV/gLnTuRj9IEAg==
@@ -1 +0,0 @@
201:35ba:5b41:95ad:ade3:6f22:f7:7ea8
@@ -1 +0,0 @@
../../../../../../sops/machines/server
@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:H1ngxnRS+cFNSxe9K7C/xNS5hzXyeTWBLZI18TPvEyT5l/MSBeRuK6FZ/G0xUGQAJw4Xo1nyX2PZEYH5wjhnG0UziKAZeM2Oe0G/ilpNbHeMS+HLVriDETlMQz2Hf4Y1J6jOZqSTgFuPMVG5armpZUYTcW+p2zo=,iv:u9sO6eiFzxtT7uImnHLXT3aYJJxgby8d5H2ckfZdNIw=,tag:ZLl7AHHRF+jmr0tnujrpIg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzdy9HVVFoa0N5ZnBDVDhM\ncm1vQzR3MUpSbW9KSjE0YmZueUlsY1gvUVc4CmlqaTBxMTNvZzdmdkJSMmMwN01N\nVGsvUzJ5Q055Tmk2L2ZUNjRpSHp0bE0KLS0tIGJhUUNDbGh1a09aeXMzWkl4K0F0\nZ0dYY1FnNCtkVXRVTVkyeXZPbFlVbUUK3a/V6XP6m8MDYPKwlu8z0cr4inuKGGNc\nYJjQw00ou3BdM/HOPZrMjYHtjg5WdtzYiFCOl8IRkeiDaEmXcOBjiw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSbW9lcXZweHZ6b0F1eVIy\nd2RWV2lkOHpoM2RkZWxSVEFwU1h5aXNMWldnCk5lS1E4b1BDMmRYUDNHK2NhTlVT\nWGpLWm4rUnpFVWNvMHNzclJuemNGZkEKLS0tIGZxcmowODUydm1kL24yVHd4YXl4\nWVd5eWZMZ0dyS2dpTDhuNXo4S25Ha0EKvc3hwrmlP5JcH7eQeRfoq40w/QdnQL8s\n+DAwsajzRp6H3/XVTm+nDQ+Qoc3aenewZkk6Pgn+x43hAh9zwuvGkA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sy8xkmssttcchjj0nkapk4tu530lrzszdp4lka6nn4gzlxam6e2s3xzp2j"
}
],
"lastmodified": "2026-09-18T02:02:24Z",
"mac": "ENC[AES256_GCM,data:xrshyxQAnlSORTzxxcpt0ABaNWSCCVnwHl6oPUQ59reumF7BoAy8HmdSyWeEpIKBNo2Ane1xxXBHa62+w58r0WjcneNzy8yIBBwXr1BIRZPX83HrSz3+bENPtj6TPWdHpFZ5aDFM2jVlUvwIkn/4g+1B9FnQtoH8kuYBGe2uGCM=,iv:slMt0ag3Kp3iD89jQa/YDta4mJccKiSqcTCt8C+1Dzs=,tag:o56eg/BSHOtBUeNQqRjQDg==,type:str]",
"version": "3.13.3"
}
}
@@ -1 +0,0 @@
../../../../../../sops/users/admin
@@ -1 +0,0 @@
7291692f9a94948724377fc22055edde8e2773a581153317bc20bd5779736647
+11 -3
View File
@@ -224,7 +224,7 @@
throw "clanService/yggdrasil is required";
in
{
clan.core.vars.generators.phonebox = builtins.break {
clan.core.vars.generators.phonebox = {
files = {
server-prefix-number.secret = false;
ata-local-number.secret = false;
@@ -256,6 +256,13 @@
'';
};
# Phonebox nodes are headless and unattended. Observed on mirach/almach
# (2026-07..09): hard hangs leave no journal/pstore trace and stay down
# until someone power-cycles the board. Arm the hardware watchdog so a
# hung kernel/PID1 resets itself, and reboot instead of halting on panic.
systemd.settings.Manager.RuntimeWatchdogSec = "30s";
boot.kernel.sysctl."kernel.panic" = 10;
networking.interfaces = {
${ata-interface} = {
useDHCP = false;
@@ -280,7 +287,7 @@
dhcp-range = [
"192.168.254.100,192.168.254.100,255.255.255.0,3m"
];
dhcp-leasefile = "/dev/null";
leasefile-ro = true;
dhcp-option = [
"3,192.168.254.1"
];
@@ -323,6 +330,7 @@
in
{
"${matchAll}".allowedTCPPorts = [ 80 ];
"ygg".allowedTCPPorts = [ 80 ];
};
services.asterisk = {
@@ -396,7 +404,7 @@
in
''
[from-internal]
exten => 999,1,Answer()
exten => 99,1,Answer()
same => n,Playback(hello-world)
same => n,Hangup()
+8
View File
@@ -0,0 +1,8 @@
# Prometheus
Monitoring over the Yggdrasil network. Requires the `yggdrasil` clan service on every machine in the instance.
Roles:
- `server`: runs Prometheus and Alertmanager, scraping every `nodes` machine by its Yggdrasil address. Optional `matrix-alertmanager` forwards alerts to Matrix rooms; the bot token and webhook secret are generated as clan vars.
- `nodes`: enables the `services.prometheus.exporters` listed in `exporters` (with `openFirewall`) so the server can harvest them.
+15
View File
@@ -256,6 +256,21 @@
];
};
# nixpkgs runs alertmanager with DynamicUser; that user only exists
# while the service runs, so sops-install-secrets cannot resolve the
# owner of matrix-alertmanager-urlfile at boot and rejects the whole
# manifest (no secrets installed). Use a static user instead.
users.users.alertmanager = {
isSystemUser = true;
group = "alertmanager";
};
users.groups.alertmanager = { };
systemd.services.alertmanager.serviceConfig = {
DynamicUser = lib.mkForce false;
User = "alertmanager";
Group = "alertmanager";
};
services.matrix-alertmanager = lib.mkIf settings.matrix-alertmanager.enable {
enable = true;
tokenFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-token.path;
+5 -2
View File
@@ -239,8 +239,11 @@
};
services.avahi = {
publish.enable = true;
publish.userServices = true;
settings.publish = {
disable-publishing = false;
disable-user-service-publishing = false;
publish-addresses = true;
};
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
nssmdns4 = true;
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
+4
View File
@@ -2,11 +2,15 @@
{
flake.overlays = {
packagesOverlay = import ../pkgs/overlay.nix;
# TEMPORARY: drop with the file once NixOS/nixpkgs#578265 reaches nixos-unstable.
posthogPr578265Overlay = import ./nixpkgs-pr-578265-posthog.nix;
frappixFrappeOverlay = inputs.frappix.frappeOverlay.x86_64-linux;
frappixLibsOverlay = inputs.frappix.libsOverlay.x86_64-linux;
frappixPythonOverlay = inputs.frappix.pythonOverlay.x86_64-linux;
frappixToolsOverlay = inputs.frappix.toolsOverlay.x86_64-linux;
frappixAppsOverlay = import ../pkgs/frappix/overlay.nix;
# Must be applied after frappixPythonOverlay (overrides packages from it).
frappixFixupsOverlay = import ./frappix-fixups.nix;
};
}
+34
View File
@@ -0,0 +1,34 @@
# Fixups for frappix's python overlay on current nixos-unstable. Everything
# here belongs upstream in kurogeek/frappix; drop entries as they land.
# Must be applied after frappixPythonOverlay.
_final: prev:
let
inherit (prev) lib;
in
{
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(_pyFinal: pyPrev: {
# frappe >= v15.120 needs sqlparse 0.6 (db_query.py touches
# sqlparse.engine.grouping.MAX_GROUPING_TOKENS), but every sql_metadata
# 2.x release pins sqlparse<0.6; the sqlglot-based 3.x needs sqlglot >= 30,
# which nixpkgs does not ship yet. Relaxing the pin is safe for frappe: its
# two call sites (desk/reportview.py, core/doctype/recorder/db_optimizer.py)
# only parse SELECT statements, and the only sql_metadata test regressions
# on sqlparse 0.6 are `CREATE TABLE IF NOT EXISTS` name extraction (2/150).
sql_metadata =
if lib.versionAtLeast pyPrev.sql_metadata.version "3" then
lib.warn "frappix ships sql_metadata ${pyPrev.sql_metadata.version} (no sqlparse dependency): drop the sql_metadata entry from overlays/frappix-fixups.nix" pyPrev.sql_metadata
else
pyPrev.sql_metadata.overridePythonAttrs (old: {
pythonRelaxDeps = (old.pythonRelaxDeps or [ ]) ++ [ "sqlparse" ];
});
# rq 1.16.2 (frappix's rq_1 pin): test_parse_connection compares redis
# connection kwargs against a literal; redis-py 8.1 (current nixpkgs) adds
# `himport_registry`, so the assertion fails. Test-only.
rq_1 = pyPrev.rq_1.overridePythonAttrs (old: {
disabledTests = old.disabledTests ++ [ "test_parse_connection" ];
});
})
];
}
+33
View File
@@ -0,0 +1,33 @@
# TEMPORARY workaround for NixOS/nixpkgs#578265 (python3Packages.posthog: unbreak).
# nixpkgs#575004 bumped mcp 1.29 -> 2.2 and marked posthog broken; the only
# failure is one test in posthog's optional MCP integration (field rename in
# mcp 2). posthog is a runtime dependency of frappe, so frappix machines fail
# to evaluate without this.
#
# Remove once `nix flake update` pulls the PR in: delete this file and every
# reference to it (grep 578265). The overlay becomes a no-op and warns at eval
# time as soon as the locked nixpkgs no longer marks posthog broken.
_final: prev:
let
inherit (prev) lib;
in
{
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(_pyFinal: pyPrev: {
posthog =
if !pyPrev.posthog.meta.broken then
lib.warn "nixpkgs no longer marks posthog broken: NixOS/nixpkgs#578265 has landed, remove overlays/nixpkgs-pr-578265-posthog.nix" pyPrev.posthog
else
pyPrev.posthog.overridePythonAttrs (old: {
disabledTests = old.disabledTests ++ [
# AttributeError: 'CallToolResult' object has no attribute 'structuredContent'
# (mcp>=2 renamed the field to `structured_content`)
"test_prepare_tool_result_delivers_into_call_tool_result_models"
];
meta = old.meta // {
broken = false;
};
});
})
];
}
+2 -2
View File
@@ -11,8 +11,8 @@ let
domain = "git.b4l.co.th";
owner = "newedge";
repo = "default_thai_company";
rev = "caad6e77da35c9359b0dbd75ff0f39bb01891caf";
sha256 = "sha256-LH7E1EkecNPrhfQWSlWzPHHuJLM6SReCAifcFPDr61o=";
rev = "c8fb98374989a22d0c907aa44877f247391a49ac";
sha256 = "sha256-c+pqds4l3Laldgf3+Rj2Ug693kFJYDB1j4a15j4U5SY=";
};
in
buildPythonPackage (finalAttrs: {
+3 -4
View File
@@ -7,18 +7,17 @@
let
repoSrc = fetchgit {
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
rev = "6f8c8d7dfaf5a0c1eb2077de1d6fb35ceaf3d4ec";
hash = "sha256-2mCdn8xGjWZrANclctGTmxQhkNc43VzlzMTVwVIFJcM=";
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
};
src = "${repoSrc}/upload-large-file";
in
buildNpmPackage {
pname = "gtcm-file-uploader";
version = "1.0.0";
version = "1.1.6";
nativeBuildInputs = with pkgs; [
nodejs
breakpointHook
];
inherit src;
+1 -1
View File
@@ -1,5 +1,5 @@
final: prev: {
think-gtcm = final.callPackage ./think-gtcm.nix { };
think-gtcm = final.callPackage ./think-gtcm.nix { php = final.php83; };
think-backend-gtcm = final.callPackage ./think-backend-gtcm.nix { php = final.php83; };
gtcm-file-uploader = final.callPackage ./gtcm-file-uploader.nix { };
}
+4 -4
View File
@@ -6,14 +6,14 @@
let
repoSrc = fetchgit {
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
rev = "7c17aa78436538241c09fc7d633904d3c063011e";
hash = "sha256-GDx0+PmuCXC+UPtsvsocCZQiTPcnOZEzJI17sxrVv7Q=";
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
};
src = "${repoSrc}/think-backend.greaterchiangmai.com";
in
php.buildComposerProject2 (finalAttrs: {
pname = "think-backend-gtcm";
version = "1.0.0";
version = "1.1.6";
inherit src;
@@ -32,5 +32,5 @@ php.buildComposerProject2 (finalAttrs: {
'';
composerStrictValidation = false;
vendorHash = "sha256-wGfbprSDULBje1s5y3+ZiU/nCwYGDEULobZzyzGZ9bQ=";
vendorHash = "sha256-FaAwFzLXfMAiUv9eZLtFI0QurkNLh4fsTYrvGv1rAlo=";
})
+4 -4
View File
@@ -6,14 +6,14 @@
let
repoSrc = fetchgit {
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
rev = "7c17aa78436538241c09fc7d633904d3c063011e";
hash = "sha256-GDx0+PmuCXC+UPtsvsocCZQiTPcnOZEzJI17sxrVv7Q=";
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
};
src = "${repoSrc}/think.greaterchiangmai.com";
in
php.buildComposerProject2 (finalAttrs: {
pname = "think-gtcm";
version = "1.0.0";
version = "1.1.6";
inherit src;
@@ -32,5 +32,5 @@ php.buildComposerProject2 (finalAttrs: {
'';
composerStrictValidation = false;
vendorHash = "sha256-b8+AKUmjQiOdV8UC9GYfJzAHFs9+FRSH91YsxKt0rDA=";
vendorHash = "sha256-7M0nn3u8ERVFF6WiNjYByNdkFwHZz1vfoClybdOtIJ8=";
})
+4 -2
View File
@@ -4,12 +4,14 @@
inputs.devshell.flakeModule
];
perSystem =
{ system, ... }:
{ pkgs, system, ... }:
{
devshells.default = {
devshell = {
packages = [
inputs.clan-core.packages.${system}.clan-cli
# clan-core pins `nixVersions.nix_2_31` for a CI perf A/B test;
# nixos-unstable has dropped that attribute. Use nixpkgs' default nix.
(inputs.clan-core.packages.${system}.clan-cli.override { nix = pkgs.nix; })
];
};
};
+6
View File
@@ -0,0 +1,6 @@
[
{
"publickey": "age1ez6597tgxg7xxpm6lqv30z82sa97c04afq4wlmw8qspm8pq4m33s86fxz7",
"type": "age"
}
]
+1
View File
@@ -0,0 +1 @@
../../../groups/admins
+42
View File
@@ -0,0 +1,42 @@
{
"data": "ENC[AES256_GCM,data:PdrPoAQnV9OBdwssaYfqN7tga1yUGKo2o2BzHaE2LJRDYo+Y5QFJi1vSxnT0jny4yN7fkoU9ilxYGi+sBkvtR77PescyUESta3U=,iv:KfpSaeZE8B1qBXPamhgLh4FvemjWHWMS4frJh9RWw6Y=,tag:uZ7fXNgHFXxQ4OlUurXdyw==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0TkI0blpCUEYyQXlQcS9z\nRSt6andVS0poNHI1S2pWSC9tdjBOcWlCS0d3CnQ1Wmxvc2IzRlBKbFV5R0hMMmxt\najRDNlRGUnUvL1k1VUxVWlVPdFlwTTAKLS0tIFplQ3d1WWhBcUhEVG1EZ2dQdlZW\nZjVLbFJHODA1VitpZk54Q0tTekpQZ3cKwd6lFt1KJs8H04d1WeztJntDVx4+SOj0\n1Eb31GAUNHxkJMGKpOyojpwewAWRXaLybq734CsrDn2SYrcCxxwkAA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFU4dXV4dkQ4\nSThRSGdRU3lIdUhEOVB6Yi9hbWg0UXJ3YTM0MHB3SkpWR28gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo0VDIvQWpJNEdnK2NjV3dkbmZIWjF6\nZTZRMEVxQm5BRGlXdC9BTU1PNVpVCi0tLSBocHN0eVl4a1E3aVZhRmpGVEdZajRE\nRjlKU2VDK0pwak5LdDhoa0tsUkswCrhbCwwLHBxkvkKqXThgc45LyABYOQRhemWM\nw4k8cnCgtricI4FChhG8wNpFx1vKBJ1z7spimX+fG0AxXUIkiqQ=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFljSUI5cExD\nQnVSVlFTL3ZjNW1maFRwZVVhSERlS09MaEZ2VWpLeXh1V0EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwoyVlZzVlg3U1lpOTcxYzUxSXVycXNF\nalZlcTdyK3MvVFRyeVRQOGkxQXB3Ci0tLSBMMXhETlVrN0hMT2NaamRDTGxlQVpH\nNW1VZWs1QVVrVk1UcnBiWXdQVEs0Cn7aMYe+48HDHhQRDAUVVWel1mv0KZKYguzX\nOlQCqCirlzMhSRmXTYNQe4S80ecymgLBmcjvQVSitREv8mK8eeY=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEhVdXUyNXZX\nT2NacThiblFjYzNFRzVKQzFaRm96aHRUR2xrTzJqV3RuSFkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1N25PL2RjYUcrblF1V2t5eERmNlR6\nNlFoYXpoOTVlK2gxbFBWa3FNY21vCi0tLSBEc1lsSlA4WklTSjE1ekJNbm40bTVa\neHRRc1Y2S2diY1FIUU1wdjhwVTJVCr8/pFIR0gZNp4zAmmcKFwXHg+FlDSlLqHBr\nuWqURlbZNaAA7azU4pjt2EJC6ppcgcW85yYxVghy3v1Hb1PBW+k=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtNGR5bVkwbDVUVUl2cWNY\ndStDL0I2SmtNeEd3UEs2TExKM1pFNEgwTHdBCmU5WnF0dlRGSkJ2SVpLejlsSFQr\nRTE0YVUwMGxWRGVtV3MvMHMrdW9YRlkKLS0tIGcwMnRYb2wxcE1RMDcraVljS2Nz\nTS8zZ2ErMTREWklXNVF1UnlPZ1BRb1EKe03KNmpDxrTndF6hQeuBtaW2FIb9LaCg\nXoBKHmSxeESIPunpAhWJw2YUdPJ+8Td+fAdOZCPgktaeGcYSejaZMA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Nno3Ung3dHNtK3V4dFdm\nbW1mWm5ZN1ZtMjBENTlmaUtHYjZvbUluZERFCkNobHV4SWY3eWVIN1h1Ry9WWWxz\nU1hIUndONjFBWEJiTUc1cU9COExHWjgKLS0tIHQ0eWpzdGYveXNRZmZHeWdSbytt\na013d3FlL29HRy82L1YrR2NBTkR4YTgKCOuq/HrqenpgwhK73vQsvG2axxdPlWrf\ngK42riDP7VLxdqbri/mPIGKiGoMLumW3OQejUc6p+e3K6y42cESuyw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaZ1NjdTVOemZvZXJvRWIx\neEVIRWc2NndINzNETVVTOHNqSlBGM2lDbkIwCmRtR3FiQ0JkQ0hQSTIwQWs1SHE5\neHA1OWJTVU1CSVE0NTdlQTJTOGFVWXcKLS0tIHI5M09aR0ZrTzhmUmxRS0xHNzVO\nUUIxbWt4SVE1K1R1Unk3YlBPZnpHRWMKHqE7HUK3YM+bYQWUmO3UXSokoABSbsRi\navYoaIVbMgbTcSwkK+f8aZML9cyX4juA3NbKVAnmLPPU9aEUzImncA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVMm5XaGEySTVtbUY1QlRk\nNGlhb2FsK3QvU0xPV2FmQ0RjcVRpZzZhbkdzClhjbE81TVA1YXJaTk5jbUR6UGF5\nMzREcit5dHVHbVcrU3IrSnZFaDlVd1UKLS0tIFNyMzd6NmpKNy9nK2FHU1BlUmdO\neThBTkZMWWNFb2M0NmhNZkd2RW5vUk0KbDNx1IUaM9akKfH+sNEVFbIxnWbHJAdu\nS7aFj0SQx9O7G26PJEPZOLBYW9qryA/XVYcEcxycEoOBMu8J50GWZQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-08-12T08:44:41Z",
"mac": "ENC[AES256_GCM,data:XCAM+Fsk/1b+YVPWWAfruny5TA+3SrDBEPmvkhzDzJofmvfPiHSSl7X6nxGSdMyEFO6EElCNUiScDmvVsISlb+Vsl9Eeqqst3dPtnbCG+uUoYaRy8B9R4Pew13ceR1Q8oKNux5J84zQKctcWCKRu5ASa7mhJWC+68+azDkd/UTc=,iv:07RbTD3ggIWsQ/0f3Bohuzpqk21LelaCqz8jMftqsHE=,tag:sps3aXc94kUtLlaEYOU1nA==,type:str]",
"version": "3.13.1"
}
}
+1
View File
@@ -0,0 +1 @@
../../../users/kurogeek
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:xSfysMoIvr1hExlgR+bXj1aoO+pFsoj9tO+cppTFg5dGbv33iOK63l02reEJ8VkUhpjWLcqyoQG1/g/E61QbnqdgzovES0JxDnpTwo6wNMJSqhNzVogLHw+hk4duDFkOXhKYkJjuM1Z1jIp3RbrwEGwQNtR9BwPNlRSjxwKYyAh5g8Eo5DvSN8IwkQbCZK1FmD6osdf96z+JnCDmnUK5SUNcMHHCEAC4My6viZIYMSW9SeCkmLljJTsJ43w+XK0Pu7+lpv6dDCvi+h/P5tbhy99T0TJto+dP4B7k+9rMe2a0f5FBVIZ3cseKV8Zg,iv:1S1vJmhVbbri44+R0as7z8WKHUVX/o5KtiyFS/rCJrI=,tag:4wp72HMZOezIwvF9Ls5HEQ==,type:str]",
"data": "ENC[AES256_GCM,data:bwatLnKlSJ0ezh+XJs9DBfKz3WflbmAeMXWqcRolLQ/i0cydPH4x/tVtZpNxT3Ewwi4ImanDpDZMu2Us89tOrZV5NRtmg0S456DT079jPzYOzN0UlaqVXuBjBIYYzBpNSeM7eWQnK3GYeSpKmVHUYtsbvKKJLH6/4gKWbSPcrq+x9IoENsWavzCJDRU/COgdOePhnpeC8n0f4+y3ZaJ0mAjMVSRiqhQ2UI5a8BSOU+3N+DhRmpR1iav/S8Q+YdbJpoz69BZ2D3K53hddj8qnQeponF4eQd5JhLkGUW75UmAmaM8SVbvOnu03vUFR,iv:2vDfooxBn8QuuZE4lv/svcWGK0sGOJhhzJF7QxtUU3c=,tag:422DI0Ib8fGEKY3IB9rbfg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoWUpxYzNod1lCeGQyRGlI\nNWlYOVFFWmlZR2FqNmNIZ3FnQlN2dEZIOUhjClduUEpTSy90VVptZnJnb2c1TjZW\nVEc0MUJsYVVsd0tvZXRBU3dkOXVSbGcKLS0tIEJtM1RBWS9obzdzSWpyQSt1QXlo\nVi9TWDhkVG5GTHU5WWhldU91MkkrY00KmuB+RZ84xPm138UgqB0dRswPqJGdgy1/\nji2QmmS4FnTbTNXYBOPSh9boAEkHbuUHC1bYGdDbfRSgMWZbwUE+RQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxRTdlOUFaRWtqQXE0aW1V\nVFZsL3o3Zk41aFlvWFJtblVvOC96Unp4YzB3CjJtTGZnK1E4RElJZm5HM2poeVBN\nYTRNRUlmeXZ0djUwTFFCa0NDT3gzUzgKLS0tIFpkeHlmMEx4MzNDUE1sNW5pSXVr\nMU5DREJOMWJvYjFqaHFoeFBlVzMxdmsKf3zaYrwXS00kftvRmXfA7xgAuFxrR9bW\n8cyHqXxsmx++7rmU4+YuWzSmy12AC85g0OLn8sRZHuI4ciouavO9Sw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMllkV1lSajd2TGxoY0dP\nOFpWU1ROeHlyTnJqN3JNQllkKzB3azJNRHhJCjU4cUt2Q05yUDRsVzhmSy8xSk5x\nandZSE85aWNYY0J0Q2lsSFRBdDh1UGMKLS0tIEpxOHpPYkFxeGNyUGtIQmVIZmRn\nbE9KU0RMUGJxWmhucVduVEliUmt3bU0KPYYYKahYmpgizWBAG0IiF239VbLeefnL\nvAgisIN/KzTmIfYlb2AT6qebZPJtqd33Wn2Mz0UlmuzbaTcIdz5DvQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNbjZPSHRzTmVDckZGY00z\nbFlMT2dmelh0NGhOUUpCRFYwbmxXKzFtZXpJCmZVUmQwMFhvTWgvd09xL0pXc0dI\nKzFpWU0zcVJCa0ZGbDdaclJBalVKUTgKLS0tIG9ESVprMWMrM0Z2LzVlNFRBbmlI\nOUh2VjFtTGEyY2ljK0VTR1FxdTJKSzAKkRpd0RWgEdKduvWGte2BzPs1cAh7RWx9\nwxEfF4teUHXlKPK//gAJB2dA/V0m1MxHerduqR5GJaH0ElWzSxmy3Q==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1dytdeqtct0jy3vvmqvapgqjf3v9p486jjcpx60gfxwgrptgyyqrs0lj9vc"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE1sbncyZUZo\nZU9wbTF6dFlTZEYxZHZTTzY2U3lteDMvVnl6NHYzWkU2RjAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpla2JPUlB1UzduRTk4dndsRW9aN0ZY\nU0lvWU05S1ZSRnZ3TVhaQ2ZINWU0Ci0tLSBXQnJjRkNMYnExTG9oaTNydzV1U2NX\nOXpRd1ZMc000Mi91dVdvSGJvQ0tZCuIyt47NxK1d7lyzv3F1cqh9bXvGGQdgNfXj\nCRbcFLVHgf8y3LZ6/Ajqr2VBtmWWbNx2x/9v8lW4+YBz62mL6Lo=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGhqRHZmYlEy\nZXI2aTBmZUZ3ZGc1NzlZc2NIY1EzUVJGdENyVEdRS0FyU1EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpsYWJPcEpEVVVMMHhEYTNEdDl6cis3\nTEI2K3VHTlkxTXhmRlZlR1JRazUwCi0tLSBlN3JLdlFub2pSZkJaanpqd1R5eXFT\naGZFNEh3Y2tYRXRoellkSWJYZUdVCshBhkGNreqeNgBBXQnnj6umlrkNZ85Vr+GA\nxpDYHQn4JnoLLuIQXAEJeff7e6lxP2wgFUtKhW0QJJ4/hEQ+ikM=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDdUOUtieVpC\nWDhSaERPaCtLbVpucmF5MXZ5TWxGcFo1WlNRYlVXZDNTU00gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpINnpFSitreEZHc0hCMWNLbytmdHBW\ndG8yVkp3WE5TNXhnVXdXTHVQczlzCi0tLSBXWEtXcjdWcEloQnhXQjNrd1FhSjdj\ndzhIM0t6MzNhZFREaEw4THRGYit3Cku+h1z7D1+y68HkGC+NUHYWolbkvEL0arXn\nkINmxQw0bVfo6QToBvRfX6sj2F+lCi3z0woZMdDVznaTZPH57nA=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHdQeVdHZ2Zr\nL3FsLzdGRnVaenYyNUhZQTRZWVc2LytjNkhDZ215YVhBM1EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpUNkZIUkNoS2VNREx5Q1J4UU9EZjZY\nakRpSWU5UXpiNDFWS1I2ZmNMUGdZCi0tLSAwK0NVdTBZZ3QwMk51ejllL2VMWVZP\nMG94SzBRa2JncGJ3REYzRkd2TkZNCms9i/Ht1AxXB+sBHQZK5qgKOwjkGQhVIHiT\nWZ39psXb092oC1L0zr4/soWM/f9qYYo+GoC2r/yCuZzG0ZOLePc=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE42Y0tpcEJj\nUGRpUXQxS2RQVk10NzFiRWI5UGFsTjkwNVpxODF0VTJ0VlkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHUDBCMVlPdHJYQngwTjQ3REswZ0Jl\nOVloZ1ZCQk9lQzh2WXUwMTJ3OEFzCi0tLSBubVFFZGpvZmZHd1NaNDFDT2dqZGtt\nUlV2REZLbVdaTWY1ekJYNEJaajhVCjzky+vHHIFJhosSueBqudCiEt9AjWsGmOl3\nJgeYYua8GvLvSwqjXqayhubYdJPEfgmfsOMJ+DDD2aNeYu5A4PM=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExoYXJzZVNx\nb0oxY1BzanpRaGN1bDhoMW5rR0E1Wk4xUWFmVG9qZnh2d1UgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpzbnVlemtPOG1lclZDZXVFMkgvOFR4\nVThFSU8zbjQ0TlIzcDFJOHB4ZlVzCi0tLSBIWjNkN2FYWnhKTUFISW1Qd1ZsdEQ3\nT3RSRldqbVJ2YThMMU5aNjJZQ1pBCpfzYIVYQ64jbPxRH0u7fiGEHJ6SRNCNMT97\nF4HoN3HcV7Fl4h4tPuPAYoeL+RIbDipguPfdaZXSytmcDNYAfL4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaaXhwRFJBM3JiY3dHYi9E\nVXRMUUFFNFRWby90RXhQZmtodW1rSE8xTlJ3CjMzbVFsNE8rM0RaVktWNEl6V3po\nYzVWeEtId3pyeFJySWVqR1dpQnVCNkEKLS0tIDQvS040L1JIVmE0eGZ6c0wzVXQr\ndW1uUGtXdE9EOERBZ0IvNVNaTFVEYTQKEkymB2wddHYh91NhJcQGiH/Va1ZPoZ9d\nKrcqiNXZY97xe9EbFVmzDJOnJz4cp23CUjYsyflpViyai+Gu72BMvA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUaFJDd3VzaEJOT2Uzck9s\nUXF3M0N1WElTQldPWS9uSEt4aFBnUnYyK3hjCnNhN0g4RE92Z0Y5KzY5enQrcUNG\nMkR4dkR2MWlMNCtpeURsdTBsSTd0U2MKLS0tIEN2b2o5aGUvS0xvUWNDVEhQQ0hX\nNDcyVmphOHpxL09Tb0pNL2NxbGswblEKOpot8cLerFnk3La4ofF/zyq76XSD4wsf\ncfFxZFfdHLbED34fLmsR80V5tYtbM3+WoRsSyAnwQ5tZUygJioZ9VA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtY3VMOEZkODNydnNMc2hO\nanZGRFNBN3dXQ2hYS1A0Um40ZHRqVTVjN1Q4CnlhWmJWL3NhVmJuWlRsR240YXhG\nbkxNcDZTSUtwZ1pndC8zNlI4cXZ0alkKLS0tIHNsdmNRVU14Rlp4MFN6VmFjd2tX\nNWwzUXpZTlE0cDZZYmcvUmpBcmlOT0EK+ywZXQlUUs14DF/+7kcmoRv3h/RSc9/t\n3apqfe/7KqpU3WS0vXA/HKem4d33vfCvkyHWrH6YTIG4r9czYn3Xhg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKNzlPZ3MyQUJnTnQwZk4x\najlGYk9WYnhBMXk1QW9DeXFqL1BucXRWTDJzCjArYkc5SlhQbmZGR0JRMi9HYTRT\nVmJaUHJSTDJ0MElFc3I4aWRrQ3BRK00KLS0tIC96ZlExdTlXYlFJbXhpWGUzVXI2\nM3dSd3g3QlNoSi9MWW8vaXNKU2QvNEkK6o6a8OI4vyaLQjIHe5OnoAPxbCn9JXVz\n0g2VyUPOGWnWSSCbzrkmG1xl9prLEV9WtevZ5XPMP2l50aJMQJQ3KQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnREJYQ1NDNC9Vc3RSODRG\nVWszY3ZDVWovMDVsdVRQbkFpVzVINkNJQjBvCnFadUdzRGNudDllMzRIb3UzMkM2\nK05Mb2VNTjhqMHpQaUkzTkRrVlU0WDAKLS0tIDQ0U2ZWaHpxZERQWWdSYWhMNzR2\nTmp6MW1ja0p2TXZhcEtjSS9yNWNaSW8KNJ73ktLW5KlxCuhnMiHGRK0yHJvVhsLM\nPlhWTv10qzrdCo09Y3XNWngR2WRDNgMta9IZkynucjOKgevywrEycw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmWFhQNHdEcXRKbGJValI0\nd1pKaTE2TC93WEhWLzR6K2Rjd2p6UkFDSEJNClJpV3Y4UlR5MDNJSGNaN1BuZFpP\nS2prSmd1SElQL1VONWFHVEFmY2FSUFkKLS0tIFRUQjlBbDRVN0xBaWxOZjV5eFNs\nL084ajBaUkpGM21qZXhNTlQ2UE9odFkK+6Z2To2XmQYUz9IfqTZK8DlYpzYiK0VS\nPDTLfmlS+M44EX7QP/TE/te3GePwpzdsVd4EqO8hWkt5gsNg6H3NfA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkRnlpZmRtNU5jbDBOdDZj\ndGF3R1ZHNTVqait1WEJWMFNnTkVTM0NXTFZvClRGd3dEaGxnR3MrRGdhOWtTdUU5\nbTlKSlFOcWRqQUJ5ZXk4TWR3em9razQKLS0tIEV0MUtnYTY4azF0dFhRbHQzOWN1\nUG9Hb3VhL3JXK0krdlZxNVYxYVVUYmsKGttTBJyvfeWMQ6cQOwISTjMC7H+EY9Oe\niQ14q5C8wAdB73+Vylnd9/RaTlRfjsYrTRvo84ETtDO1DcW722Q+dg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRWZmdTdDNDN2eUNRY2ky\nUFFCK0xtR1FMNTNORGFtNmdTYVdwNEZmVWhJClk0eUtZVVprVXdBQThnU0hWcWhL\nZHRCVVdwT2VKNWhhVk1LTTFoWGl0eWcKLS0tIE1xSk5jUncwdkxPWnl0YWsvM2l3\nTENibDhzd1JyUE9zMVlUcVg3aGRjZjQKvcRZSFV05Mf4mAJwR+MTmAZn87+jCE8W\n0PTg5H2lcH2K5JmyloxZ6KKjP5x03HBGoHq8NJqGYaKRESLosgykkQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:10:56Z",
"mac": "ENC[AES256_GCM,data:2jvP7hr8+6LjYaOxjGqODFnHFTYaDnwSbrfqNwQsvxi6tg7DFLECVWYJIWY8O1J7FXDK24wFiBAC06e9QckAIYvAOoo7PvDmd6GjGG04H3zsLpbiLoaeZ56k0U0DV5nwm1W7KRAOaGgxvG1fBu/7k3Vyt0po99s1c9KdYgoUcgw=,iv:fd0Tokd/UELM1DzWFEDQ77Farca/rMs7bQyxDmw4sUo=,tag:BOKnKyAoiqf8QKHHI1o9bg==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:22:58Z",
"mac": "ENC[AES256_GCM,data:zV4mVU6C6xhsIL/QSWZfyHtVTiqTRH7ZbLR6W2J+DSpuhV0q1dzhF65Yh94g8u65zG+BYUXExqsYJkRkLITDAkfbiHVu3amRLjiUubQEi6AIstKR8mNstJZWhpDNHE7yK2L9enzCpzOtsFPgBGrgmh0xAzsstoOEri3peYH1tLY=,iv:9xtpwSPxB1c3XBrMjU9A+rjXyNDS9sw3pypjBhltfsA=,tag:YXFoKeIBrIFInuxH/2e2ag==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:u9zmKAZ0lB8CdJ9UBzhd5RHaUO4+B3gm7NPbe2S3ZqNE86K5VQTIqyzRNa7SEcr5Gz5tRVV2Vorskbu1yGKbR0OQoy+hPhEBIDfbZqL7rx/iz5fuws1MaU6otyZ1GPO3G8wQGMmVeeAZiLjyx6O7++Z+2TmmMpQ=,iv:g+ui3d4Ycwf41/WBFMn4pDnnAooxjMW8tyL6GWHHDAU=,tag:ZHjYhBqgWtKk70UKiHUbhw==,type:str]",
"data": "ENC[AES256_GCM,data:R+NxQ5exjQVFeIeTUOzcU7SdUZpNsI5GYPf0q45UXwvrnol09cz1mofjOl71QRK9VROJndgXm20HdwW2zsl+3Qzx237Awd6qBova6h9COLTefaQFYJnJ7iTTyVelkxSm3kpjNciaQ/D3/oqS/Rt6Jadz0sNY05U=,iv:kMSNjC0s+SfMYJ3iYplFIslga7fDvS++/UbP41XxXlY=,tag:t/qsFDlKty91jS3J6J0sZQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzQ05DQnZNb2RYQXlmSU8r\nbHY1TkNqUjlrNjNCd3pnU2dLSHQyRll2V0dBCnJBY3haVkxSbjlZZTZNeXEvZFBW\nbFQ1ZzRvSE5NTysveHEvZktuT2h2eG8KLS0tIEhpTkplVkd3b1dUb041U0VTdUxJ\nTWc4NUZESmEwcTVXazVNcGVmMFZISmMKOSthXJzT3o4OMfhToC46T+cs+gq64La8\ng6PY+HikpY620CmjegxOE9VO7uPfAqZRAjevzbmlf/Eo5EPAU1ZaKA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3clYvbXJiYWRVNjd0RnNz\nVGhiM0x2S2lvV2tmZmhSMzRHaHdMMDIvMTJFCkFJU0R2NlhrREgraUcydytmejZU\nczNZdGdhZUk0elNjMkVHUnI5d29mZlEKLS0tIGcwVCtNZHFCMDNnVXY4NGlRYkZX\ncWxCYnlkbFNJTUJ6MU9RYVBsbTlOT2sKMUeIAmS6wxbW8m0gfAVI6t7GILUf9CoH\nALHUy4uBqmqF60WFxHaxAPyLxRpaB7C7lkUqY6Xb1XCkE6o1qRr+aw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkMlI1YjRMdkJHbmFxUDky\nQUxvaDJSUmVPVDZOa0o5b3RONUJ4YUUxelRzCkE5ZW9uYWphdEJycCtyZ3BFNU13\nRnkxaVMxTjcvZ0ltQjRSSTVKV2RJR0kKLS0tIHRORjJzSE9MTXkyMUoxbXlzcmdk\ncnM5VEVzMlpwOTR1NldGbUlNNFlPaTQKum4fTVp1lPSQyURu5oVAzLUT1ExLwEpA\n1DSwypX3pXJOQxQwYyTVrAplcOz1e/5Tsglnq5cgWOB0kldQ4Sh6zg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRYW1oS3EzOXRueWZqeEFX\nQWFoOGk4RVdNTWFZNStKZ2tNM0UvUkMzb0VRCmI4NjFRSHhvOURBUFR2M3ErUSs1\nMHprUWJmK25JZDVmUWl5SWhoNWdxUEkKLS0tIEJ3WlNzTGZPSHBnRVAwWDdqVU5O\nYi9nWmtVL1BGZW5EMjIxZk1SaGplb2MKWQOmInOODPEsWlWPT0KIjT6ul/j+OhRw\nh79lUWoQorFvNRVqSs4Wuz4G8VFAJEGVTItd3/Wx/OSpSazZsDGlUw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1dytdeqtct0jy3vvmqvapgqjf3v9p486jjcpx60gfxwgrptgyyqrs0lj9vc"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZhaVhsVXhm\nUFhhOEZVWEVucjZKT2diK2p3bHNsVjRVK3JaSUl1OUFkbXcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpPQ0lwbU1TZEgyb0VhSGhoeWhIUjZW\nSWhOclVRcnBOYUQzTmUycUkwR3prCi0tLSBQdjUvd2FmeG1ENTdodEhDek55Y1NX\nTGpXaWt4K0h1U3d0TXhoQkRNcXJrCr0kO8qRnZyR6jPbMneipRfFKWr2WSYUL7OZ\n+LAQeXZWUAh2eG+KCjJdaJDrvlPLDjFKnVygR+YBT+RtwtRFhps=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVuaHh3SDdX\ncHBNRks3NlkzbHdwQTVQOEFRcklxUzFIOWJ6cDhzRlpOWEUgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpWWVZDRCtFZmpKTXlldlgwNExwNHJJ\nUi9oSDBIYXFyVlZma2RwM2xsYndJCi0tLSBJNTAydzQreHM1eENmR3d5Y05aNUNz\na3lCR0xjQy9YendiQzBDK2N4SzdNCmCTZCDaf+jxPsyV1hLP5C6lRGX0meS+JePs\nbHwhT+8DAfUXkzSxvhbrl4Y8hpGFE5AROr1UH35tRTO1E2YXsEQ=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVFS3c2Yzk0\ncWV2akJCSllNMXpTRStWdlhwbjNiOEsvam1mT1dsVWZiQzQgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpiOWxjR1lUTVYvZjBQSUt5clZVT0Vn\ndjd4cndCc3lUdzNEMjlXbCtRY3pJCi0tLSBlaGtqU2xoVDdlODFCeDdraUNoNkxF\nT3duYjZlM0ZNcDAxMVBuY2pOVVlzCn9deDTpXU/fqPQ3ZYo6Wj8Sh3Q2lx9RPvD3\nSmV9uiRypsYtM0x3iOTOP0Pf4vZVEDwbSjf9XjiLPiXa1MDo0yk=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGxwd09tbldE\nVGZGUWdZbkRlVWxLN05SSWFTRmRURFRvWHdPRnJIQ05mUUkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpjNGYrTW9QalIvZEttMU93cmcvK3dm\nTkZXdThqdDlZTmxOZXg2UFk2WmVrCi0tLSBHV0FVZ2ZKNE4yRFZjMWdYRUR1eE4y\nOVJ6UmRpODZHT2NvZHpaRUdacFhnCqpLFBNxJUiTcrafj4dkYn+Xu70+0YlJrgJr\nmRs3m2zmgqjCheEF8UOROh/4P6iIJ91Nn9eqkoYzq36dDLi07ao=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDlqaTBuaitB\naElUTnlnU2lLUVdHMlVVeEwxb2tySk1JdjlQZjBQUmxYeFEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1bWtrSkJsNTRjZHNxRXpCOGtVTno5\nejZTaHZ0d2FhMUhqU1FzZjhyaWJvCi0tLSB1bjlscnJqeFJIbklDdjdIUEhONjhJ\ncW9NbzJ4RmZHUExBSHd3c0JndHJ3CqTIhy9BPt1QK4bRZeU05huEL/zyUTZmqL5A\nJ0VqWdoFs2qb/vWeHwOnjEBRZ/FPQr02aEuZL17d5c1xnpP/fqM=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDI0WEdSQWps\nVjErbWZXdENNaE5xT3JJUm4yUWN4SVVQaDFzVTBxVDdxRDAgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo4TDNKODVMZkpwMFJzK3NzYmFQR0xt\nZjF3K25jbUFvYmFQQVBmZ0xmMmVzCi0tLSBWNklLR25uekpEN2R6K0FQWG4vUkpT\nR2xvRHlFK29kbkpDT0IzR1Nvb29zCm8nmELiBQHQPj05TC62Jajdf0W8fPEdUBD6\nS7g3uL9xHCsalEU00zX8yE7IgKQ2yk/7u4VfS5II+MAFVVqNyG4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6TzAxYktFUXRhTEoyTHYr\nQWd5MTlQcUgzTXRhWlNTd3lyUXlCMEpqa1hrCkI5dERSZlpQN0dwQXpqcC84b0xh\ndnRZWkZsZms2VVM3eWoxbEVaYTBoTFkKLS0tIFdVTVJYK2d3d1VsTkhSWkM0NmJI\nTHBqSFN0dWhJRFFVZ05xNmZzTFNPRm8KNCDPsfPE6O9ntfZIuvH8MfKHRl5xCwUx\ntxvU0Wb18MXdx831vS4xm4G9d5e+OZCbo9ZP35cWu7gSFMcCG/rFmA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoMnZ2TkEvVGpSZDh0Vmlq\nd1djaW1wVjJMYVFsOXB3WEk0SWJDUFFRM25RCmt3QjdESkc5bWRPRHByRVZndmtT\nL2tRQ0tjK0cxbGh0bHUvcEhUdkx2elkKLS0tIE9RTStXaEh2YzBQRGR0Q3VyOGo2\nbmVNYWFXc1JVMnhMTTViMXlwQ0h5TzgKYBonghKjAdPr2wqoUqZxFfMct0Hhlfov\nI1DivL+Ic6dYLFuiSifAZ3LcEq19ZwT9VX2luwQdvfeDaOHb0iXUrg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGU1pWdU1sMUY5VmJ3K293\nUldMSUtxcFNwZkJHZWNtOE9CcnRqRUVwaDJNCmxza1BwdVRNNGcyUmJ0VGlMQ2tM\nWXljVkpnN1JVdnRrc1puZlFwTW52TFUKLS0tIDlKMDFUSmtWeEx2UHlKQ0t5SFRj\nVUhzemp1ODRKM2RhVEc0MW82cWZNWmsKfv8mpvy+rAg07w7uVw3T5wbhjluz6Twg\nByAf689J9J1S3RkKqcUJox+gfXkcmZvawhuDeS5mrjoGcH95KkD1uA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzd1ovS1RkQUJTV20wNVRn\nNlRMeG5Xc2NNdWNjazd6OGFZaUtTUit3TDFJCkVlL0NNRys3OTF5QkVCbW5xcnM4\nTVllV3JDYmY2SnBLaGRIbWdLNEpxMWcKLS0tIHNRWjdNbWxmS2ZrUVJEVEJiNUgw\naUtEazFibXBkaGtjUWlGeGc4ejZiMmMKKVBY3SPfF72Kbkm5a/nGCUGqlho8bZ41\nLb5fz3R5yBC4m09mW2myLsUN6RwLCF17k5jmGTdrrxAi0KRLdiqpog==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkZTJzRTFUV3JvTXRjWGpj\nRFUzWS83R2RVZmtsQnBIemVybWF2WnBqQUVNCnNHRnFVT0pSdlJhN2lCdWJYdWRa\nMURUNFNJZGw5SjMxaEN0dTlCVFYrUzgKLS0tIHpUMVlLRnVSM21uT0xiaHowV0VZ\nbUx6TGpWQmR1Y0FLaGIwNnREVWVCVzAKkmL9X2rySt58MzX/jWCx/B7yi941SUkg\nUkIK+3ahHlCFmIKOvj7UILXEzeUioZEqcOeBeSjqaJw5j/KQhs8sNA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3RVRycndKaFJ2UWphL2sx\nR0c2Rlc2bGZMR291Y3BnUnFqSE5Nd2U1V1FvCi9OR1Q5WXNoZlVHcFVPeUVXcytr\nYlhsVG5UcTQrWU15aHo5QXVpUW9rMmcKLS0tIDdUeHpPNHY5ZG9oUzBBWGlsR2sy\nWHdpWGdYWFh4SGFOTGVFWXhjZ3UyWFEKLQBrfjKhZI/EOKP3whbGcOKjgNBhQ7+w\nobQi7NpggHj/XyZblwnZY8mRGJmusHFnpvRH9fey5mc7sFrz3ld+iQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRMXNIWi9RVHNBRnJwOFZl\nQWh6UkFuNEdjUUZJaEJZZENMWFVNeXVPckhZCk5SWXNSWUxrS2lTYThuT1FNdkE3\nNVc5WlRpbUtJd3FPSFdTSG9Sd0NnOVUKLS0tIExJWmVJaDNWV0p2bEtTemg4cGxD\nUkxZNDAwMmlDRTRiVFZoL2Q4TkcvUG8K01yc54Em7MxRehKAavUeksTL4eXYOGVU\nATgcZfBy7g5kTwvB+6rqsFHzRCb7MO/1HfO+GdlSXS2+G3WhOCaTbg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWaXRhZTl3UlBPT3gyMFR5\nT1c0dUdaYk5Ubjd6NTNpYmNjTm9OY2FKY1RZCmlOOGp4ZUdLbm5XYVZrWXkwbFUv\nSjlnOU93N1hMeGlCQ21GZlZHb0MwTzgKLS0tIFhPSVhqUW03eGJGUTlLZWd0QlZU\nSDRuMUdTNVpTcWRCaVlYZ2VtMGZDUUUKPzjrJ+RY0V4uluw+irte3c8o9ZehIYyC\nd8eEUkiIQyYFX35HRfENhWQNWHGI2I67174BhIG+Tlq6IYveyZqe3g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:10:57Z",
"mac": "ENC[AES256_GCM,data:FH8/Lmekcn46FKFiIFSQDt1+PTs4jbMKhUBvGIraX1lXmzH9UicFmV2mbZF30aZSy0soD47s9Y8sB8FEB8TLSl9m7VdjOsMVjf8nMp1tkmCSo4eVW3W6xUlF2XzXPU/jUSHVkr6JFobWOdt5SG3ppuR2+L6whgJsfKZC5nNJ+fc=,iv:I/oMR8xVqdT3Nbg/JTjXQenFaAGXldshN/Tqz/xb7sM=,tag:XSuzRfAaDFJfhguDeLMieA==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:22:58Z",
"mac": "ENC[AES256_GCM,data:Oco7hHhqnqRrMsywzzLzrfEDGj/eLBYraGDGUc6rSd/P5CLJq6+yKZDLsVMuH78nc0t63+7j076ls/stn9eGyIJTdScNXjjgcFe93rymj6vZk3Omhqj71R9y0/oXzq7Z3X7C9cYhO/ogJnCEh9f4mrSKZk6MQFyTycsceDJGjSs=,iv:4FR+ijuWKaE3N2PzOvC1aJJpk5Igr1u+lgVH34vzLpM=,tag:oPqNnpvnAQoe+xH6oztVmw==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEArdhZL7Tv8hd1gawGQAWOaS1u6ThS2KzB1tVAdPBBDI4=
MCowBQYDK2VwAyEAUPHlpMig70QE2JNmAfdii13rL/6XXfmV1MZHNaXcAEU=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWMWz3HFeuEP3Y91LHf63aCzJJYkBdGZK8nrFX2iAUKTv5
12D3KooWFGLih1AfPjgXUnA5ugjhdX7aucNEVoPCVW49ij8kY5fr
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:IkhX5F7FCHzYGh2FHM+/lAL4T02hh1j5N5yEoS9eEsf0bwvr8lD3aDjzkcFe4CzDnloOsni2GPPmvsNUl8F4FKDnE6MGrC68nU8RXh+EDcnYyOaUIfFVMJllopMixH8UKVID0wplzHTw7UTd8YbpoRz1gR8/Efl75SSuTAJQGl7kc51Y9JoO4thx/+Sh2RVRQsS/3ZMhISId3+4rb2IXW87T183XaUwj5n3xtT+SUEdKIgHopx9921z2v6QHmgepZeyuQStss2MiJlu7fcubOGNUSplX8SvEWSSDjlJrr9iSbFHHvRq3ih+naPSZ,iv:QdyGkxQkfvihBNj50l8Z5c5fsexnT+lEG8zMdn/eFag=,tag:D6fdixoCeoiBOLh3NS9oAw==,type:str]",
"data": "ENC[AES256_GCM,data:jpN743oZJCW693RmUVEbjiMHrPLvtvZgv3iKXLPnTndb/mmOWDUhN5EUwE6zQ5ZEAYc2pbiJZ4Z/YpSnGefMMOhyTkvPZq3+TOnL4sY4FG/iBYb57sSp+r5eUQ4q3qv5WdCw3SVHtXBBLlySXJ9w9COhbWNEkFMF4duZBCdxKfmVXGFYlj5eotI4QOOvKblRoB67P1QLAqdtgJsf4z8brIdT+FjycMQS3va4We5yCs3TPFgFBlndydTxkxFDf7excEmTpvyNcTjl/QejaWfgrSejA3S9NW/A+zsBxuD8HY9KeMSUwTVVechWspNv,iv:bCH3Pi91vlCxeoN6M5DJrK8ZyVH8z0SAwwNY70/32Jc=,tag:nUt/OA2mn7kc0a3JOjxReA==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpK1ZLZ2NrbTBGTURTakd4\nUE9WOFhwb2xaNnZ2MzFOTWg4QjFJWUFPU0FzCjhldWFZcC9KT2J4Q1pySDlhWE41\nLzN5bW1yVHk3b1pPUnMxOUR2YUhoOW8KLS0tIGpzcE1xbjBOU3Z4K2dFZUNtRW0z\nSGlJS1BTNEc3YlV1ZHBqTTQvc3hzUTgKwD3/bmzAnY6V4kOjAWhjTvVOWPTpzXQf\n0XHcL5sLUFl8bm9/xEflv9lgvGcHygFJ7IfsmN2f0qleeZjfONZYxA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWV2t0UG9MRzJTaisrYW01\nbUNjTHFlYmErRGJLZ1ZkRFFaQjB5SXptS3hBClVqRmJhWDRIUm5EOFZBWU9hM1ZC\nOFI0dmVSalRXOFZiZ2dueGhTVkFaTlUKLS0tIHAwdEt0MTUwK1VJL2dnTXNyZGQ0\nTnNmZG1DMStSazROc3RYNjNMNFdIQVUKuSKPPwkpU01raTZhaWKokg5U5Cffjd6H\nc6+Oszljbp0rxTTaU4rGwnBg3HPCRZ9cpL5CGY3v+7Qr3BalFd98VA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFg2eExFY3Ux\nRXhtb1o2UFEwckRUZnNxV0p6eVJ0MXZ1Mmc1V0psVXdwRUEgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpJcTRBYTFGSEZUVVA5REFOcGNxNnBD\naGE5WW5iWkJQT3J2aFZHaW1RZEIwCi0tLSBBM2lNcXlJOU55U3J1ZStNa0hjbzBI\nbER2UG1jWjNWMXduSExvMmZUUUxrCrnok0aBZJ9CvKMKMeFQOyvS3pgGp9wciRVe\nmBA7/w8s/WKlQ1+qPWinr88B4S6qOD/MatPs7iOCSZah8i1ATVk=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFFBSTJEQ0Rk\nZWFLTUdzR016bkhiMjVNQldwYlJpVXRRbVJldjJBY0J2R0EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo1M0I2UnpRazlZYk5qTDZiZW5obXpu\nTHRXVk8wY2UyMjd5Z1lCU2hjckJZCi0tLSBoYVppUzRnZldYZVRsb01QVlJ2V2Jl\nUjluRnFSd0tXWGo5ZkVzZk94TVpZCinlPLHnhZ2VAtw6IgwZeNKn9b3VkrDP5oHm\n/cMKdTecHCwSi/dgNIE60PaZLI7wL3YhfuZ0LvSEVxV8Oa94HTk=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDJHVkIvYTNh\nVHR3WElqZ2k5MVdpMFg4NGZ3OWV3VWVtTWFHcXJkTHBjQXcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpqaFJKVjg0NGYrbDQ2QlB2V3pzVTZt\nbnVYZnhRNGZDNzgvZ29RRTRmcE9vCi0tLSBvZjVHRjJUU1EwWC9XUUlFZExIdXZr\naDJUcjJDSmhueFE0cDlCalZ4L1NNCtckds9jTPWdAw2RF8RbLYWWl/FYy7nVyLEc\nyLsKZS2/WtBe7C2h9GycWLq01OK6nRseXlbh0dAA6T5hwb7zqsY=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGo4YkhZaGdG\nL3g2RklDSXZDUGxNeE5LWkx0STM5UnBQSnQyeThYaHZtMXcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwp3TUVLL2RMV01UbWUwWEh3Rko3T29Y\nT04waDBOZDVzRTFLMHFpOHhVZUlnCi0tLSA5WUdTRDdBYlBLWUJDYS9qd21kM2t2\ncmVsQlE5MzFIZUZWcXRWZzlJbzVFCvMOJgNojHkForlCRRHVCz8jh3qbsG76wJCv\neycu13Uhs3xUZXRXaaWz6PnTvu5aIqfuuAmWzqMkwtnn4LNS73g=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE5TbnJ1K0xK\nSS9CSVZnRUlTdmJ6SnkyNzZla1NjUXlaK0FkYjBDSzlDbTQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpySUgweVNuZDZOcnBwdG5kSmViYWhM\nNVJrQlc5TExtWUcyL2FuL0pvbVlvCi0tLSBnMUJIeTlnRGpVTTZmVnFnUEF6bWNV\nbTN0N2RVeTdaYnZyR1ZIUUxMT0tzCntcvtSw4LA/scYnuFLQooxRvEOYz56v0WXd\nEWtlMUtvjHMn9cRVBEUHkTnFENkea+r3is2yF8PYlSMxNLnI1pg=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdEKzlEQjJK\nUlRlL1ViWnlnN1VuN0UwNzViU2tyUkptSlJzSVVFTEczM2MgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpvS0ZtSkdMenAvUjJ0djNLQ0ZieVNO\nQ09kbFBidEdZSlRpODVwL1I0R2p3Ci0tLSBwa1Bjb1NnM3pkYkptVHVwcCtvQkJM\nL0ZweGd5dkd1d1ZoYmx3cTFSejhzCpRuyx/9BC4lgjric8vAi0bm1wcxwJ9aNlXB\n5gi4NHOdlABd5g52AWfQI8WLewqZFwIjvOZ+ly7qezaCGU5iUoU=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGdWIveFVTM0tSUkpTMVJk\nU3RtQUhqeFd6dVlZMDQ3QW5vYUtMeVlHVVdVCkJmZmdmVzhHZ284dDhMV0ZGQzE5\nUnJTbmpnR2ZFVjdtemV4V3pCLzNSK3cKLS0tIFdhZjhQWEY4YzRoVkFKRG5KRUJB\nQjhBcHhKbmtaK0c2K0oxZHM3anJLSEEK0kb/ODoqLUmHQOnlN1pqFnvwTYBXUyq2\nHiZb5sV6kpBo6BnKqCe4WaFPZ0nLk7dN0OQ0+vTT1SiYCcf1U5Vvsg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT2c1K1IyUlBWTFE4N0tM\nWGJzWXlLeFlneU5XTlJvaWIwSDFyeUcwSzNZCmlXT09yeWVkVzAzQkFkMTY1T2dL\nU3AwRFBDSVQwbHZPeWRHU3Y0UThKZnMKLS0tIHNIM1g0QUNwTGJjZXR4Ky9TSGZH\nUDBJbCtxS1pTY1FOU3VDRFg2SEdzVTAK/1lqbedEyTtJ42j/Kt8QV0VgrBp3rXSL\njZAgBdPgp8wzsQOmKt8+7z6xlSqsL/ZS2tv8p7fMJ5ofsgrtIs7lSA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Q0dVUjNhRENINHMzSDhY\ncldMM205cmdzd1RKS2tLcTYweTh5cDQ5bFQwCkR4R2xZWE1zWmhYZFV4eUZZdzRI\nMVRnMGZFMVhWYVV2VDdva3RiRTFaUUkKLS0tIERnekR0MERhcjFUMjZQZDJoRnhw\nRVAzcklCSnRIL0xTaVg0d2VLVG9mNEUK72YAp8Cy6EOOSY0qlVJbBABFyjoLiVMU\n8wxxXCCypQBHcrhIJr9B1owlhO5r2g4E6mHlu9yVJawEcRa22IEnLQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVenBMeWRqTDdxekIyZEk3\nVVpVeHVvRzhabjFSU0pyUTNIZHY4RFEvd0ZFCk1kSnJBazc1bjFLOHhPL3BHZUdr\ndXhsVmNhVit2UmYvcUVSM29sMXlSbzgKLS0tIEpOUS90a3FJbnBnMmVYbTBZeElo\nVlFIREVRZXQ5emw2QmJGb2ZsWDhjY00KdiNK6NFf5PQ6VHRIGk9uluc+wHoU9uyg\nn3gMXY22lV6vH7Zl52sumUmBjlIGFebrrE7mXKWvJ6v+VLZj0adxNQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4Y2VRYVRReHB5bXpHaDZu\nY0RDVW1nN3IyUFdVNFFMQWRwTEhvWk9ENmtvCnZnck0wcGtjTjhoRjV0d3R0aTA4\nRWhxb3I3QWg3STBBeTNQMnpVTzhMaDAKLS0tIEIwUm9oZU9YeTN6VTJJalNqd3VH\nZzBxQlFBb0lPNjcyM0o3K0hjNktudkEKiDQ0HWnCPJe5b1z6XvkQErW2Aop/1a9l\nkDcpqqlumdnd51BSMPE0uXfV9DhEA/V2f+TyPWpW0v8O3RHO1JjDOA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFUXNjTFdWYXRmVjl3Z2Fz\nWWdEVVlRUkUwQkxEVGNsQ2s2T2hmVjR3dDJBCjlXL2RtVlNsSkRtVlk5cDE0U0dZ\naUFxelZnOHRVRHk3Q2crMEZQSU9mSkUKLS0tIHVLTTY5RngvWmZaaFhVUzY5cXNL\nQ3BEUGFXeFFkdTVydGo0a3ZOeVRUdWMKKMKHIZi0r7+S05c69If0qSE26/71KaBE\ngs10UmQ0YBnDVMmPkz2KDj9hzQT+iY8eddfeay6B36Bm9y87XZqrgA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWUgxdUp5VVcvZTYyTGxV\nOVZJNGZoVzdpV2FzN0luK09mOWMvYmVycUYwCnZBT3hwWjNkZ1hYL05MY1kxOXho\nSWNoVGRlSEFvZmRBV01rUzhLZGFPdUUKLS0tIGxGUzhGRmV6SWZ1VmFHbVYrSVhU\nbVRVVkZja1g3UytHSDRuMno4ZWdZTUUKD0Exkylm8o8yIKbnSYqn8tV8StpH7lz1\nQkKCFB6Gw9qRJv7a4YQKeVsTGv8kspylVbDEhoZMazHzUqyrBlj+lQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBMEcxcDllZlJRN1FHUk9z\nUHNmUU1ndmZWc1RacENJYlBZRTNOMGU3ZUJ3CmZCOG82TWxkbWFQVi9vZG5mdXhB\nNStob0lKTnp1NVUzcUFGZlJYOE5hcmMKLS0tIHArKy8xdVJHWnBhOG9TOGV0RHJn\nNnZpLzlsOFExcTl3NEo1U0hqV1ZMdFEKkXW5TdHTqyeKmQ87DTA9i9r5Ri5I9RPZ\nl+WtuGoXlhCS5nASavw852ob7r/TAryld/um0yAy1qIhAnnCAuUkBw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4RjB6c1pLRXBoUHVPWDZu\nRkZ2T0o3QmdObHNiS2dzSzlieHFBSjlXQVRRClFDUnFkdTFtdW5VdFd0RTFLUytq\nWVRUYWMyMUY5UGRHcTd1KzNxbzJFcXMKLS0tIFZraTFyR29BRlhBclFTeHYwelpC\nekNianFCV0JxeDVzOUs4bDRsbzhBalkKQ6E2Jvf1d8OxtHCNXZGUx2bSb0V4YxSl\n1Rd+uyCuCz1KROPSiUhHr/BYo+9P+nMNjKmWpdwNcCtDX0MSGzlNoA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0WUgvK2pxdWptVHRPa2pW\ndXhURGFxdUxGeXBtN2Ruek1lVVVRc1B2TzNrCkZJY05Uc3R3YkFqbUQ0Smdnc0lT\nMHVWU1JPTWtwYnN0clBISU15c0VlRncKLS0tIFRNeHBOcWJkODJndXhNZlpWTys4\nMUxnR0tzdnhVL1J4bWlMU2c4d2FuQ3MKh7wjjRzAlAVeAr5jnijnhcbcm1sOz/Sc\n5sol3UOS+OahKp4HRi0ob2TbDGLr1ZkyEo8RVRiIH8GzQIR9yqNsjg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1yrqpfs0wtaxg9p9058g2gyq7kffjnnqdw26wa4a4uvjqkzvmq5wqvdtgxl"
}
],
"lastmodified": "2026-07-22T03:10:57Z",
"mac": "ENC[AES256_GCM,data:l5WV6ziE4T5F6akfzoFUQziLVUC1BV6eHQecLzDvgv/E4HBeWvl0Ljp98sgBzTklfk1yej5ez/onlnWIEcm1fREtpvjwvgoMDaC9uXMQZUD/spvDywBqi6GVZjFwpk6CnKvKAsWl91um2s+uLVjbaSC+gg/Gf0E+UeQ4+fNk3Ok=,iv:2CtAJuTPi26voPPCSZfvP0qmhYE6aQ3Rjez5cZYFJZc=,tag:bezGvYjUGLYYNhKJTsjBrQ==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:22:59Z",
"mac": "ENC[AES256_GCM,data:yXdUpDOVk6u0SS6C+f5/CwVThgSWUfmEF6J8QUnQgJBXJMilZRlqgTXxb5JfydZ6FHo+t68Fq5b/2aeyQGR4Acj1G4i2OgY4ar1XkLHk+NFWVIQqC4v6V6WS724wp0wkWXFbDPFMt6hNpOqUNMQ/CC9ZhzNv320wimBpTlS/paI=,iv:+VW4Oy4XTAImddscUGcW/BAiUFPmvw5YRrQs4fYNl60=,tag:9rAb3/wWdAPpxjQXu342gQ==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:iRv8Z4YFv8u5gBydcOXxWET+6SqaxcKtN88ed8fNEuU43tC+wJFtpSaxRV7scVFlQUesj0pCAbbqSDMtexX+Yfa7cwmiJJsyBJ+iSankLGfR4x4V2Sq7g2ezcbivHWvRgiZ/Y3P3jEWg478lBztX3KpDO5Ld65c=,iv:Z3J3TgdAD2nUjqdif4lEz3nZJwBlo4BtjxMJOFrfeZA=,tag:8gTZlHUY1hzE0ww10aLx6Q==,type:str]",
"data": "ENC[AES256_GCM,data:d2VwqxVXJ+hj2TJQnIzZvnSgZsLysDWbiqGJBr/ocdETcSRNUHbqnk6DP+VugxQi1WHkbuWDR0gt9M6PUr9o8mgsoMuEhXSclqMA3yXXZ+wIFeGBIaCsCpTwZyFcVmO/9gsr8FE4e4dPWPUFRgu5IJuIOHwa/qc=,iv:VTR/0BMVDFFVGRNBYMt/1oVdJ+zlQvuIF7ro9Y+/Xj0=,tag:Mkeypet8zewn8H5FBqlR5g==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUY2dvLytlSEcydmZSYTRD\ncHZnUFBISkxEWktWRk91SHlPakJwK1hyanpvCnlzaVk0aTVseXBZUVFPR3AraHla\nZmp3bzFsQ0VHRFhsb3o3Rk9SWWJodDQKLS0tIHJUTHNwdHhyNWhpc29ENDZVWkFU\ncjkwa1prbE9OWTM0ci9CWUFKZHN1YUUKN/82dx54rM8R+tNC+DIyBSQXI3MdbbaH\n+XZLGPnaU+UW5tMfHE8hGMr4EvtCXPYaRs650SNjSRlZTPg39iVDTg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpUlh6UE5PQXY4RVMxakxr\nVzdyNk45YVVQeFVVdlJQRm1DR1E0bDlyR2o0CmZxc20xdTloYXRkNVJmSUEzcDIz\nTTVYU3grNHhpNEQ0aDg0a2c4OHdyK28KLS0tIHlkaWhiWlZHK0tzKytNMGZGQmpD\nZ1FSNmJ3dTNtQjhQeVFwaVR6cHNoWEkKMsHyTUI54puge4zUj0QiPwg+29H+2rm3\n4fbPUA/kkYAo/b8k3MSpIJbSc9e6MOQWUh70Xvg6BM706f3lz3NBSQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE5NeGNyTWNv\na1hzQ1FsMFFsMDk5TGUrQkdJdEcwUGFUTzVqNlJuTnJiV00gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorM2tGMXhOU3FMTzZmY0lkMmc2RUY3\nUEdSRERvUnIwZFNoVFR6TXZESEk4Ci0tLSBlWCtlQTJ1K0pNbUtza2gva3VyM201\nZE80L2hRT0E0S3BXbjFlS0lDRGMwCkCKnJNOEUTsMSNiGrdQOnBaxLEA+inZ9tY6\nqRYyTwZOI5CUKem8pDvsqe81bRgkZzklSuxzOODXcfZgmFN3znk=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFNONy96S1Q4\nci9pTC9YbGV0VzNqK0pDUlk0c2t6dDluSUwxQ1FmLzlabm8gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQprZjg5cU1zSUsrNzRoU2I0eTdyUCs1\ndjZUOUI4NlFmWlJVNER0QzZPa1o0Ci0tLSBRMXpXQWZYbGIwbXMvTzYvY0hUNFJL\nMVgvSi91UTJNZlowOS8raktRT1dZCp58IkgaHzbMmNRYEzc/PeyfnWgL81sIzYdw\nrlZd/4s+wHAZUYJk4TWOSn/eUiRaO1YqPIqRd4ApGLHXL5yXO78=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlGYk44bEI0\nS0treE40RjJMakh4b1ZGVW1BQUIwbzRnU2VUbjlsY2w5QW8gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpWVTZJN0RKOVE0R0t3TXJnY0hsOEow\ndlVuTGRTRmJId0V5b0xQRWhpR1BrCi0tLSBHSE1Rd1FndTJvSUEwTjNmeng3N2ZF\naXUwQk94OGFCUWdVNFJKYloyYk1rCiyRTHUEi/SEpFrgbWtlI9ntC5Y2nJMyqv04\n12hJiOZbZA/xvEbANVTq8o0tl16ftc5WqGx4+0OHjg0rbad3oH0=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlzYUl4bXoz\nMkZ4OGR4SkhPY0RweW9OSTBqWU5ZS0NOZlJGdjRNQVJHSDAgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo1UllSdzE4V1dUSWowemU2MVdSajg0\nalZMVFpCNXdwejNrcEE1RWVldTJBCi0tLSBCQzJSZStKTUlZNUpVTWVxalFJNytQ\nVTVoTXI0S3VIVDFFc3I0M1FRdUp3CoJ5qH4HCvA47GFkKMCNQzRDC3k/qGBwIq3y\nSFrR7fqNV77JXqLMzYvBbfj9c6MNPF3+xT0v30gDRHOEjHZLsS4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGtxWUJ2QmlX\nTm92MEtYVzFFekRTOFptd3Z0cDJaNm0zeHo5dzRqRjFQR2sgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp4NGF0cEkzYmdXQ216SG9CaWJGN1FH\nV0dVUzRESXorUHZWUEpJdURWN0RjCi0tLSA5U3lQME9yaVVMQ0l1SUZtSThZbjVr\nbWdvQm0zRjFMYU5BRitGZ1hMNnVJCtSmUCETAjWgnTEtSq/moRSpcnx3FRWIpgga\nr83gbN7SYNgoE8hwce/2tACkF1fhBZsMSUyPSnNEfrS+7S2T0Wg=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDFEdEFQand5\nVTUwYStJV0ZVVU1jTzAvLzdSL3V1b0d6VDVpcVZRUmFzV00gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwowQ2NMMC9uRWJvaTRma09NQUp5YWgy\nQ0c2dy9sV1FUcmlqSUZnOW8xN0xnCi0tLSA3LzFvRGV2SjhaTG1mTmtXZTBzeWFt\nRUVkQlNEV1BNQUtwUTAwMHNlQ0E4ClI2qbz5ZSocRAoDpQk60lz4agl2VutQ3NUh\nPPgqit4OCu1le/4YNzcEiL/nI/Lntv2mwUwZSHUrQXmisYdc+js=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHMkVUSDdBSW41aGZTY09R\nVXQ5eWNvWjlEWmkydnRESEpKUmhoeHZVamx3Cm44dklycW9HNXR3dHJuTXJsSmFz\nNFBiejJQQzVtNXFJaFZzZGk4OW05bGcKLS0tIGdHNmpoNHdzbll3cng3ZHBwL0lY\ndXQ2RVNjeXl2Q1NNUHg5cHF3a2FtTnMKvlVAQjKchpxPZxA/RPu7GP2ddTNrozRr\nV9oTDYbzSWV75ikcWeX5FuaRWspzpjQkQ+zvZV2tWq/dKsCz5PoVAg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Y1JqemxRQ3J0NUJpYkdP\nVnQ5bjhSWDVHbExNVGo0RzNmQkRpODRFMEU4CmZXR1ZPWU1OOEp0ZzA1NEpWbGN5\nOUhNdWFPc2FnemtGOFU4R1lsRnNWbFEKLS0tIDFad1k5VjZuRUh6N3hzdnFabTlE\na1lxWjlaSTFWRVJiQnE5OFRTQVVDTFEKFwsH7QGMIpmDU/NO7YfV5OoAi4B+hdSh\nP/7Bqojw/0dkMszr6u916pLgpZj2Tn6O52epuyfuuaBLVpXIJFw3gA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpU2hsSjRYSTFTMytJVjY1\nK2E3dHc5bTl6TUtaR0pWcUl5Rmp6aThoblFBCmdqY1pKcVVwM3V3MkpPYS9LRUNH\nZW5LMjZ0QnhaMjdUbThkSDRpSmhwZTQKLS0tIHBLYXRtaG1FVDU4YTNOR1BZc0RU\nb2xScC9GcjdRN205cEptTjd2c1A3OWcKy7iV/FMkBmKg/qFcd4tnCsPu6wr/SvVR\ngvmrPqHzEDkhMKa+V9VSVAPV82/kaVapto0b9IkeTnRnL4YkL/U3ww==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWVNlNGtpR2tPZndUWUdr\nQktzcVVHeDFNTk92ellWcDlvdHN0a0JFVkg4CktHLzV4U1lvNUV6bDhlOHB2V0Z6\nTE1sLzdxcE5BYjJ1OEZoZTJ4cHpUQUUKLS0tIFFMUWpFa2ptQUlpUzFZd09MQVNv\nLy9QTTVvMzY2NFdBK0tiTkcrbWtCOHMKljNAYwNPsEq3+9wj9WVt+xFxZXI5NNW0\n9EfDarMeUmXFzPjk8kcwuwHi8dZirVGnuLRGRhn4H3YDTFUIBa/m7g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxYzBGd0wxOXNVNFRBTEJH\nbXlRcmZJb1FmRnEwRThQQzBKdHFQWmZzejBzClpRcU1rL205SUg0TW92ZTg1MjhW\nNnpWN1ZTL0l6V1Zldm5weVlmZFoyd00KLS0tIGZPbWVlT1hUMTN0SjNHYUxmdWYr\nTHVyWWlpN1diMnRkbWxPa3ZNRUw5NDgKMhzXs3Fpct0fWWJ5jVOEQR5KAlNL1LZs\nhSBoKlxi9G81K/xH8rkmMHv0IYS9jSVkQ6FiI5mE+jVs9I3EEuOctw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoN0orRTRQN1d2MlFMWWl4\nb0ZHTnlxeXA1aWloOWlnZm9CMmJLeTQ1UWtNCnM5UEZUWGtaOExqcjNTdkNRcHBw\ncWkzdzlmVEJLaGV6RXNuRGpadkxEOGcKLS0tIDJLclVhUUJsbGdBb3NBa1ZnYThZ\nWDdwN1NGNVE2KzNHdzFpMjI3WkhtREEKvN9fwadVbSBCPYttOOTJyYiJVo1Dpbwj\n8s+h2kV4N/3SEEMcEjTHbQmJK4jJKa0vgr1cF2dPfdZUJmeI9faaXw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNQjlxV2ZpenRIdDNKeFM0\nbDZnSWZpU1RHeFEwVFltdW5FdERrelpRNVVFCllkbXZQNXdLSVJxa3dSanBKNjl5\nZlpBZ2xhQTNERDY5Z2c4cVFUUlJDdG8KLS0tIGpNbkRmNnJac2hXTDVuR2d1dkJR\nQmJ1eW9rbXlacDNxVElYRVptOVQxNDQKqY9eZ3UQdf4zQgzqjFTyQ4wVqrHfr6VD\nLSF8x9KtaQleqNsOr5upnRqg9BKshcRLpSdNII+QgiPEtW8PdB0TcA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2VFhMYWRFQ0FuSytVQWtO\nQXk4a1dOa3hqVjUvL2RpY1F4dlRkV1JnbEJnCmFuYVd3dStiSE9wTldidGpkWlVU\nMWZRNkZKWExrTzdxREtSa1QvSEgxOW8KLS0tIDdNd3laY2J6SXdVVDRlZC92bkxH\na09qdmJjQ0hCTnFjbVJvZVBqOHMwQncKxPw1GD+MUv1ToO2kg3EMetJiaSpVxHK6\nXy/cOMmbAHDBj1nSszA1+t+PIedlKydaejyUj8c4y3+VBd766PkxpA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyMGlEcHhrak5KVlo5YUxh\nc2UyNk0vaDlQUHNaNUpJMSsrbzBXai9IZ2xNClJ2NVZwTCtZSU5pUysxZWEvSGtX\nT3lzMG9XY01kOHdLZytJZHY2LzY5NkkKLS0tIFpwZXdvRFoyOWx6a0JKTHV6Wm5H\nb3ZCejRnQ3djUjNXZmZyQmtDMjd5L1kK5/3IiWjErpouHQ6xPmnD/zOweDy/Z/Dv\nUyO8ARU48IGXllDzaBTwjBuLF1c/vQN/pPZuNakXq7QBrr33I67OPQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZURCZDU2UTZpSVZqZUts\nbUdPdUYxWGR2N3VHTDRqaHFaUi81QmZSV3lzClQxRFdVM2ltUEFJWWJGYTB3WVpL\nWEI1MktHYURXSmVISXhzamxNOVJaMlEKLS0tIFozcTVuVWRobU9jV3BvVTV3bjlL\nb2VWUlMwWFpDamdqM1p0eWREcEp6dDQKAnB/j75GthG99Wb3K9hEHvTfIM23srzu\n8us9T4zjs9U3jF/DnT92cGvLNdydZmDzJFF8G4fmFpEzDhzy7nFHvQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1yrqpfs0wtaxg9p9058g2gyq7kffjnnqdw26wa4a4uvjqkzvmq5wqvdtgxl"
}
],
"lastmodified": "2026-07-22T03:10:58Z",
"mac": "ENC[AES256_GCM,data:hZjjCiKY7paoUujwPwcc+EiFOgrheEKTBgT+2DniRqY+XCZhOnPDYv4CzzWxXCzAQDyr5D2BtaV6Xbfyhkv61E3bDYQhDwyzKlukF/HV88TqNY3xdXXqwym3KqVUb1rHhrDzwvfyHBspr/F5qCHgwmEydYzw5h92Sdx5TqwlRec=,iv:mivTrx6aASPDkfjrn1SHk2NDVJ6TdRxkbcAanUHNs/Q=,tag:tIHlZYUhxpo5WpS/3oFeaw==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:00Z",
"mac": "ENC[AES256_GCM,data:OJ3xToAqiO/89V6XI82Fi3hVM7r2pus0kwcuNF9mupOQBF+UETHWr+CW4TcmPu9LIEzMBnO6ktWPL7co8VhoSnBUDXzRZDKXzqWWLJV5kVFhC12xrDwe1Xh2y5iq7uh3uWCSH7L9Sh3ZkLx8hYS/15QtgK0LP7nCAcx7vZ2z3Yg=,iv:kBo/MCpaBncH+IzONrBoPFi2imHvyAe9JNt+OH4kKEM=,tag:XaQoRdqmcdF+z0WYtmlXzw==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAwP4+uoPWwECOjQxJeTumMR5EnMuHylfijpvOuCwwSy0=
MCowBQYDK2VwAyEAPudoimoJAL5Q9NOlSXitdiWE96oanJerPzshArH1q4s=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWNojJVT37wjA9vvnnvTu9drRDusy8FkQ51USWK4zj6Grp
12D3KooWE3v72oQ92pVNRHmjQTL4quwXZGSMYMkzuYyyLXvekXd4
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:EdGWQOxJ5O7HubBQH4DnLfYpC4OrL9QFrB+XtxRACEiyPygxrEvjEVyGMyF3emfdddibQcrGmeFgeqzjeQLfjLE+zD5I1Vw8GcJv7ZD/V+kBn/iwoR4pAHe5xmrMwH7Cr51/nhGYFb0vhzKhXj+4opCQ8JNFXYyj/6EJEpKFMCABjc587wODFVcqy5iyKNRJsJthmIy7Zc229+A5qVmACsd1j5wD5rI0+5V9hods+/O4T43fjv4gBZMMZkW/VlfWk4isfkqdJsgOMOkPQLP8whwfrkBn4VzUheZlmFkAnIT5D19JcPRpaGhoh2Y3,iv:hYi10fOe6BiYsUPTIAqIu39UjULfhD5YnKh3PMjZZQc=,tag:iwzwdt/+JfwTSmivA8Rljw==,type:str]",
"data": "ENC[AES256_GCM,data:kBNqPafiVMXa69XrKMGj52JfcT8MCcFTd7Ko3FqMUJznKHs8sWUJkM6qTzq/Voa0WNTWCp/nrJwYdcK7f+8gWO9eqGlCY8GFgl/wuUc77IlDAB/2m+ZRG+pIjNZiGutUI8AaIGtB9JzXcgbw1bdyPwHQyWnkECfQAwOdwlvJfXU8eybWLTvlmqMPaUfZr0QLHcw/3DYF/wYAedPB57NkBroPg1pZ6ihvTqdyNqdqQUJpEfWGxx39y6KS6Fq2112kRAOvUl+qAQSpFxe4x4YJdszltqek8RJMIwJjddmeyhZOzPHOgdS+UBegZftF,iv:vULDBnHtpbWK1s2hi6wUYCc0wFbPggMFVu5GcJ50KRc=,tag:VzbeYkm/W8abDkbqc2P0dg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBua2xYS2NsaXR0Uk5FMVEz\nN050TC92c0Z5Y1lhMHg0QThDQm1XdlNaVmhnCmVPZUJrV3V0R0t2a0puN1J3U3Rq\nTC9EeFpYeWJla2VNeHFBazNYdjEvVk0KLS0tIExKOXdPaCtpNVVsMG5hOHJDVDc2\nR3RIc0FaMUlCTmxUZmVIb1ZONTFTQkEKva3Oz+SRulGyiWzWd1MMNaRgOsw1CO2J\nzHefeBV9uHq61MUPBio7TGIDY6uUapPpa5K5qWbxILoyHEBYsvYCDw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzVW83K1JRdHZZRXZEUzRW\nM1lLWjBLNFoyYm14SjFHUDNxeHN2TVdjaUNVCkxlR2ZDdlo1dFdKZEoyaFFVMk5X\nWVZkVG93U2F1eFFBc2xwbFAwbEdBOVUKLS0tIGdsNFJtUjk3cVVENGlqbjRidVQ2\nbWZSZ0dlVzMyZndoeVdKUnNrVGlnczgK8X28ecm/7iloETFP0hc4rioG0rs763u+\nLZJPdynmQbuomt4srqFIIeCzTg9y4WNkzlVp8TgBNv5je5E1hG5Cxw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFVENlFpdXNK\nSHA2LzhqQmZsSUZnbG1ad21idFJ4bmhMaTkrak43bWpDV0EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQp5UE9WVE9hcFlYeklac2xWYzd0YVov\nUE82Ti9lazVpVENtU0lNMzUzQTFVCi0tLSAyaGc2blYxUVNsZGc0TEJUTGRPOGI5\naTJGU2ZvZUdCQmV3U21xQ0lKL2VNCknSE26R3qINAWJI/XNiXIohIzRxLedEPYbY\nnIMgz/hbpYaV0rz1Kp/OXOb7nLYcFjCwp1x4HPxtzKOaeSK335M=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHhWMUo4NDFw\nMlNGRnNKYnZqVHkycDZQdDAremdlNi9NRmIybWVJNEx2bjAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpNamxKdDNIejlkOFZwU3ZrakxabytW\nSWdHRSszKy9qd2tMYjdPcEgySGhVCi0tLSBNSXlHQmY1bis2cHFhT1RzUFdZckdY\nbDNTaDdXVGRBZ2o1cUJ5S1JIWFdjCnxZH67pTWD/CYef0Vvfxtoo08HlfNBaIM3K\na19XKjl5bXPDh+O3wX+8N4PRimazybxrtNEVEikhNsbhdmgFcns=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIERCSEVZZVBN\ncWRBTVR1TTU3eW9KUEU5ZDZoRnpSUXFlUG11bXh2NUluUkEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwprR0V4OW9SZk9CaUhnMWpDMzhsYTk4\nN2czY1p0c2dxcG50TXplME42bStvCi0tLSB5NUp3QzVEL085MGZndzY4QWgxZGNJ\nemdobFNZaFNESUhsMWl5WFlTeWxrCmnFrb3lXHY2c3Jdq2cyHqxdYNgtk/Lb1stl\nMLROte+vBjWAktxvSGBGDi6mi7R0jZblStkUfhyapXdRhckWglo=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVoZ3k0eVZt\nN1FGVU9nbGtrMUEzM2JJOUh4RXNmNWlvT2FkT1p0YjJUQUEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpNWTVJSkk4OVlQaEtlMXVRMnIycjZj\nMStkQ2ovS2o5NEdYQno4SXhsVk5vCi0tLSBlUUlGTGF6bENXeEFudmR4TTBzOUo3\nc2c3V0M2MjdHZW41UE9pc2JVYnlBCv0YjwMbwk186PXBlEDt55wtvK+oezPqrrx3\n0RuRyNgfSE1K7FF2V9MDuJhD+30pdjRfHM+mvaE7d++N38Xnt3M=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEM1UWZjNUxp\ndURxUmhXTUE3QlNCNXV3T3VHMC95c05JdkYzR1p5dnlSWHcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpMMUlLWU44bW1oR2ZkMkZudjV1Nld3\ncEtBa1M2eC92Tkx3YlpYZmFRWElFCi0tLSBCYlNKelZxb2ovZUFyNkxkMFNhbzZy\nODNWOThmemZRKzhsNzhZa1l2MTY4CoskDqDk/uolbs3Sa3lUbwAqtxtG1dKqUKc2\n6ThL2f7EV3r4oaGHcX5SNhCGKG0ZON1raXUaMbycZAjCxFaOPLI=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlDVWtaSS9M\nK3ZvWUl0dWlZMTVGSkRDT1RhZzMvcUg5ODdSRnR5ZWZBSE0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpYSG96eHdodmtwN01CKzA2dkpEOGJS\nSE9MSGZYVXBhVEF6ZCs1TU5pRSs0Ci0tLSB3aGV2V2dZT052bGsrLzBPeE5Ha0VY\nSis4NzY2bU54dzNYa0tzTU5ucDJRCg3yFKZaPorJiqlVPx4r+1VRtdAOx5iP1AWd\n8/o/050xV5A93DPzg1lbLCqWMeKdo/K0aqxoCCVk8pEJJ4Geo8U=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRG8xTEZWQTBrVDZZM1hT\nRVpJbks2aWEyYUNXZ0w3bWg3ajA2VGRDbEI0Cm9CVGhtVVdDQ0V4M0lEeWp4NFRw\nZ1I1YS93dUFjcWYzN0taalZsaGQyb3MKLS0tIDdUazZhNTIzUC9OdisrOXFhcm9I\nWUFkc3RVaXFpWnRGb044WHRpQXpjVE0KN4gsXperRF1uuyCWkxcp0XCxvj7B524V\ntBQ3uCXdyf0zlEyDgHDB+GRnhbJrbuBvwMw0BVUiXdzftdDyW4UPfA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkQ0xzL25yd2VCUzQrRlRj\neTgzb0hsd09QaVpqNWFuZTFJY2p0eVI4a1ZFCm02YU1JNXBtZUtEZWlKMFI2ajhy\nY0FHV0huV3pGWkY0MXVnZ3pKb1NGUjgKLS0tIDZPUHBvK3FkOU10TTlKM2tmZE5o\neDdlNzRNbTZrNmdhU3lOVXNpS2VaSjAK/qAljGX+sdB+WHZ35pCzJ6A1/IFLpi/o\nrRVVIeGDDcxSPEiACDNfzZ09pGATtokXweTRYzeOBrDQiMb+Z833XQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaeTRsUTc0NnNNUlVhOTdl\nYUs4K3I2Wlh0NWF5UitTbnErUjljVWwydEd3CllteENXNlIzOVlWUGdCaFl5d1Jn\nV0VXS0dVR1M0azg0MDIycEdLUlI1blUKLS0tIHhVMWhReVBnYUFzWTZEU0xweDVH\nRzlDQnNQSjViZGlhanVDbDhzVmJQUVkKvSV2Ayxa0J+bCM8OYe5scFG76ANbNm77\nAkqwH4yKXjcP+Gj5SqaJKm/eGJUWMsDyLxCsXhbr7WT/shh2iZcTCA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxckNEV3N6SkprcURDRTNo\nQ3BrT2NDNk1aMFoxYlRKUlVoNGJQNFByS2xJClp2WHhwaE8ranUwbzNwU1hYU3pD\ncTlFVUtjTkJhSmZqT0dQQkg0VDRkcFEKLS0tIGRZTnpYZHZ2bldjNGRURFpxWkhY\neXN4ZWNEM3kxdkhJa28ydk4ra2h6YkUKYpNsStr0wa9jkiLMlAHS4OqIklUqEXuq\nH0HcEdPVdeRzn+WlVe9Llubm04ipYy1nSSZEHHbtj3JXyz03wFEZLg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1m2e4c3gv7mxyg839gf0lfsh8wvygx3rn8u5cwnn99vw2w43ssers40tlq8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxdHhTVVN6K29BNzNJREZx\nbWFvOEVwQzJHWmQzL2FKcm41bENaSlA1OEdZCjdGWFlNY0JDNTAxZkF3V2ZldDhm\ncTNZOVVvTkk3Umpnejl5ZFU0TGxoa0EKLS0tIFRoeGlOTWFsa3kzOURtWGxNVjlN\nRDZ3R1pDV0N1T25kd0pNRzFGRFVLSFkKFoOWz+XeLDCZbu9pWwFpfuAr96pL4iMo\nJkN+n/b82kG5+rJ0v3H100uTD0l3+U1f3Zt8AKv6JMKp1TsKD3dhbw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJNDVjVzNRVlhIMHlVRGJw\nbTY0RElLQVliNDVIUzlPTWFuQkJpVnpEcmt3CjhSMTVxOTA0WDNZQlM4diszTmJ1\nckxUNU1STTQyeGt2L1JxVzUva0dpblUKLS0tIGhIUXgvSTBYR2hvVFJLREVVZFZm\nMXV2ZkdZUXJxVlc2U0oxRjdYMHNnVEUKLf70h9SdNgPmx9dJDZFxuyE83tCbnTYf\nNxUdIIFb3ErEokixBUBmo/bLr027Yj3qogioT//pKrtt5lb3oGAXvg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBic2ZEZzY2bDRlRklkaXk4\nNVRCZzdyYTVNRk5zTnNJeDQreHFHWERONEM0CmZGZW8rSllFOHlpR01uV1krN0l2\nYm1OQmtTZEdISVhldDhOSnZSdUVxV2cKLS0tIDFXcTNnNkYvZkNvaHJ0ZjZiVS8y\nY3Z0Zkh2M2RZdGdqalFjTHQ5QkhWZ2MKQdRPAmCmwqE1d/EpDqP1JbvHgOXjBC4z\nWWCOnKBWoBsPf/EzR+KwrtmhpTYYNCfcwBSo4HTBW9k5ObXNlWJ7xg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnN1BNT09kR1o4bmM4SzRq\nQzJXU29xWjJ5bkVzQi95UHRjR2xEbUprb3k4CnBxb3FBcWJjYjl1RGx5Q0VkbmM0\nMkd6cmFIYm12V0dTVkdSMGZGRXVha0kKLS0tIDVSV0hPem5KL1R0WEhQWkU0b2Ev\nUkFoWVkvRlJORDNWWG5MSmw5UllnMXcKO7OaGpxR2/0f4J5kzuDLG/lnO75KMXXZ\nKV4QPy8EiMqYd4e+bWmmzrZ0gkTNdI+flWWgvi7qyPt8RoAWvqF3/g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFOHlBZklZMDdWOWUvelVI\nTFhPVlFyZE5vVHN3U1JLMDNsV05RUkNDWWxZCmdtR0k3a2V4UzN2cWt4cllEWEJk\nSW9YWEZkNG91QkN1dGNMbWxOY01yYVkKLS0tIDVxV3pDVEdGbDlpSmdPWjdqUlM0\nbjh5OGI0cjVxRnRTL1pnSStIZEZWdlEKeoUUZ7MaB1F1z7W3leJ5Disv55Spp5Bm\nQX6GrToDLBAggDsIx6Ivmx/71vRSWadiznOK7sV+ftzUEe7q2XUo9Q==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1eWRnSUI5M0tGbmdyK2Q0\nWjNoZXF6dGNpa3htc2VwN0JyOFkyUVVuUjA0CkNPZlY1dnd4eGRoWU45V01sS1Q0\nRWQxV3Q0d1hLQWtMVUZ5OUtuVU82NjAKLS0tIFJ6aTJRclpDUnY3MFdFaHhHbUJQ\nVjNZNlN6NmNYNlhVbHlaVDRHYzBUd1EKDRUFv3UlCYSgKQZEycn8sBeGzonYLCK5\nMb1Q58eLpgTexWzIfbASSOsm+GXzIvInfnNsme7ETmV7RcMlwiokcA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:10:59Z",
"mac": "ENC[AES256_GCM,data:Rcg2GH8CrjVcbmqmuXAvgg2hD6FMVHvfVgDmir6SHxPE3MDC/0CThXU6Ki9QkKxPiqDSsa5Z1pZ1WUowKttlankGr2e/XBkIybgnzAPxKdcE3VpdbgmI+atvSobCS0mItYgbpHQ3ZLCtdvfH6dlF2BLr5G0vV3SJL+EzMyFBYYE=,iv:J7Z+2PsNpQEJY5kDCxzEwvqAG8HrXTWVExBukILL/S0=,tag:iv2PHPxSizXmSbT3DC1spA==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:00Z",
"mac": "ENC[AES256_GCM,data:/YYXUHIkBWhgm2pJTt2ZsJH+h5xBR0bKiTWDWqPA5MEiiPiKOs1TB3NVi6xkfidyflSDLc3l7pHHL7Vn9vNjV9Of8Xvff1ilIObAC71U8E4bLEdjVJwglbN21x7NQkRVXs7OzW7Ns10wTvtVtVWlVRpZgcboWexaXWVrTuTXKgc=,iv:dxmcqVP0Koa06rcL/Y96MJNfYxqPrd3y/cJd6k1qW1k=,tag:msae1jRxcQEo2uGG01l9LQ==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:pO0BinIMtWq0KF0RqYyjLSGyTaVYz8CXBoJUS2MiwCFUuTvPcBiu6Hz/K11Z5yHH2FmDF08MRKiu9wHFIZdjVtcfhP5pXXZkaeVyL/ACainy6fOTFs2/aPugRFCeBgxVdWPkXqaCI1vxJI+7NMi3ihWvhg8YeVw=,iv:jKrU+Zwbmhjs9wA21OJgalrlMHTnjCkKjmiIItDkU9Y=,tag:rq8XY1A9am43gldDH9qncg==,type:str]",
"data": "ENC[AES256_GCM,data:Sulj2Ipd8lauS6ZwgZnN776HLlqtRtlxLj4pKqT3iE36V0OUAUmqzztCn6e9eKNU719E5E2qSy4ZjrYb6KNZhzbry52vliqlUqU79cfU2H0x3AcVvWappDlqjD2bNCU4h/w8S7Rj5JsHEcBcttc3x5IKvE3Ujdo=,iv:S1Kb9UwXzpa7tl+MbABC1+XhRLd2P/HW5gd3c2X94no=,tag:LQiqV39RJ+OdjEiKnHKvSg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSHM1YmpCV2M1SHhueU1n\nV296K1EvQUYzZjNyVlpLTU1DamhmNWprL2xZCllzYU0zNmt4cVBXY1FlR283SGtP\nQWRKZ3g0RVdHNEkwcGNub1NKWVZ2QTQKLS0tIE1kUFovOWo2elpRUVJEYWZ1dkdQ\nV1MrUmFaT3lCR2RocndQUjRYbFRoNEEKARwL/TcsjStEHqzT1skJO7LWX9ytLBbC\n5V5B8WevBZL2sYNq59HA7n/BD6avxAOu+5pvJ7oFX05XRgcXtgSHDw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVXdDQWpNMzBld1ltVzFQ\nZFBobEpuZGZnenVqeVM1QjFrT2wzS09QenhnCjllZkUwOUhPU3lpM1B1eTRMc2lm\nSnA0VXU5NHNKcnBEV2M0V2dXZmNxWUEKLS0tIHFwRmlzOTRiSThNOVBBUC9wUUxC\ncGZNWFViNXNQM1l6SVJGZ204enZQZGsKXtQoHa6kfDjico7BpIotPk8LXtfTM1QZ\nYUKL3CSRAnxmwsPwzOo0JR2H4SDzbtGyam+1juPqskTdxI/rnk61Rw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdWcTEyejRH\ncThjUTZ5ak9UTVNiTUpJbVFqVE1hcFdtOEJHU0ppZlY1bDAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpuUk5zWjZIQStCK1hJOStyMFI2OGdX\nenJrNmZKaUROUkJ2a08zS1cwNmw4Ci0tLSBRdnd0Z2l2ZUVUdmYvZDJpaHlkS2F0\nbU1qTWdLdWd6dXlHMC9JajZ4ZmhvCmBvZ65NVt6pjLOtUTtTZgWxIwi232RKQCFH\n803004tVfBBvmw0O3t+7/a4PDVoLQEPFvjAlwEkaSk80ljhWGps=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHlUaUtKeTVo\nOCtaeDVaL3hFMHpZT29YY0l3QzVOc1FnZkE0VE9Na2wyV0UgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpweTdabXdCRzBmR09Kc0ZTMlNUaG0x\ndHQ3Zkt1WStnUnA0eE5aOXM2T0hZCi0tLSB6dHRWbkZ1N2ZHZ3ZjdEw5M3kyK0I0\nemptdTdVWVJyLzZ5RkRUd201TmUwCs9o1A8UDRnzSquQxttuu69dRzd+meSvlOHv\nn2eT3B9OuokFtBqd/mnjjSLnauhkMcSzco9lgbYfLbIyPDec7QM=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZ3SFkyUUE4\nRFBYc2pVa3BuSDgyN09EUGk4QkJuZ3h1WStYVzc3VnRuVUUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpPL2JrcVJramI3OGhoMng0M1NlZWw0\nN2g1a0F3ZlN5U0JvaUhOcEt2UUlVCi0tLSB4YjhyRXdZdzdDM0lqdUpoQ3dnUDdN\naWloa0ZBR2hhY3ZjU2kzZFRSTUhVCr+gZl85M1q2WnOLLufULhvXA5WchLPGSgbc\n+67BvOJK2sC7zDf+QZUdRjAS9OoWM+lbIz/5Psf1jqi2sBdGXsk=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlLUUw5WUto\nY2dGaDErUG1tMElzcE0weUFUTVNKci9BTC9YMGJRRmhNd0EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpQWVhiRFVvL3hrZS9qVHNOTlgvSmZE\nSlhWdUJJVnhHUU1YSnkzWmFOUE1VCi0tLSBHelVDVDFnM05iVEx1NEg3djFEWmE0\naWxEV0t0eVU2SjBpMW5BSk4renhzCkcgYuC3t9xoCxyoC8EkBu+YGYpeLgZJwAX6\nY+DGuCCgm1qNkN/oJSHUHYrFBfBgt62uREYAIg7xq3C3j3tLIds=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdXbml1SFBh\nUldUOWNyRTZXK3RjbG84aCt6a2xGNHQwZytvZWgzTHlMaG8gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1Q0ZrZDhZOUUzdlBJU0ZhbDltRGpu\nM3kwTVQyNjVYMjlBeEQwakhNYTc0Ci0tLSBOMFNCcTBlV3VUc3N0UE50RTh0clg4\nckxablB0UEZwNXRpTUdKdWNnY25jComPJ1Su513uqGwmYgwIuA/4IXi1/maKdPtQ\nI4su0LowbJHhTGvIIdj0wDWYi+bpwerAYc6yXXTGJv7iTETTaT4=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJyTmxlWnNK\na2ZCZEhjY29sVzhVdlEyNHNPMjBzcGJvY1dNczBXZzNrbHcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpVTzh3TVMvQW5EK0hnbVhxQlRzakpS\nelFLTy9kLzF6RW5vZ3FQdVpxSGlVCi0tLSB6elEwdU95NXpqNjdGWTFDUUc5UlFL\nL0duaUwzUkM4eWdDNTJuZ0hkaEc0Ck9+qLCLIhjj4jk00HoMs2iuOjhfz9R0Ln8E\nQZKaMMLQX3xRNB/Ox5hbzME/flPeijogS3xGV8juda/LJHwmCOQ=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRURhS2oyblh0dWM5WGdV\nUWZiWmdlanNEM2JmdEJ4Z1puckVVS2VlVFJvClFQSk5DR25oalpzN29ObGVURVFL\nUHl6YnZSMkM1cDVqNnM5dlJVVGtkdEkKLS0tIHNya2RoOXB2WnVscUhCYkZQVjM2\nSVlSTjlseXlyc3NFcEt6N0RQNXRhWTgKp7u6cI5GRYn5wHSD4MbPGpNLNx91jlrY\naIoyPZ3tnRs3GxlbU8xNKPwpQhI2V5WXaHkaNdu8MFDF5scqSvut5w==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTWllYbDF4T3dDN2lwMW9S\nWGF5V3IyMEFzc2FiWFpQNXUyeHJtTTNZZHdFCllDTVFCVmV0MUZoUXlDSVJ3aTR1\nbXhUUXIrNjZYZHdBekMxNVVZVVo3YlkKLS0tIFlHQlV6VS9SQ2VkTWtweDJFbFBE\ncWR5VUsxVFBnK1ZLRU5mVzhwd253VEkKH8SyRB7x9V2H/gMqdZKQPDT6B00y0qvj\nU/lovSmlrB7oF+ZzEvhO9yTiuxrcp01FXkM/VarNgVYrglhr9KDGJA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOHlzVFc3VjZUaXBiL2J2\nVUVlR1M4WUNIL0NLM0pOYkVqdnNDZStaQ3pNClVuK01wbTBKSk9tNGk0cUhhb3A5\nZFAvTm9zWEgxOURJT1krU1lBR0hUdWsKLS0tIE81RGFmYVduVkxCaXIzWmNJZ2xi\nOVBMd0t1clZRKzg0NTZFUVNSeEl3RHMKXT46G+2zHS0NS8SOUsVBpvv5wzKdNLdA\nLH8eOK8dkwQUtR2XZeccQzTaGIfWBOo/wWLZqBZk4BVVXIaSUBFU6Q==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsSFovcldaRkJPaTdZTWhZ\nVWF2dVJtOGpQeXVkRTBURVpSUkMxU1BSY0RjClJGem5JZGxDY2VVZVE5NW51eXBo\nTzFoMysxcktST1FFcDNadXR5d25sZFEKLS0tIGowN1pYc2hrRzBqQVlIWVBjUStY\nN0NLaFNxeVNYSzJTRlE4eU5ZZUJab3cKtU4EpGZzksmP/KrXUvv2F9pNIu6yA8Qw\nhXmhty20UM/9un+DjUUd0uTpO3/DmxGuV2sWdvyLEy2aK9/8jv8xOg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1m2e4c3gv7mxyg839gf0lfsh8wvygx3rn8u5cwnn99vw2w43ssers40tlq8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2aGRscllENzZqbUpyTkVM\nUWZ2VUJmUG45YXYrOU1HdVJMOW1MVWkwTGd3CjJoL1pnanpQM1U2VWRGQm9KRE1M\nRUFOaUl2Z0hDS05KNmdxazVsWVh5YVUKLS0tIFV5Sll5UFVZOXAxUCtvSXhlZjdp\nUnhLWUFSR244L1lQMFZKQUtLdUtmVDQKTPkFLMeDKBzQCvs2ri+1heIm0cuN7OVh\npA/R8V8qUFFHMFTr/Dy/9xY7qm9ypA1NEm3361tX0P8fOOuQvhrcmg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TVhSS2tBK2c4Tis2a0Jj\nWnVsdzFFRnBhZjlnVkRkOTV0SktWdlFUMmt3ClhPdUNJb0FYNzNDdktBVjh6b01O\ncS9PbzIwMVlNdzBDU094N3NZQlJhZmcKLS0tIDBwZ1lCb092SmpOeTdmL1NNRWZj\nQTJYeGZpbWhYbnFMRS9pNHhGWW4xU1EKRUhQseH9vz33kmzQWOt9cxxqXRIcaif+\ne9JOJyxikj2ADhqpjPNtbnHKonabJxiG61kugM1S/FOiZhpQGUIL5Q==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPQ01JcXZlTGl5aVVaTTlB\nTDVuUW1PclFIN3ErTGhpR21nOGhuVFc1Z0NrClp6MnlkYUhwL1E5U0ZtL0g2MUpB\nbko4VURQN011NEw5WDJWWUxKcUw2bG8KLS0tIEtKWHU5WXZ2bVpVdzZ4YUZGQWRL\nN2xncHhsYzdhN0swMU93K3JvcFpDancKgDzWhuscP1qzspQxJpa41ogydFTIC6tX\nG2r6qgsK+/0DfJBieB3iQ+8J7DqFWn2FViJFIzSJpl7u8ljCBucBTA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVldOOEhWNHVmYks0dU1a\nSGJSRHRuQW9aaG1rTjNQd0lMbkpkS3Q0VlJrCnJrY25pVVRqZUZWL1FZbDEvQnVi\neFhiRi9rejRmNUJwVFJPSGkwMHl1OHcKLS0tIDJYSnRob3pZeE1qR1lPYlNmUTRz\nRUUzTWZvTHlYTXE3S2hCZEU2THBuQ1kKK1Ve7tg43Vh4GnRtJ8c9O/cQ+BCRNPb7\nCfv5y4LIZo83ydMtgefkCHHmKWZG+TvWI7pf0v/C5bEBNZBCnEdNTw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoSEtLbytxUjdmZk42YkNJ\ncGpWVWlFSHpxV1c4YnltU0ZtVkVpbFlrZVRNCm44Q0dhcnV3cWF6ZDZQYzBVOUdt\nZytxYzhsVVNhZEpkRWhFQ0E0SnN4NlUKLS0tIGthOTAyaE11NjZqb2YxQ25XclJH\nVU1aVmRtL1F6ZTZaSk5uZGtEbTJjaG8K0upbrE42Fr4GYD8+ZxCQ6QPs6wGITtKu\nC3/i/afC+yAVFonhXPAwO1Wpn+yoURJgYgDd0YVquWqE9XPRqcgWKw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiaElQVndmc2oyMlZTdVpq\nN2JrdG9GSk1lUDFDT0M2NVJ5RERJS1ZxYkJZCnk2SER0V3I0L2xaeVNaNThNTWtn\nZXNYUUtzSFFJdjZKcXZveitqaCtuSlEKLS0tIEkrWU4vT2pLZXNlSUhRck12Q1Ay\na1FaOW15cmJUNXNGb1dvZ093M1A4RFUKVprU7crcN7dW4UBcxUmPT9WXRSt7A5eB\npI2kMii2OIKRSrmDNYrOnReC2ce/reEKog/cDFgfrqg3cXqiZheGNg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:10:59Z",
"mac": "ENC[AES256_GCM,data:3fEhk3hXhfsvYBICd546lUVq7TtPr+6/r6/7QnNJ+RbCRg4e+VDVFBeAJybbDyntOcEeJbpr1at+e0VklberTGUL4fBOCiaoi8UyRtPTn948KnOaRnh54ibMyXVmUcVpl7t1HQzVBpgBhgmwzlqIIix4mfz1iOq+Arqo88FM09M=,iv:q3/bSfmWQOauQGyWtyIJXjiaA3PBEHmHa/2FntL1qAk=,tag:UCjk4mkuFDQedukMXNh3SQ==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:01Z",
"mac": "ENC[AES256_GCM,data:NZu5Jz+++D+SO1qjszvrcygF9CiEbppF8UULLP0ZWWOxBk7aJloyUMEOB5t6K8UTrezoE8tU18vT1Z3SDbm7oI0R8iYEXCukMZDUMOZx6GjJEohuJzXTOQL0FukvTsuQ0+1lxSm0suubYfaTS4o1PCgW0EGz76cGjVBj8gvZ+B4=,iv:zgG5ijWW61OeFp8Yz/PvDygnbJ6yzvPDeW4pUb4NI2Y=,tag:8tN/p7FNDWxGhE1e0K1M3A==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAvvoLP62l54FLr7G8H+n9cbp9FZGQXWD6DsD93+WH+wI=
MCowBQYDK2VwAyEArRthfQck5MwxFhM4oRWWvIypclZOAgq/R1vLwBoJoWs=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWNfrmhdBujwcDxUBkevAQojoBWrnpetJ1JsLRCwjsk61w
12D3KooWMU6v6XmDX69uCTY1nPGHKEKRyFrxFzJ3ga3aeKAPb8KC
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:zYHDpjXt8QbISjmEpLUW0md8WDpcMulRxdQxjFuutu8UO0nBCv/GhHwPddqXLmNv7PCBZ9LWso4yhoO+94+LOawDKrIkmAP6dxNYnI3g6DABo05qJPv1mIP8bffKV8p3lkpN1VTtwO9wrRfqw4ELqv9O5IcumAfRAmy2gYCIRJxq4y2Fp+hGWoDA75lC1IP+4uK2lEmqqHvy8vq39PkyaxFmBUoHAp/mZ9w95LE2f/fIYkffjjcYA44/16TjFXED0WQq6q1baafTWIWI0f91JxhXuKuKTiHJGUet++nc3eyfwwjdXResJyYdRX19,iv:/n8wZZ0VlHDt2E61EvBm5uP9n3pabkFXNi1Th/RXZkk=,tag:4A+LRBHDfmQ5EiRDqYYtbA==,type:str]",
"data": "ENC[AES256_GCM,data:WsYUmMlDVYOVm9YK1i4jfnKip7p+HAqIEzgYc+zfaFhIlzW1dtor5pwo/AtmdI31jgX6lP7/McaHTJ+Oaz3oS+a1n5vUG4gGKUnXk2WFTXE8AsQ9UNC54Y4taDittvfXb2nHOKk+jjpxKK+10YIF7lINpNimLVQ8O6dtjJtxqcOJ/tWXgCmlY9GtkbemjLGPtOmSCrnk+ohI4WwF5DFi3G8ejueqL7dBx4V4FWqMQ5iV6LbzH00t3b32SgEM053ipLDcF9/bKBSC6SZgM9T0hR8w++VPuzSREVsh0pILMuB2iFSye4doV/Ti6dpn,iv:J1iNWUiV8B1UuNwiBeGBl6d3R7MrWxYAbF2xOy1C5og=,tag:y7Eo6w0MSlBB1E0whFyXEg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLcDNtSkRjcGs5NGVadHJp\nU2ZPMnd3OFA2c1NBUFlqczd1cTRlZzRnaFM4ClJEQUx4RXJJK2VPVlZFcFJXNUxu\nUldLSmdQTDJSNU5LRy9ac1Q4VUg4V1kKLS0tIHNoNnRFajkvNy9seUZOUWJKWENh\nN2NRMktPZTlPV1RlZXdqclZHRHdaS0UKjPlv7igaiPZYXN+TRADfy41M6xpVrYH1\nay/g8xWiKXjgL4InbWWTssWfwndJgnjkGvIdvu+t+0nhsSB7nE+dVw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTS83TGtwbUpOQjZPK3FH\nb01JNTk4ZlZiaEJwQzAvc2wyZS9kVFFzcWdjCktXcEJRRUxVc1ZLY295R3Znd3F1\nU1c2YWoxek9pbEdJZ0ROYXNCc0ViTHcKLS0tIGx6MktOa29DVFVBSUdqV3FDNzg1\nR1oxbzhsVk1OSGhkakR4MGNyYUtmckEKGv2x2F3Sb+QkIMWZcZCjDgjwb8HfSO0b\nGCd9KPfByOQfmSouQiIJZlW38FOfMEfC8+dR+zxpkMwCJ+sGqagxZA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17c9908f08w2w0ajprep4p60a7hd27cznrnxmq4mxwznvgzjuhymsxttd3d"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQ2ZlclFGSnVOS3lYOHJx\nTkxIeThoNS95UUVkWVN2YUI1bU1RbmtENUY4CjZJRFcxcCtSNmY5MytZNTZ2M1dq\nTEJlYkVmMklqeHhEQTdLd0RFS0xzbW8KLS0tIG40RUxQUm1BckRNNURmQnBHcVhs\nc1ZReU84UWZRZlExL0dpRzE3anMxVEkKWrKPh2coaDqd6xULrB6qZ3B4mlvrWwIf\nin5T0Wc3+ceDMoQtwwSqc8s+VEjc/n4fejse+BoMeINCMboq8qHZGg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacnQ5L1ZBazRycGVOM2Uv\nS2loV2N4bnJFeXYra1Z0TUxZcTlaQmZXM1RjCnFZd3I3SHJ4NThRdXJpN2Y0dDlo\nWGZUVVNoeE1ITW93bU1xbmd4TE45cncKLS0tIGFIRE5QdHgxMDhpcjgxUHFnVXQz\nQnkrbWJLS3JvUFh3QWJqSFJMY2pMY2cK96WbaysJgNccaU2mS0Kl+IlbfH4APwJ2\nW1DKw/LsoFLZCKK1KJWrix9IVb/OEHTEHDkNM78rTsyPN4koo1+8Dw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEk4RldXVEY2\nbCtxejhxQmZ0R0k4MEMyUXAyd0xlR3doRytONXpwTVhEM3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpiQUhIY21FN2w2SXRWT2NmMElvbGVn\ncVkveExCeGVBZm1WWVR1MHZmSld3Ci0tLSBROGU3UisrVXJrQ0JUdUF4ZlN3eFBR\nQnBVTHk5dXBMekxIOG1LUXU3NkdrCi5u/94F6mAspy9ruIkQ01pL2Q995lfobZGC\nd8iPHtIky2g9wCdicEORI3f6blqg+sTTEZMmy/MboZQ9ZjOYuPw=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExmWmpaLzFE\nNDZQMFEzQUtqSDI5RFRodjdZZ1g2ZGY0S3JMdUQ0NVdZMzggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpEU3o2dDR0ZG1kN3ZuZ0dZbnU5ZGIy\nTytxbTRWdG1vWXdFSnhKZjdKc080Ci0tLSBqbUgyNEs2NFFHTlZYTWlkbzNjOGpQ\nSTN2TzQ1Nkl2UG5hU1YzVEdTSjJjCjhIYORoQCCj6lq5feul+f8+EUvqGMiSXjif\nuhYObov7Z7vzxtwfVd+HNCGgw6iOhXY0MtEaKVr4asM94XNcXGM=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGRQa2VKbGNZ\nR0MwT1RVYTRtaXJrTkNvY3BUNHVDT1g1NzFpY3YrWTBVRDQgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpKdmxiRnlNaGEwU1l0VFpSdVlBOFdO\nYkVwc3h4bUZpT1JNSWRzd0JTOWJvCi0tLSBBc1ZJSmg5aGRnbWMwK1dSaGlzNzJh\ndnhMNE80NTY3dDNPdXo3Vytid3Y0CupCby1+dOZBvIpdLWKiy2LFkYkmJY88jpN/\ncb9kFozAUso06WGU18QI0XXiMgUHLhfCZJjN8LwX6/x6+IKRCF4=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHhkMTZSTmsx\nUi85TU43V3hPNTFGRUNzQ1dMd3lzL3hXazdkVjlYc3Y0RnMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpQbDRWcFlOQXhKTnBlcmluYk9lN1BE\ncTJQdHRLZDJJZXlkaVpBamJvMnJVCi0tLSBzL21BcHMxY2k1a0VPNEFLZjlDSlNm\nR0sxTlowNTVnZlJMNjNjNkxtdEJnCiu/5JrIf4ZEpL3LIphR2d1BSwz5ZsaVJKH2\nBWeQjU8r8HwPuHF4rE5EJ+as1pcU8EOnCFK1lk41Td+rm8i/1+4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZ6WUVWRkNr\naDNGQnhXaklOc1FjWVdlZ25RQmw0Y2ZHb0MyTDVsV0k5VzggQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpCYUdXd2RDSlhBVXlZS1JJUG5wYUYz\neG9OaldIdExCUFRoSDJSQkRvMTZvCi0tLSB1LzMyZTdhcG1zWkdDV2pHL3UvY1Bz\nUTlUcitWcXRublVSK1ZwcmE3cWRFCn3nY89f4LBl5nDbm7ywGJuy+kPuvBoDFX9O\nz5Flr7gPAZTDFV0FouEJ0A5NPAgVGRQGybDrgm2X4RMrsj2MvQw=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG43R1k0a2l3\nQVJvZG5BMlg2ZXJSSmVSc3dhbE1DV2dvMHExUnh4cllPVFUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpvdy9aYy84SnF3TlJhRXM5T25iRHhh\nVjBYU290eXJZRnk5MCs2YmVJZFFNCi0tLSBxZHE3Z05Rc2pXczBRNnQvS0NjckR6\nWmV0MXBCQjl2MjM4NmtPcjdyL1JNCiS+J72b3tytXm8mxXnhRQSrep23g1I5feQL\n0mx8cB5b8dr+XZQUrH+Idghy2mPPfJt8FcGemU7Ba6OQAbV4aRI=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzSjVvODB1MjYzc2t3S01U\nZVRFOUkyRit0N3NuYURzWXVJemxHcWhoc1ZJCktsMjhpdStuR1JpbkZYZ2E5YlVN\nZnluQkV3cFNyK0NjQTZCUERWUVU1UXcKLS0tIE5POWtpVnhEOEgyMTBhMzF1b3g1\nRG1jbFJKZ0hubWV4dnN1cmNnUEdwWFUKrwNuiQWpWZIcBVL/1aHc46Au8FVWt90A\nBxQqSH4wZoxTk/ltfTgTLQpscBlc1JToRX4X2FkyEhBR+95s+LxPaA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxcm5wa3Q0WGtFdUlmREZI\nTTJObHR5TWJCcmxnbGE4R3R1WHBCVkNBSEhrCjhjejFpUzdtOHpqV3d5cnRUNUpI\nOHNLU2hCQ0I2b3djK2d1K0F0S0NvTnMKLS0tIHRyNHYyWjM3TWhtWTdTQ1lUQWQ0\nNkFqN2xWZ2VEK3E3b3IyajlYTENiSjAKL0aDyfh/JD3efZ/RrFA+aVy7jly76vLO\nXK2DH+zGaTEvvRdL+M2s+hpIBW9eTywRuJafeq9OzxOCAiyPovJWPQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKWXFmSWNQSUg2cnRPRU1x\nSTd0Q0xvYm42VEM0MzRtQjZXV1M4dWJRS3dJCk12NE9zWFNBK3ZhSlNwV2ZNUVF1\nc3hHNUFHRnJsY3U3MWZaNHhZeTJJaEEKLS0tIGw4WENxekdzYTQ5dTNYTlh2aWJW\naHBSRTI3V285SHlvaEQ1QXROZjFkTzgKlvJ/vjTzkGWAm9J990KM1zj0w+eBL51g\nGsSj9myKRU22VROnFQqa465Sfmtd35yWiYP/Ttykx1GDQbpK2/qCBA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3dENyL3RzSEtFRXA4ZVpi\neVYyakl5NXYxVTNEUS9qREFObWRzRFAvb0RJCjJ5K2U2Y0xyRzNRdVFWRHlWZ3lS\nNmFoNXR5V3VjYUlWM0ZEYTNJQ3UvYTgKLS0tIDZUVGExWjRXdmNjeEduMjk2RkZW\nZ3RFbVhpS1E4Q2E2WHVKbHhrNHNSOVUK7GjqaBkCi2gSmWUwZD67XvarenKA3HG9\n2N5qo8Ew8dAsU26FLMIp6W9X6/9s4UF2BPuc9bP7RI9zMyqSdIzJnw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1MTRiSVRrK3VnOWRHeTZt\na1IzUUpoVGhCY3p0ZnBGSzVpMW1yWDVQd0VjCmdiODBkaUxoN0JpSFhMY1VKQytZ\nOHl6WDI1QTQ5WHFuVllnRlFNMzFCcjAKLS0tIC9la1RObHJJcUwyUmxTd2RHcDVm\naFZNci94OXZsL2dsbXVFdjVodFBTb2MKstoXlB5iZiSw6+5VQgq9f1ED0dO2XZQr\nD//OeQ+GFyFMjvu6XcHuYGXGAOwLC2wQF7Mi/avulyo4N+ayyPv4DQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSY0pZR3lTUVplNXR5NzNQ\nVXNkWVFwM3JCQTIxSzdITWlOMmpnYkcwOWdZCkM4aUw5cGd4bFlIcGYzYjlMRFJV\nM2c0Vy9IdGc1S3dGaHBzenR1d3NlSVkKLS0tIEFMa1RRMHhpc2lFMXVNTS9jcmls\nVmdiWmJWYUdBbDl6UnBoMHFJNmxva1EKnUv6bKudCuFBbS1IWuA2atArDHViApoI\nmU7Tm0hjntr1O4NTGDaYcz5xCxhA3dF9k37Aa0YaV5im/jFON3zjnA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArVEZFM2t2dkFPZDlqRlBq\najFORDhRZnpsNE9QWGUrcUU4eG5NRTNJY0YwCnNwZWdMdXVUdTlhTkFxblJpUWJP\nOEI0SzY4VmIrU0tuTWtMRVlhKzlsNWMKLS0tIEtiY05sbWVpS05RSUM1K0VZWGl1\nWGxaeXJGRnhETkZMRkdjQWhLalAvOWMKVdiCvKFfWbj4AV7SJzpBf2PB7dAQubGq\nal+25fDFXbfoqpCdYhqpbwyb+PuOcX5APPMF5YRInWdJj7mdc2UjqQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4MGc5QVZUQkxnaWtjNTlY\nVlphVE1oenZhN1drMEdjVVR0L2NPdytnOUMwCnpjMDZRdCs2MGdMWGhIK0ZsR0Fz\nOC9vMUNZU2ZSWGlFSER3Zzh0b3cyT2MKLS0tIEhkTkJEbEpPdlRseWp1ZHpHd3VG\nSnhqVEN0VzU1OUdWRXQ4RTkvS0d0cWMKUbDofe8qeZwgW+zJWvkh0EBUVoz/pwPb\n9UWukHWk6YKJxIHJCAyUphzK/11tgq7HEtwIIzthMXRU5Rjnazc48Q==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:00Z",
"mac": "ENC[AES256_GCM,data:OT19rZ2KwSgAjt13lZUjSlBv+xwdHFTJNw5ubpwJcyl0jRxNIf29SQzOznPrxkveDcGT0clUHiA0+WoJXRUf2NKueLDnxn7KlRcPuQRxKgs4UrZ+QKP2mkcoo1pv/76obF3peMDP3D0jbsjmptff8jWm3IMDYemJqtAEW+Y1OCg=,iv:V430HSKRNLT6XRcrVWj8/RWT2Fc6wf1zIvmJJy9ueFM=,tag:HlvmFl2nsbAdok+Xoq51Tg==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:02Z",
"mac": "ENC[AES256_GCM,data:ByeDq1lCpMd7aoiN+uS0ugAYD2PZsnlFzgPGfnuOl2kBuZoSzXFH7hek4sljhIf35VwuZr8FJPJBi3Lu6+SAb5T+xXdfcxskcjkT9Wci10GvmN2+2U7DQgpxTJc3JoOtdISwqvSi7zP+6CE/cBxjZ5b3/EEZ4ehoVQPGlAotiVY=,iv:yIiJV4RwGII524jaViVOl6mQahwwwA0mKTWUxGrM6+0=,tag:KycjFPpWQvQRZDuZqHnpCQ==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:ulJ64mtHozXfd4GMM9PWPI/ClgBzTOk0JyDXWF9kucPDBzVlsFnS2SO1zlRHnzvV18NDFfhKJ7qdbksjzxKQeQEYFINy0rxfz2azWhWIYXA/Rh1EJQ0+SHwehvcHAdy3+1btqD/cM+gq4Fqe1YxXuBOdB/kZ+wY=,iv:lHEi/yeRmv7vr7BuVsY/7f+qKbHw7ULI7o/51q5rnAA=,tag:s03idE9jfwE+1ZIpImQqpw==,type:str]",
"data": "ENC[AES256_GCM,data:A2e7ZvwRjEsK3xSV+dD7zHiJWLUBcOou5psrykgTNRBw3r8QgvFS5/VPKueE4eAKz7wYgEZPvK2aogEYiGHMa1tlmuAGnhuyDVI+LYaEO94oqhXHRLaONk61Q6eGoaaSmXD2GWyl3V4aiMWwVrwmr+Clx3ATbCU=,iv:iRsC0YCELQhR63J+MVFkQpqgdbPw1p1gg0Oixi6ogvM=,tag:ttMUfUJwZJ6ZA5CxrVW/bQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0cmxzcnZtUWJUVW9PNzZ6\nNU5vSkRySTdHcGZ4Y3Q2bE4zTkgybHZYdkFBCjBPbm8zck5iOE52QU1Cd3JlN2lW\nVmlFNUtwVDFDbXg0c1ZXWDlDcmUxL0kKLS0tIFF1aG02Zk8zMmxBT0YzMVQ3TXBO\nUkVzYW9TcEVxTHo1S1pBSVk3dnYweG8KcCkdO8/TfDIvuKEp0p37w3+l6e+orfkG\n/LiGwFCCEP6ZTq+BFsGKVHE+1uhatCz34SwdGVv+KG3ADJJ3DF869w==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBka2tlbk1LaFhxajd1YTFL\nNGgzZDZiQlVVZHk1STVEdDNqN0VLSXFENlZVCmY5bDZma2NsK016dWYxVEVnSktI\nNFhtM0pCRFNFZThzcUhBMkdPY2I3UUEKLS0tICtXMGNVWVNaQUFLWjNHOUpRR1or\nK25YZWR0MGJIWWhUSDBhbCs3MW5MSWMKTHnsdKz2TxVt8h2MUYV9pnW8fsdtu5Ny\na5f1fzOa6AA5s3Si1WcDimfc/532/i9dXD9dNeewNxz7ZHGRpvx9AA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17c9908f08w2w0ajprep4p60a7hd27cznrnxmq4mxwznvgzjuhymsxttd3d"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyZktkOUQ1SHF0d3BvNmVP\naE1yZ0QzdVRFV2ZTUHcxYXBsN0dkYThseUE4CkFjdFltWmRWa2R1WmhZbGJqMFVH\nb2xVSjdwL0lEcm1PL2ZZZDhYd0Nvc1EKLS0tIERSYlpmWTNlNU9FZUJaRGRaYjIv\nQVo2QTY0dU96K2l1ZVV2VnYzZ1QweEkKU+m5Y0aIHPJtu6MrDb8s/ig0KKi12TcM\nHoZ7P2JYWhLls41YGyIXj7Sn675//78VuIk+XoJDavAR5ZOsAg9Rhg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwVlhkMXhqTEkvNDdwSzdl\nZml2SDZmRFNJK2xzajZxcEk3WHppNnVwTHo0ClNkUkpjUzQrMXJwSFJIZ0g1Njla\nMWQ5S1R5WmJ3SkpOYTdUYmJmc3FjREkKLS0tIFhXcUNFVlIyNTlvMzlEL3hTY0xS\nY0dlQSs0UlUyVTlEL1hSTjVZcmtVV00KoQyT41bDOnLsakic84GMfsFKxrwQfGG3\nizUJ84fIkMlkCsUdRsTZ8IgkBTfryY1wCrbAQFefh6P0qbYBJNSAfQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGF6SENtdThE\nSmdXbUhqWDdGSWdvMjlaLzNNWjgxNmhZUU5pM01MU2M3UzAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpBWkhjRkFucG5abG9Wdy9NMWR0c0Vm\nRUhySWZ0WjhINWE3Y3dDVGRrdnZZCi0tLSB5WmtNOU1POTJzaGE2Ty9hWjUyV3A2\nbFNIY0EvOTlQcjVRN1dNK2h4MFRvCpowGpMUHArS4pkzVxxTnYjD6nEElbX49hlE\nB7CoXVupVrnmf6WfjYwENs28UToK5Opy0CdlNn8qJz0e62yxqMI=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE50MGtrdldr\nTklsMDVDNW5ud21CUCszV29OaDh1aC94MDdIVC9YbktXMjQgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpIZkN0a0lmU3BCeWJKZk55R3dWMGRr\nWG96VS9DMFJOU2JHdmw3cUlpVlVBCi0tLSBKTjJ0S1ljekt0NTl1QzhNV3Y4bEZ5\nQ3lZNTBWNWozQ2d3S0hGRmJ6M2dFCv/SnN7GsGNxt/umfC4N0hO6PKYsugG9w1k9\nJD5ez5Wc3jF6ah+julyIxJHC/SojfSFPPb2FwCjyRpoN3rCe6wk=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEUrR1JQRlpa\nckg1QUlVQURqTUdXYUlhN0JleFI5bThhekZ5R3dNNDdoenMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpsNTRHcWZqcmxpQzEyaytqT285Z2Ew\nMWpxNHBvQSs2dlJDcDZUR21tNVY0Ci0tLSBuUVZZZVU3RWpPYk8rSlkrV3p5d1h3\nUG1PYWZLVTVFMEtsQmxjUGZpMm84CoNNgUGwLH3zjuyE2dsX2IFzuo6+pexSiZRP\nkxZCDC8GbzO3hW9fJWFfG6PRk1ziZVTfQP/Im6td3xr2ZEdWS0U=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIC9zNU5TcGF0\nYkN3NGxQQzJZZzdyblRMeVZxS2l4WnFIalprdlhvSzRPamsgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpDNGlkOTB0UDFVak1WdkxvcDRqeGUx\nT05GZ0Z4ZlpGRVJSSW1xY3lDcGpNCi0tLSB6cWIxbGVROURld09oYkpZdmtzZ1dP\nN2tGOGc0NFdGNC9jc2VTVVFMY0J3CncXDCGJKS+IWNk78jsMgxwDdJT5zKNfW/iE\nplhVVeMcgAOj+fBC5oETpzO2+DuvFgnRcjGxUl5VBL2bLwhV0Pg=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBsVUVYRjZ2\nSjcwR1g3R1FnQnJNSGtDYm9va2tRSUUwd3JObEVOZWNDQUEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo2UnNIbmJ3N0JEdzdIZWROSVhUc1VS\nQmJwc2NjSGJjK2l2a3JCQWYxVjZNCi0tLSBVMVFxOC9XZ2VwcUFSbWt0RkJadEtB\naE5sV1h1QWM1Y1BjbWhvQXA5OHNZCgE1kTlGqbmYSXq+MKhOIEnRYZhRFgWekGPi\n6mG+lWQNybBmcaOMsoAIanq37+6jm3OB40kdnM2Bg2dVM0K7qds=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFc4MVEvUnNl\na0t3bEJKVWJwWW0xaGRINW9kaThabWRvNXp5K1M0bjdzeEEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpnem5lbElsNXNkN1RUUFRpZzdsNUJj\nalZacC92S0VYaGxHZmhHdnZKeVk4Ci0tLSBVZGdHSzBFUzNmdTE0V24yYk9xc2Jm\nTDZlZ0lvd0R3THpJdTlQMjVkbGc4ClfmlqlrVGyCIVRy2fnT08nzFiHjUIqZwI4h\nw2gcg2Ld3kD3fvwG0Z+K1JjUMd4DBJpEiZHCDZDNv4+EIJTvVAA=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6NklZYTBlZjQ4Uk5hbHA4\nb3YzMS9uZWZiY1dCS29MOVg2VDZyVFFha2l3Ckcra2t2SEtaZ0s4d3lhVXF4b1Bh\neDlZcWZEOGlqMk9haDB6V2hkQzFyZVUKLS0tIFdIUFFnVUxPV3d6cVRKZVNTLzE0\nOGd2Q2tuemVxV1NWVzF0Nkc1WDdpM0EKH0WNgwI4VSKUDB2rhlW+R7Cz/NdZ9iPS\nDvboTIxXfKd7gCDIR2xmXPZ8wkpFl9/0knrnrT3Dqb8UPruozm4e7A==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRdnFLcHVvVnhBRkRzWVdY\nS1NOSG1tZkRRdnk2aXlQVnBtaXA4YnZBZjBFCmRBSFptZEcvQ2RWb2Y4WHpCakJF\nZnh0N1NTUFgrMWFJbEdsZHV5V3VBOXMKLS0tIDl0UlBWN2N3Z0ZMdFVFQ29zcFdB\nMHJiZHRWMHArRVAwakRHTTBIVVJISmMKaMWybzmxvDjjWFQ18xO9qnnyfgHXQwEm\nd35ZzQyX3/8KdotZZlgjsiWYlkNQvdSjRC9twcFulxmgMTmZDF5F0A==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1ck5IWlRQOWtpdHBqb3l2\ncGZNNmRxTW9FekwxNGtWQmFzbTFianhSUTBnCm4zR0E3bDNBaFNxMUErWkRTZUcz\nZmZaL1MwN0JmckFXWDB3Z3NFVXVUd1kKLS0tIHlSYU5EcEIwZEdmckpNM040R0Y5\nME1PRE1Sd0cwMXFiejJ1d043ai9IRk0KQFBvOYNFxVkDCEmFS0t7S8PTm6NKfJ61\nccYRYRrcVBXEq1HzsDaBqIQRdBXeWEnp0185Nws0PyaWkJivSNHQ9A==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBaDMyNk5XTkhXK05UUGxS\na0JFZ2o0ZGNwOVQrZjBrZlc5MCtqanZGaTNFCnN0eFoyUk43NitDSTlJbDVTQkRj\nZWVqNWkxQmE1UGsyWEZvOEJyanZ0VmcKLS0tIFQvOUk5djdaOEV5d054bFFDK0xJ\nN1B4bldLTVhhOHVNRFJ5Y0NtQmh6MFEKP1O7Vu4CBN58RQtPMT/LQKqjkXQ/Lduc\nPchRzK05ZjaBlqUSQl5Int3/99dViyec9gocowhO091ZUCiXPx9imA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkeVlLbSsxdkZsZEZYYXE1\nNW9OYjlFZTQxTTNXOFlSUHgzQU1Ebis4OFVnCkZiLzBiTUM0THFXS2VyaDdMOElr\nQnZnQWxra05QUnBkU0xQTGRMRkUzMzQKLS0tIGU4b1RoYW0yeHQ2WkNPcmFSYWpK\nY1k0eXhLM0czcDV1MkJRTVg2b0MzZ0UKoQ7Bml2v75yxy+E7+JnZPuoquszfn8fE\nJKH0SHNHF2klcupzGWcVNU6KDcLXWS9m75oqrGKUkx20FyHc/5YDIQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzNnY2b05TOHNoVlF6dGJG\nS205U0ZHSldLdnR0M3VmSmd5VWtVMHZZYkFrCjYwbXVmTFVpZDkxZXhaaWFJZmF6\nS0F1cjVMdUdBVTlveVNiMzBFU05oakUKLS0tIGpUSVpab2hPMTZRRlJtbUxKVUhu\nYnVoYU45RjNKWHU5NVdSODlUeTAvQTQKAplXiFMfVwh6bLEaz1QAYU33h4CBPiXq\nSCK9nXhTdWpC8qhR95rV2IQ2h7ec6R+n9qSw2uE5/zCF+bJmpiSFTg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEcCs4UmVmcnVlbmhENnQ3\nS09ZOGt1U1dTdE56c2M1L0RoMWFCc0J4elIwCit2c3JCRGlnSm1reFNQZzJITmx1\nTmEydGtiNjNOcG8vU0l3aU1BUmRKMlUKLS0tIGp1dlZXUU9MTnhQVTZTcTR4ZUto\nS3BuUDdEeHlOTExYR1VORWpJWjBrTG8KyV5WvHidzg2MNEUfuGo/CGUDUwmB7CMO\nFaa83c+gxpKgHbkpWp8kdQs+1ijtQgRCsDQxrGbFHCmL2Grf+7dtRw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvTXVlaTB0VFJxczR0eEEz\nb29rKzVSaDhvdlNWMm5FU1ZKVUNaQVZMckhNCnAxRkVCaXVkMEp3TnJ6L1hLenN5\nTjU0OE95ZjZrUjYrU3pKd1NWMnNzaWMKLS0tIFVLUnhYL28yTDJwbk5mMnlJMUFQ\nNWk2MTRrQ0M5WWhPamtSaDQyQS94cWcKeoR5dnnBCp9sq5qNGUiNk5Y2gGn9lrn/\npawC3GHRSsKTUi22vUHPL+wV0S+O0tkKrTEAx736Ic4gtG11NfnmgA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:00Z",
"mac": "ENC[AES256_GCM,data:EbL+9gcgmuLguFkzLCNTMM8hAWVxpHbqjqOotHhZlED2w/3aRDGAqyq7ymw6JqNwhPyMPzqw5rrjItByJydljKNRSYON24zq0ajyS0whMusHw0KkKGzTk4Qv01Whfars0iFuQ6hsRfkLk8H+dO2YLoKInnCIGN/qelUb5ktlk1M=,iv:DiE5IjcruqlivGZvMLR/0h0fKKS/IUWFhsOo/UG+hYY=,tag:zKh74cOYCv5c6aLEPMR6kQ==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:02Z",
"mac": "ENC[AES256_GCM,data:Cot/DuvBUGsqbep4mkhzq2+DcLDLEaK+lzsxsoz3Icv8Qah2dMk36Rs3gya8jWPyi2gqdhUf0Gzl/tNxXKsDYMuCM1vD3uPTNbH3EpmVN71hXAeg2snY8Jcvs9iSDYz6I5b4+Z+i2Zw3Xq+jK/vLFOmhJco1GVe15WkDF/UNm08=,iv:Lii6ZiSwDP0UxUkqn218jmGB6HJH94UXB471fn4M0DM=,tag:3t1/KMzBtxzAULnDN2JsjQ==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAMnPrq65c9IbA7UOkxclSc/7DJWRshGbuNkHKm2aTZBM=
MCowBQYDK2VwAyEAA9P4T7byGSh4YZUJGneS/qr57cQLEqCfNm0qkk3B2GU=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWDDK5GicNsKQ9UZFUaSZkSiGPWPkwzd4GiBkxEzKC2x3C
12D3KooWA5Jrnf6LiYDLj6XFteXFSufWB7nbKKwmgThxNPEdC82Q
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:GJqXJAgsFRXHoBoGxVtmuOUrRc0wXet1N10NMKWo0/2NC+kiYoIROHlCSKWNKik/ld5XTHa3FCgJ+L5+3+fOhlkoTTEovMA/CMOnqstwCTAuXJ7jctjjemjY6v4a2ysA9mqmgxB3G8PECsSUWbrrwAqWJiKAYmDqjvTvAfpKa92ABWILkAlhmYL3SyZUakRpNkO5EJ5CjkW0WDnrSB+s+TrP09wysfWmaq+FNCvx+hubzVCe0VuimwR8NV+VhRT2LIswbsTPi2aDmleuuh4yvMcyyUbM0VdXHmKeWn+SKpvBBvzR5gY150qcv5rc,iv:rHREzxLQ2AYvAR0Xy6+sfzz2QAbICCgxGi3jWZu+5oE=,tag:p8yvDAyLUM7gxs7rT7u8sg==,type:str]",
"data": "ENC[AES256_GCM,data:5F3crGlP8sWWAtZ2aRUESf3p8n1GPR5TgvntBP5NgFS0T1LkVNjIZDh8femVXbcL5lF6bCzEuo9CqlxshP8WdGMibrI3Fcuo8nfRcazkiWP2h2f+DgIho12IN/eQlMStukXD1OYbcI7JbEbj45YBQBE+qUCjxb24F/tqMxQpGWZtunoBiL8fGI/GenoIyWlumOYakCOsgWfc9SDgKMyvaeo2chZY1O411O+qFATugki6jOuH9ZoTwzMgshdkWAcXfHMFUtyGrE99t0hlAyigPs0+70OLtPhD/t92sGal+wZtFTxX+cWmne96TeDu,iv:arJzs9/Ven1EnCUedSJ99ul9KOpK1Zgz97Oi4gdFrvY=,tag:9KalsRcRzioZH6EmYOpHiA==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSakpHOUNKWEQwTGlmSHZZ\nTE1CajY0T3MwY2xjZHZOQUJ1SGNOb29KbkFzCkFYZ0wrU0x5RFQ0aDVDU3l0TExZ\nYkNxdk9UT2ZLYzI0VDZ2Mnl3bDh3L28KLS0tIHJVakgrV3ltbUtybEFJcTBVZ2JB\nVi9yQjBydWphWmtZRW1KZEJ5Mk1vY00KkTmpAf+Kc83jlkkNLSpCzIuTg0vKki6O\nn4uu3Hq6e/2DWra70x6zXoQkLkEhz0CQNnB+OhVlKmPIA8npzYELYw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArb1hWNWgxU21XdzlydGtj\nc3hrU0dubmhHbG1kNUhzNW5Ma2t6aEhoZlRjCml0SzVMZHZIN0Fac1RZaUE1TVNt\nWW4zSGxTd2VLV1pkWXlvd1BISXBIeDAKLS0tIGJ1dFYvNkJtTmhuSk4rUi9GaWNO\nSHpDS1JXS3pzM0t0ZUlSRnZId2hIZ0kKtsmsmFOyDakzamataE1GY8t7WniaoFvH\n4Nh7txT2gytYvqti1BrTeHvI0oigPZ3Y0X++DF1vsPyili0lIJFiAg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIENMY0tyOTBR\nMzJEbnBDZzVqU25WbEZNVGFpWXlQR0U1am9WcUZ1SFZUQzggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpIaTYxelJsdGVaTlFTMDRFUDd5aDJy\nOWg4azNNOVM1eFdiOTNORHRpN0VBCi0tLSBXcy9xRm1ySU40eTB1MFhSYnpSbmxs\nK0pjUmd0WnpHYnU1TFVYWklXTGp3Chlf9lvM8fFPrDpMCOPXtIFJl5CBbnI8qE57\nXf0XaPuDsXfYkRwayis5FfCBA8qCOrqfy5FXR5+o6SieSAXdhJI=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFBISEhuZTNs\nelhWTkY1QS81RE85TFgxTXNSYjZxdlIzRHNjUXFkQVphQncgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo4NUMxTnRaMkhLVFN3aHMyaHFVRG1w\nQUxWT2w0VG5lQzI0V3FqeldTOFlJCi0tLSBnU1pJamxCQkZ5RW1SWG9TQkxpbkI0\nOFpCenVDWVV6cys1bUJhRTBxWnhnClakpblTnMiqbJ3EJEQnIU95nHa58Ff6QcvZ\n51ip1lRPP8rHbA5L0p2GIf5e+3XsZIdvUQ9Ezh7z5TU4YJqMkVU=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGZRdXNSZWtm\nSDUvVzFuczEvL2pTZjBjY1YxV0pFcjkwOEhKM21vcGpqR0kgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo4YU16MTNpbDlQUHozTy9tRTM4V3pS\nbSsyem5obTVmaW5HZC9PSG1zeDgwCi0tLSBPcXVBdWw1UEhERnRuKzU1bmdEOTRl\nalo3SFowT1dTVjh5aHVkQlZ1VUhrCnGs/ApvHE6Nf2mIxKT3Ih7GgsV/qg7dM+du\nxQIXKcUWaiwa26Wnri7pYpoej9IV1Mq14chaQwo8GOkSo8jRsGQ=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHVBeXIraGpM\nMDZzY1ZWNFFWc3hFbXJ6eCtJR2g0NkRBemlNK0NWSjA1QWcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwoyd25MbWRvSzZEempNL1U1Tk02SkpB\ncGZjeGRCbUptM29OS0xxRW53UnZjCi0tLSBsdzRYR1hiQWNQY2NaeElVb2s1Q0Fs\nQW9QVFBrWTV3R2JqdXp1V3ZwWlZRCgYUUAi8toN58WLukyy3pYypE0U6jY0hp9dZ\nGCib4yeQiuCldBA27A7Zp+oQl5oEUtkqiGU8WOmOqDafH15xhn4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIENvOTdqQjcy\nMmIwbzNuQ2FjWVNHTzJNZTFtck9RVjlETnd5VUtKVzVXaU0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpySCtKNHZHVUZOZVFWRnhaSFlVVEJi\nRUs1M3RnSWhWWHlwN25tbzMyU2F3Ci0tLSBmVnYyMGFpQmNlTGV3QTRmSGZQM2h6\nWWt4UDFLK0Jsa1ZNNkdTd2VTcWNFChvawLld0Un5RCfB6uKd5G5MbLB4iP29uGjW\n/Xatk5i4Ig8JoUTwiQ6RKZ7s0GtbS7YvDywG2kLN1wRCIUgP7R8=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGkzWWdwZGRC\nME8vNUJtZzZaSXhQT3lCbVc4dWJ2N2ZuNnovdE03ajk4UU0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwoxdVlEVkRWbkhnR2pnY0d1SHVTbG1o\nUC82Y00vV1l0eWxNMUZ5aWd2TWRjCi0tLSBjejJFVnJUOGFSVHB1dEQzSzhoSWNq\nVGE5enhFdllKUlJCOCszZ2o4enVBCumJoNHbx/oEVrucsl2f7GlPmmvGHu2E9Exk\nENZq8tajYz7yFmJvcZ+LI+qiEE2du3Hvn2EQBHdIL76fqACiXfk=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNndDZURRcDJBUHFsS2cw\nbzNQOFZaM3BWZExhcGNSRnJRZ0lFd2Ewc21jCmxCbnVyK2dVT3FONkhYcURMczlN\nNlliRTRQOG0wTmwxcUFJbktMQ3JFZUkKLS0tIGZneGZRSXNYWGRURER0VW5WWUdF\nTXdSWCs4L2hwdU15ZlAzYUxpcDgrTk0KVl30+zG3LVKeasinAMBHVVQJ+KhMc4/L\no1DEltlfVZhF+gcqcraxPhpE4pLuxBtTqXuFOl/m8sT0R6FgQmB7Xg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwQ3BoR1N1VmpncW9xNS90\nY3RYUnZZOHhVQTNZRTZkcENEQWVpK1FlV0E0CkJhc2RlR0FnWDE3MFJlR0ZMdmdP\nNDJWT0tHNUFUbWMzVDVNWVBjQlNKU0UKLS0tIE1WejFDaVkyZ2hBaFFJS2FSQnc2\nT0swb1hKazBoblhRenZVSzQvYzNLdlEKh02iDFKfDuqOt0TW440SdJVHqBaLz2Ns\nHZZcoiXXXNVTCyjYO+8UvrSCOwQmtPmio2SzWaa1Il2sUblMiCx7Kg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnQ1pyQzNhMHNHVkRkNllq\nMWxuQnFTOHlkMW5zUjdDRE1kTnArYmpXY1E4CjZuaWxSSUFRSThUTVQrYVphT2dl\nZW5YRE9uSGRUZDA5TDhHdzhhNjYrT1kKLS0tIG1OUDFHU3dtQ1A1Y0FGa3BJTWY2\nWDBQcjQ3SVFrMWw5Z1VsNW5GT0wwZHMKdjESSpkkB2nAQ5hXKrYCZcWHxgCkz1pC\nve/2nFw8b+ONQCuXvwlw3avH5Y2aGtDDrMwUjn6OYflTerV4t0ksJA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtWkVIbGMwUklqUEp3bG1H\naTBsajFycVJHaEZSKy9lZTc0QllDNHFKb0E4CnBBbE1HZTFpeVk4TVhtNERuT001\nUDlxZE51cVk2aDFFMWIxSzRlRjYxbjAKLS0tIERncVRaQm9hWVkzdXY1OVlIbG14\ndFhUaUtTQ1ZacFlRSStGd1VVelV0NGsKjVH1u/e0WD1TYMEdksty6HYjQ7786TXh\nuUP3CqVFJrm1lLvawCCzQ8go+RodAYGBY6ZWcRJ9dYgev8RFmFRTwQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1SEt1ci80WFg3UlVkWGZ0\naE1GbWhQMVdiRk1SWnlQTmpaeXJxbGh0eDFRCmdZRHRmUVJrSHNaS3JKVlFReGlJ\neEJVbkE4aGdxbnJhTmtlakpKUHlIbWsKLS0tIDAybFdDQjZDN1dNSW02NGl6dk9r\nT3JITi9ibEVjSzhLMjJTL2tST09IelEKlWyNaqhbQX3qMJDxvG/9b81T1Sw2b8GO\nmlY1PDmwnEB95HZdd5ZZx044/WY8cqzla7hy6JqGqqzf7oKTdnwAWA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhcTJGeEg4VmNRL0NpMHVH\neU9qTXdjK0I4bS9DTnN6b3l4alVNYm5yQ3hNCmlFeUJ5dFM3ZTlDSWJ0Q3VkRGlt\nRkFvTTdNRzFpendhdXAxZWtVVEdGVVEKLS0tICtOeUJ5MkpTODVBZlZXQlFnK3ll\nZkY0ZXJkNC9Fb3N6U0IrZ3NoWlNuclEKRKrMfKwiXBSBR9fjEqnbrV1A1mDSWbCf\n2negz58X28+wb4PoAO+TyaBWb1Or62dMhPR+j8X5cyckluoEbqlKPw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2RUxGTEh6RHpjKzhWaERm\nYmc2UG0xbnJPa2VmVDNYdzZUOE1vczdpTzIwCk1xOTV2WEwzRXdtREhWNnB4WHNn\nTGRPRVY0YlRoRUFOSVNjZHBqSWxpbGcKLS0tIFVEWTBRZlFsMEloNTF2YjZKVEVU\nL2dveTZPdUVQYmJ5enl0dGxsclFySTQKeKIwcEuVl4IFutbQCAw9kUXMwtDW0lNr\nMheYoMdxLBwkvuzo4To2EheG87jIDT/tZxFaLauDJcX+qIqyWeVCIg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyeUhrRmZWTERqSVZwSWo0\nZTdUY2p3ZlF6RGVTVEYzbEJsbDdNSUVMUkgwCkUxNFljOTZ3NEpnWVk5NlFhMWs2\naWVnMTZRb1VPbUNHV3YvNlFCNmhUbVEKLS0tIFN4bklzWTRYRXdOVmVnYlZ3R0Nu\nOUl6Q1dza0lEU2hDN0V6cG5FbVVqVGsK6mfGXi3Zr/biPVfd9I8bZoTupjvS8Aks\na3gBolBkhosKfkrvaO0AQY7k28iPGoLmQedbf+qhll5bJQs0028iJQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSVVPU0hQNXA0VW1seVk1\nZHIrTDRBRWszb0xiWnptcThoVTZaZitHZWlFCkk1YklYbzNnMnpiVkp5bmNNTWNu\nNmhoMmNmZ1I5S0N6SmpTaTNRckpPd2MKLS0tIDE3VFBobjFiYWFQZG1laW84OVdx\nTDBEMk9kcm1NVFZMUmVJN2FxcmZsUEkKtBUfglnOdRGyE/XEoTkEHdRVQmJ5kS7v\nL36oWT6DebKT4nmxCyTLCNkyvywBnO57aOyyh0ZivFn899OL8kfcbg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArR21POExpZlMvME5CZDNG\nRHUrLzlxVmR1eHM0NlJjZHhjWnM0a3c5dFEwCno1QTJENWZZdmVxeXUrZ3M2QTFS\nb3ZPTm9yeUtnM1NIei9GcUlqaXpJenMKLS0tIDZLSUhTa3kydjhFRWpNaU9wM1E4\nK1FKblg1VUlmVEpvWmJLUzlrb252MWcKlOVh9d++hGm7kPTfs/8xVXFsRhbBz/j8\nlmGYO0LbUW5mt3pgm8P+lM7W4xpurb3W7IM92v9tgEeDW0OLIIo6Zw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1xzasw9ggd9gf39nx90jpe4qu8p4nzke98e70t7e8sl9mutkgrd4s0elqcl"
}
],
"lastmodified": "2026-07-22T03:11:01Z",
"mac": "ENC[AES256_GCM,data:40ZhfRtuxDfaa+DSYdgLMpAKuC/CZ5y13O/KzcrqGqveCqzjkfiW7b6dJU5+I1kYRMbosHLDfQZQym1utBRg1MCVXPSUcPzr7gwd8iN+l2q2o6FzViAXyE0HjW46b3m7saiy7d8bRnR1kzERvTnk3Z+uxHORSkQOTK1R+pmyFy4=,iv:lIWX3WIcAi3+GgsFJyDuN0bKwG3yntVANQQvEz3Eams=,tag:XaFZ/BcT2Vj6MwoUoLy1Wg==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:03Z",
"mac": "ENC[AES256_GCM,data:N4i13g/DnwcPTNhh4O9zQGzZdE5BTLw/YsF4wQpWyGt/555kUXIoFrj/gWe+i0SkzEhXpRMJps6E713mVQCZbI/AyOo+GB9mqEWEze/uWHhMs1E0WnREyj8Q4L9zdeY6TdfuBQvtxSOjZ+AX5sw2Q+5nl/Kw6DskavkdnnTKP60=,iv:d5lRGMYDgRYVnF8iKfj9TqsRWqr+ZNHaEBohBcHiERI=,tag:wjqT7EmxJbvuSk/lPgQAbw==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:Cuw7TOczdfJNXhawJswfQpoaC5p/d/wy2ELSuTwpTP8bZfjgQzpOA4k+Wi4go5BQR4CsZRN1v3qMSkm1U9yO1TXPP/lLLQpyGLew1/pp2rK/Y9CMr0obc7tZljt4Mp7rKiow4SJTnop/TxpXuPmlsAatchl2vNM=,iv:64Idzy+8gWDTC8D8GgLBKtGrdxoPe7SPEP51pqRKgiA=,tag:JcWCO6dWml2mWypSHZdzNw==,type:str]",
"data": "ENC[AES256_GCM,data:6eR3dfzALFv7S4fu54M6tYHsH72DBPfTzhWNFIi+U96syzbec0VBy72liJPH5KCvTTPdlyDlZIESSp8lTaDp87A9zwZ7C3PNEawGfVKHABgaue4B+W1fXLAbs+Wr3WOVDxmyLtszmJ+Kpwvp3kvrK5v0/M9ckqk=,iv:XzfPp657YzAB20FFICF+Cgvo79jgx7GwO9ABUpMwaqU=,tag:jpNal6i70eMqwni7YozvbQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrRHU3NnF5VUErcUcrQ1U3\ndjFHME45TlFRdHVKU0gwVC8wZ2J6TlZya2drCkFDdEowOENya2NvM2NzOGlGSGkv\ncldsK3lubXF5bkF0RGp1dUlmMFdUeVUKLS0tIHdtckx0dCs4ZE1NSVZFQTg5Q3k2\nbGRUejB2aGZjNmxEd1A4QW5DSDhGV3cKY5r2kTxljx+rEj4H+mgw1sPQFlXgdi4b\nW6dwzqpCPwrtBrP00Hh3KTjCU/BvlKA5luTRuZ7Pl8boW6wLc6Vsvw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyN1RWVHBlVDY0MDdUSUtS\nTnpXS0pmdXVBdkRrWEFaYk1iZ3ozZnQwOFZNCkhvcWxEd0NMS0oyd1Fmemk3dGZD\nM0QyaDBqZEVOKzFRbTAzdVlnSFZ6c00KLS0tIEpNbFJNSXZGSTkyOW0yUC93a1di\nc1ZCaHB5bWxjMDNMbGUyL25ZcVU1NnMKVv5T1KY07RRoTl196s5pzaB+49odBPMb\niSAYYE/hx/SpISBykCf+FgYQrLT4ofbpzPJSJ86bNg8ZQhgxnxj4Aw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDVCV3cvUjgv\nY3ZjQkNuemZIN3N0eW5rVFhMVjVQVnlpRXZ2STV6MmNqZ28gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQoxeGpxaXRYc0VxVm1CREhtMUw4alUv\nWTIyOGpBZFk3bGZnNlVkS0dYQzNvCi0tLSA5RUhncERZSTQ3T2ovbERRSjRDcW5k\nQ0tDUmpoNUJUenNORnFLRTk2UWNFCo0aOmOT9jqkqUskNv4591ShT9+jJ3hHjC9v\nfR5B/pRKYWGT5c38NVWYpNcRaqSepxLR1fqKuk9Kl89lTS/s38o=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlkeWltODAy\nU2pCaEhhZ0NjTFh1SlZqaHI4M3VQN3hQL3JBUmozK3QzR3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpkaUs3bHFDUFdBSnZJNXJVRFBmUHRs\nMlRlQ2tZZkNkTXRKeS80QVlYcUVVCi0tLSBoMVB6Z21xL0FDWXEzUzdFSVlWUzhH\nVmJRRzd0S0w5ekhvSEVCNHZhcDBrCluweeWQQlprMzQ5EVhvUiHsjp43HmLFjH9u\no9IaLqUE2DZgLTrP856m4EMkVvHZEnU6zutAodraNNt+R50h6yM=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZEK3g2bzZo\nM3VSVmlaTkRyU0lRWG5ha0pKQngydlhtSitSb1JKaTZkbW8gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwowbVNWNi9WbHZxM2o4cXg4MG15R1Y1\nekJtNGVIRDRnMy96NDd5NzluUHc4Ci0tLSB3WUZZalJrZUY1VnR1UjJncURSYWtM\nN05iUGcxSGhkb0Uzd04yeUJjVnkwCs3T+0JGRovxcqYGfbUTsZaWGhpdQ/8SBkTK\nVZoUGg6A/MQTK0RkMtO/cGAOttvaywK4BzQcK83ocn5ahGYPMw4=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlCS21pWVNM\nNDBjbFY4Vkh2ekxhSHlidjhLRnBHbXJWSzJwQXcwZGgxM1EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwp1cmhrUUNDbm95ZFNwdUprZkZablJM\nU3p6ZmUrWERhVk94ODRvcEsrRkNFCi0tLSByeTdScS96WEI2UlNrTHhJdW1YYVM0\nWGNkWDlQdEhmT1hUdnJtR2hvN1VBCs1qEYnEab9o0oqa/1RyKYbTKJ1pMOjd/MCn\nQCSHaNtYrTvT4/cv5QywcI5ZIGwMOU45Xj81lE5Z3mgq2+NRXRo=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEY0M0lxQ0V6\nWk4rT3Q4emo0all3UmZuL3NnZERuZjFnMExYZ1dLNnJRdzQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo0WTB4M2dTc0ZUblNhRnpTOWlNTFBl\nM3FtQ3BnejlJUzlHOVZacGsrTTdjCi0tLSBhQ3RXK0hIT0ZDL3ZxOVh5OE1aTUZD\nTFBCNFl1bmlLbkMvUEE5K3lhcHFJCih8t0DFk6MGT3clsgLWhtkQMuPqklUGFaQd\nvFys3SBoWD5zBzPuG213ENbSVT8P2VZ0X7j9e8YJ5Gj2RnTyN04=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGFrNjFCMWpy\nQkJlSS9GNzd5cndKclpxV3EzUkgwdG80dEpoN3o5YktqamcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpjVlBEM3o1SlA0aEJnMWpqNFFicjdo\nZUE2OXRsLzB3YlV3S1BsMTVmbnJ3Ci0tLSAzU1FMQWllWFcrWko4Y3VvMXdqblVq\nSGhQbVF5TDVnQ2JPc1NSU0FUVEtrCrwVEU4MguR8og6nd/Jay0KDl96KHpiHHak2\nqBZwtjwbrQs7t9isWDyl8UUgOiV2sQePI5Mr9Dj1Hea0WjkcWmw=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJZWlsQVpiNzJPV3FjdVM4\nT2pEWnhIM0tmSzlDSzZLYURCV3d5Mi9JMW5JCnFZSEdQRDlSSDRZVzl0b0RKd3hZ\nSzM5UWZPY3RBUnhwaW44L2J5QWkyREkKLS0tIDFMRGdPeUVhUkpwMXhVeGVVa01G\nVDBIL2RKKzJkc3plUVhPUkxUa2RLUHMKgpDyG5RYhOMZvkAry41YgNrXUoKg66CG\n0df5zVnZrfn/wxCPWA4JrAQ0n7QDEoP6TWIwATgIVH1l7L0TahWiVw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmLzB4YWljMFVRZEU4c0k4\nSEU0eHpocVd5eWpzakhUK0taZzlmU0ptbWljCkFEcS9sbG5jdURMSXdISHhkemIw\nYlgyL0VqdDRCblEyNEhvTndHTDJJMEkKLS0tIGVUdEZxbE1wS1BienRwa0N0cmRt\nbk9LRml0YUNmVGYxM3JCYVM1QnVCYVEKdYPwHkrCw8XPFC35I1A8adM5gQjgsVzM\nzl0OTp9yku47YwhXgWZ/ub8ILGhw9w6f62cKuFKp2J17rfs3NdCVCQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1NzdHRHRUUVBqTUlpVW13\neElLdXpzOXJMcTlsbFc3TEIyRHdIMkp6V2xzCloyS01FMEJrNDdESjVQU0tyTkIr\nS21ib2Q0WTNDbzgzajJOSUpXMExXL3cKLS0tIE1VVjZPOTFvWFltcVV1bkc0Z244\nVmhoTEdnNktla1FnSVREOTNSWkJyeG8KbiTZcaqD1iHyQDqmRKgyMYisJGOGTjtm\nCS9H+2hqfSkeKBz8X9lUtI+AFDWetdr10Py04LRW0nBqXlbnEimqAw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFdmN0VGwvVXBicHlUNG9w\nU3pNdHRiVzdmVWlYNEJGRk1nTzJJbUZ4TVZzCmhWMStEbEZpRTVYb085QW1ZWGRX\nb3lXbzJ2Yi9wcHZvdjdxd0h4azY5K1EKLS0tIENzcGg2VjYra2NNdi80d3ZKblRw\ncG92ZGlrOTdiaThPVjR6ZktJZ1dFRUkKBPk6avTyf+aY/++CUiWCL9/ATlajjxVj\n9ZPs5XkdV07GF6PmWFW8Uf/MTfn6GF1aZ0SPquoXEH7nWslm2apgCQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU044MS9qV3dmcTNJWGg1\nelFFZjk2L045RFozeWtEUW4rSjRZNlFwaENJClpObU9NanNMdi9WaklpUHh5S3BX\nZmdJZTlqRTBGUW03SVNhNE5sRnc1WmsKLS0tIEo4bHZmOXRCUGZaaXBmTFlvZWtE\nZjFnKzdYTEE4QU1vRStXcnAyMFNtVkEKy+wkk+msfhh5dHGiUsElPuONnGUjxDEf\ngjW/a93zcroIVY3krKJx5Y41HwAm4TABK7FCg7MbXvjLjFzNhLkueA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzVjJaaXFHeGNhdllDZXor\nb1orY1pKOEJ4WUlpN3Y3djAyV1d2L2U1OWdzClExb3RsSXdrb3Vrc01SQ3BraGRP\ncFcvZWJiVDhpYXo4R1ArYi8wWDhYRTgKLS0tICtLRFZHN3ZiZEhML0hLL1BuUzVy\nSmI1MVBxMVBNY1hvYXpkTDZJRTBJQmMKx46g85cCaxRSBjLW1yUmAsk22LEPoBmF\n1yQeILxRAfpP4R3Zp0oHkq6g/AinFPGbeu5qk47NxolfIszds58PvQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwRDBmTzN6L0RmWjNIdVVP\nUlZhQ2xDUlVJSXNCZnRLdlh4UDJZME04cmhvCnhtaHA4b3RVNjRHQ3ZJNjR3dHVH\nQ25pOEorS3hrR09YbkNDMU9ib2JWUkkKLS0tIHhpa0g4VmhZa1FFZWpRVEtKN0M2\nWE9mc29XTVl6OXo1QjlhVS9zRW5sbVEKWfTUzsYg8LxvATEqM5n45w2O2JbEw6MR\nL3ngkDB5C82MAYSLXgYXTfK4JF+M9CxaKjJUPCHE8RJVTWJIBtsGoA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBbnZGemVZOEgxWGtzRDhH\nYko5UjN3VTkraVRTUjVMblc5dW1vV0ZzVmhVCkt3Ylk2ekdVbnRzeXkzN3Z3UUxO\nUmR3QTd5c01pMmF2YjVrcThmM3VGMDgKLS0tIEtpMHhwNXMvZnFzOFdLZ21BQzBT\nZy9sSTd4TWF6RHRwbUNpR1FtYWdOMDQKpEHFgbC41bdcNnCBLtzaQFdC1bmGgQPy\nDvOM3W7UyrIusuu22eN0RXQlzVYkeX9STWK28UQIcFfHLmLT9DFr1g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOTkEzVVE1TzR0NU9vVGxj\nVkJzQlB3Z2xkdHVDOGJrRlkrRTFiYzJYK1dVCkRqOThPbmkyNURPNDlBaEJWUVFY\nNGhGV2MwUGNJWFIvUHduZ0RabXJFQzAKLS0tIGpDSWRlS204MG1YNVAvYzBtRlJ3\nOFhRaEF0Tk9HdTg4NVQ2ZGJTd3p1ZHMKuIWI/1ImdhEG9hidwbQ52Ain0iZ65Ujf\nma3HCEyFElgKFKk0Ftr8Hynao3QxAY1I/iij12hKfYYPSYJhkO3PEA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFL1p5WDFYTCt2UEtSeC8v\nb3BMdWdLWTVLYmhxMVpSY0RHUzd5aklsQmlnCmcwNU5pV0FjbGNndkE2dnVjT2Np\nbXY2OWtOUG8zUk1PM3pHNVVpZHZUY0EKLS0tIC8rV205UXM5ZkRnSzYrZVU1cGdH\nNjdPZjd4OWtSN09zMkNHcFZZT1R5c0kKS7OMliWNieIx9Nnhz/QPrpQ2IK0OmMtH\n3t6HNE8oFQ2JEt2GXhghMDbLgfHltZ4BHwtkyzXYcJVF3qH+M4lBBw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1xzasw9ggd9gf39nx90jpe4qu8p4nzke98e70t7e8sl9mutkgrd4s0elqcl"
}
],
"lastmodified": "2026-07-22T03:11:01Z",
"mac": "ENC[AES256_GCM,data:kyoFLnCbTh5qnB9Zvriqwpzkd5IyaJq6qmzreMGwPX7c0QWVeDQ3JKdxU6qf30gctxvzrjJ+UtCpjG92HDEBUbYMeysz1r3TTSS+75yNkEhSkew0MGNP7NnM5TYzy2Aj6IZsMeRiCZtPb8LSzKqO4W7xnaBAPlvHYYwxzGv8syE=,iv:plPA6moiPIMdZRFMt97Pu0esB//ywqaL7qSM+GTrAEQ=,tag:02rat/qppXURSyiTfBn5rw==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:03Z",
"mac": "ENC[AES256_GCM,data:VsJExu/80E1mZCqlkynQ2aGUUdkmD/W+o/FOYjAwuaKwZTY5s6CpZoAyjywfiU0Rxg+mYnIZ+01KtWwHohkDv/ASLo5RfK2PNNXIe0Q+W1UuS0OXMSjeiTdrry1fw4Oy4h7wsx0uW84wXvHnp0ZVJpOinz3oPZLssvDL3GFfQRY=,iv:6nYCeQOsi4zQSrFSopdF+fHfA9ilyuNjc3DkutqnrZ8=,tag:0DtVpSEcRstviYTv+a/B5g==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEArtBxTALuDkPwIjLpd0dD++hq8SGmbA4PlcIBvoI+TI0=
MCowBQYDK2VwAyEAXnXyIyCWeRO0ViGhwEV2h5f6d1FjDgMmcVSPHBhinRk=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWMamTPqtTdcRKZ5mMus2fEbfAmMeQVQPirteAwvrcjFun
12D3KooWGB6obwTL4XgqbeyDsUC2UVDmZZAC9Ufm4gVvfibYWoRz
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:F21/BMxH8s6sC9HeEijmkL0yyTkXBTmHClqwfJexY3RiZeqD7mVEnbSHWCvDhJAsIQsFSKAUxCN9SDTcIM5KrwJDs7CQlgXPgUTl+5xMI6+jrG4UBpZG0sQXAaF+b0ramBQ4jvCwIVhEzcQerDJdWXCh0gmg3HbeWIWW3eHcgFHuG4r+N9I0N9ENSEGYfjKiGJG6miYnM9osv6ieA7/V/Jf8KAvt3JVC464QIvU7Fnh2CsTBLsP9RqZYJUQFglZmUgLfufqL4PDGczEfogmkpzLv+3H/drfDLzV0QzdQFgTNV4Ea5UpcsV7iKpxo,iv:IJv642KrnqSuaSc5JhdHfRUwlUb6YJVVU6Lt0UH45aM=,tag:V2BMI+2D1gOi/3iDeSgElA==,type:str]",
"data": "ENC[AES256_GCM,data:xnMdhTXa22TceJ57AfDt8APGzqaj4FlBv7aoej6gMZQ2ssJ/M6KGXRtk7pBWxWIELKtV6yzp9nAQ5NheZtSGVnIEnpfkPyNVQzbug1pxwJc3KnuuqqyanZCnlPfeNgVoEasRScjDYn+uViemndUzhOGjCdXvWTis1a1AftLd6GIKUtKHk8KJUiisSt0k+3QJL/zBG1iklgUMWiw66XlfcD0pobYVk9WC2DtUeV/6aFymDcOm3C5s4eQ5nXsOym6AwufxgF4JB0DL51LchyVdik0lBJIil8HlxuSTY4Xcad85b+gzjyfiq2j46Vgf,iv:8TLxrVBsknZIjBPu6ErvUJF6eSl6POk2VNGmrgQlGWQ=,tag:upx/X+Q5Il4rv9nPyatQYg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByazFtaCtHWUNDMktZemlQ\nUUdNb0VHYkVkNXk0WUdvMjlycDR0TkhGZVhvCnQzdk44ekJoSTU0dVpuQjRWcjl5\ndDdMMXF4UGpUUkw0enZBT2ZuNFZaVzAKLS0tICsrWFZvQkZ2L2tQL1VnUTdtdEgr\nU2FMeDJaL3Bvd2k0UEhXamhpSkxCeG8K18u0ji2/Ls8MGuvekupvvdxV/i7NUVV3\nvrtd10wBXaKjGXl2qRHV/JB97Z10o0AkVbrjPqgipzSsu3ilCILEzQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjSFpOcElWOHZURzdEVFUv\ndWdCZUl0U1NvdWh6MHNjWkEwTCtZM3AxZVJzCkZMcjhUY3NCbDkrNEVFa3JxeEJi\nd0hiWjErdW1oL2F6djdOSFROaTBoSWsKLS0tIFY1eVgxaHBuMmNDbXV2c3J3R1Za\nbm1zaG1zV1IxNi94RkxJeDdPM3FRK1UKLqcXn2yT/8FqAK0Dm/ag+bvspSRM3don\nrEsjLa2QyMGy6DWe0dgmrUqlIPjUyjM2jmQysFbdxtWe3xruIxdamg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGltNzRhZmNZ\nWm41L0N0WitaZGwxTFEzWTkwVEZrN2NKSXk0MklYMCtPV3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorblFnVy9vejhQTnlUV0ZoM2FWSVNz\nRkdtdXlaaDNNRVVDN2w5M0Y1ek5zCi0tLSBqVXFITndPWDZ3b0RIU1JvMVMzV0lS\nYVBRcDlNTkFRWE40MEs3TGVnK0FNCuH/5XN7fH4bKv5L832H8GOA+Qt7sK0jxLok\n3fAYJrjB9ac00R6yGFtbqzOrBqBH/KU3gz5tHzJQuGq7E7kBukw=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFU3RnR4cFcx\nVDNab1QzdzljQkhFeDB6Nks5OGF3cGVYYUFBOTZpL1dJM1UgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpTMTNhNkZzRUxEa3l5QlgyNlRtTXND\nbUs3VFo5YWJLT0xjb2lPMDNDOTlRCi0tLSBqMnZCS00xbmNnSUJNUXErUnJSRUJD\ncEtsNnQxb0hkdDdyR2NPUE8rZFZjCr9g6OKhr6MlHHFe8c5evsoAMGJr8EU/KjCJ\n4NDQsV4eCN+7K+0OlxNlXOME4anbJo9zZ/7g7WTnclP3KDn6i5k=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHljaFpMU0Yr\nSzhJQ2xRRURRaXZnQzBsWjdWYmhVQ3R6R2VCQzBLWkk4U3MgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpIWHFDc1NsdVNHNTNkcDJ5a1JYQmpX\nWlAxZ1FvOVdodDFzd3l0K0FCVlBNCi0tLSA0dXBzVk0xVWNxcmlqYUJ0N3BaQW1I\nVSs2Q1FuSmtBS2ZvTGhtVUtrNFBvCsPsw4OxtDii9Y5A5uqSWq9q2ZM/u6tWECJU\nAgI0hkyXRuy0E18iNexzdr1VB7TJv5AUY6I4kz218BpCE5G+5SQ=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFBMS1pndlRI\nTTd0MTF0RUIvM0RQdE1qTnRiYzB6c2ppUGFVWFBqeXFuSGcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpTUVJpampHSE5zdkp6OThCQzRxTXNE\nb3doVHZncXhuZEZ6VTAxMVFGdnlNCi0tLSBITWcrblhXZk1MZWdydXYwTkNZSFI2\nWEV0T3k3RXFBRWQzRTVMWDlEVDdBCvbkzmFyeBU2fWv0LjNStO/5fM/tXQJtRmqR\n4L1sqfFwCVF4V63ZZUrzo68/sO3xs/X2cOQ6iFTJVtN5zfVPfz4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGRYRU03TElK\nQzRCYzBYNjNVVGRTK2w3V1hWMGdvZnFjZDU0enhPaEJ3SEUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpBZlNLdXFvc0J4S0ZOZWJkS3JLZ0FR\nUklmUDZ1VWFlWC9wS0M4Yys1ME40Ci0tLSBHdS92V3h2WSt0VVVRRUlSZlExU0hr\nT1pSZkJXMHlvNlNHem9PYzZ5TE0wCnTHwW9zWs9VEiGJB+m234RmOZYZGbs8OINl\nb/3WK0ROYeUP6tf9OlVwFT4+eSjcPgBiMdEmForHov+aqyXoOgU=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEF6VU0zU1or\namJzMzVoQ1NtZnpIVUNCU21YcG5sZHRvVmxWRlR6S0dxaWcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHWDJ5cnJ5TjdGaERPTjlnMGRzd0w2\nOHZ6YXZpcXJuMWJuYkpTMEd1cCt3Ci0tLSBEbnBEM2wweXJIYWNuSisybnpaTEt1\nU2hYSWh0MEpNQzF1Q2pvbDhYemRNCi+pb/hStBx/ALCpWf4DIP/YDT+zIUGFjvUB\nX61YO0Dg4ngzJbHf6GXYOIYJNunKZNcrUOd3xqwzKn+I1C/Cgys=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3TVdvZHFFVVRvQ083aTBR\nN0pTUmIycU5CajV3eU5vcHVjZlZjUlcyOEFrCnkxbkdRelcxSVBFNXNQQ2tZNE85\nM0U5azRvZTFhbVY5dDJXZGt4ZUJCRmcKLS0tIGdaYVhoY3lGWkZiWDBKOUNrR1JJ\nT2VRdzhCdWpjZXlIOGs0c3VrZ011eWcKr51mp0t0wRBzrv8ivnHdAs79yPeHhKR5\ns4ASKQGjYd0KJ2MFrB1ikKxeRNZx9IldOpfR+iIPA3Ic0zcTeueDpg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsNTRhdnBxRCtIelNhQjlk\nRGRCTFpRR0V1V0tpY3M4RUR0VDdEWElWWjFRCmtRMWFMYzJhNzlsSW5XcnFFcHRw\nYVFENEp1L1g1SytHV2l5dGhMcHVPRTAKLS0tIHhySzYzZEVYSG9WRmZldy9KUitk\nRS9mQ1ZJUzl0YUJXTXpnQ1R4ZnZlaWsKBIfwsJtp1521eytxtkR2aqlqUt3rf+bC\nN8pDT42ERSKA8FJopajCqjjvc2WFr8r/HNk9zVjiqnJBeoNy7SUfLA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSeTdvWUNYYzBybjd1N3FR\ncmtZZ2NxMHd6aERmVWI0S2t6aGpvdjB0cEZrCmF1MXJqSnhqaVhQRXc5RHFubk92\nbHlpVWNyRDFKRVEwbWdVWUxxN0c0MEkKLS0tIE90MW1DOGV4VU9UcWNSKysyWG16\nK01RZEc0Lys3SDFISEFXUUNTSzNVSUUK0kq7iPPFeFCxrdHSEnaNAhhKCJzctaMK\nzCaTCgjyQcv8RZT3OoT77sGCSySgGHZBMuHKpzHcVVZf7Q6A43Q02g==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCVE90eVduaW5jbGJqbU43\nTVZKM3F0cjd2anpORXh0TWhHcU12SkxncFVRCmU1SzZtZXB6bGQreDZXUUNhWWh4\nZ1BYV1l3K0IrZGRmZDgwK05lK1R0ZncKLS0tIGE1NGJXMUx3UEFiV3BQQ0hYT01r\naFZWUU02OHVlUXlZUnFQcmtPU2RQSUkK/dVQnGlwOep2c494/Azn/kRKdPrB17Kp\nq8lPUrpkGvp6bfUo/iEwVvHhWAhgoBLq/xgb8+sb59ccunlX6jJ1Fw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1pgxgvwck2vr3va6c4c3utj7w2rfg2st9qvm76nc92vhfmplqmu4qs928lm"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaODM5UnpDdjFUN0UyV2dp\nb29ITlNTeVNBN2ZjOXkzMWI5N0wxMGw0RWk0CjE3THF4QkhXNUt4SGEzVnd4UTNo\nTk1lYTZsbzZBMDNxUG9lLys0ZXR2VzgKLS0tIEsrSHBucFBvY01jQ20xMm9LNGRx\nR1MxVG9vaWRHdGdzNVV1SGh4NGFVVUkKpmzPgzAPQAuu4eQP1OLWi8MncxV/tUD+\nv/UnpuDIdO8wTn0v5h5YDWdrsbivJsa52BzZolaSoTPtsJduU15hYQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZdWNJOG40YVBsL3NqcWxt\nek1Pd1BlcTNqQ1ZtQmR1bFhQUVhMUUYvLzA4ClJvaFVobkFrMzNkNmZJYk9DMXg4\nSlpJZ0J4bGs4S2FON3IvbHlvRXZ1dmsKLS0tIEZmS0U4UFpMcDU4MG5IMDZBWUF6\nVzU2UDhUMFVBbFJJOTZqUFBaam55eHMKNWyqgFhAnEyz7spewHP3zysVlpTo/IsX\nTf5Gk/9Ka/aMy3g7LpGvD7dbRh6DKGHDYm5lZq0Mi3YA4U/N0a8yxw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQUJuKy9abnAxeU9vWXZ6\nMlZmVW5YS1Z5dUxVbUlLZzJTQlhDNnRwa0c0CmxpVzFnSE9hZEVDdTkyMzBqeWxI\nemVRZVp2S0h2MEREQklFZlJ1UjhaNWcKLS0tIDZYNVdQbG1tUS9JRXJxL01Gay9H\nOUdqZzVNUlFpTFZ5R2duNUE3Qi9ZMncKcZeTUw4OofqJGeW5ygzL3pfouwXWd103\nD5YO4EL62PsuxHOqE4pv1PxJIsGbTzCidMz7eUUh7NtLTq/X/MBUPg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWVXN6RlY3N2gyZU9KTTVO\nV05jNmxoWk4rdm1KS0U4eFVKQXJnKzlwSzBNCm5zL1NadkxUa3NnWFAzdUhjUFVr\nTFBRN0JydjA3bkw3cngvTmVsdXR1dUEKLS0tIGRQMmhFYUdHSzZnVElVcEZRZGhT\nbk1HWHAycjVwbG5uenN0VFZmM1ZsN0UK7ebfVopYjXkxvy28RB4/maJXENJcLqPE\nm9B4IaSzuZ9j1uSQ9x6xtTA024M3584DsR3lDlG/ychbklnErKrluA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGa2FpQVl2dTZaUFFSZU8y\nNmFpN21xZjMwVVhSVnVFTDNiaFdibDN4NWw4CnlwMi95YUJsRS9NUWlhRlVzVDNG\nMWVGL0sxTXZBSmZsbnZwUDF3Tkx1R2MKLS0tIG8rQkt3L2trT05ISGRuNWtJZW4v\nbHNlT0sxL3dsdkJzNjhqMmlEanZ4cDQKdmxrdT0fEhJvnXbBG+yv96tdPUmHi2pP\nsPxEjUNk2eWP4ipC23qb+Leoksbkxr2xN514man4DPAN0sK+G8LV9w==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpbFZqVHRESm1idW1ITWlX\nRDhFd0pacFphZlJzZTIyRGd0Z3htcnBFUVVrCklKYVl3RzE4R01memp6Znh0N1Ir\nRkovdUhqdnA5dkdaSi9JV1Z2bW54dEUKLS0tIDMxRlp2cnVNZVFaalZFei9QajBx\nS1UyM3ZVL2NSYnk4bVltejZ2WGdoNzgKKVbBu2l9rtsXfFE02YlJ7YLTYMjDEZPM\nOJT/qJHBHADy4Gnyx7+qvNgLPjnjVvBDc0wmTaZ1YRN1OOqEjKaTQQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:02Z",
"mac": "ENC[AES256_GCM,data:fnO7bvUDW1sqMR2NL7Hl1DqFUwXBFQaZ78mfjHxAGyoI+IZPZ1WLyDHH6tTGaayizpeQ99zEIIKV6EGwsufKkMaH+NShmkQ8/OMg8W81tfmGnKlTDov4WvCEQ8qxbKEj0OsmyvDfJlkuHRgxGmAVBB/StDAdJeDL+isN4S0emO4=,iv:5j2RkfBjyWZlPhfFnRwpmw7rWlqCM4n/RhkhE3IsGpA=,tag:EIBmDmwgUgb3djQ9eMWynA==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:04Z",
"mac": "ENC[AES256_GCM,data:ce7YTAH0UKuQ785CZ/sfjZAz5ZDDiiOuIhNwtKsW5xZxvJgXjLt6hB5NDl1y/ObCdNByMndDDp5BnaTwCXB/uYB+RckiKvR4/wleR3MH2USBYVAsnvS6ExOLh8uLaeOsAiObaf34iy/vDtzZbPGsUewp5P9TDT2h2by0gPotDII=,iv:oqeUWP1TwZ/VIO2qXcQtu0WpVgrX0KcNhHnkSTdYpZ8=,tag:yC1Ej0Wen0xj2nZPSSdpqw==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:G7GTW9Z54X44wm3W+he2khb5DoJdX8xREiOzJqOvBLVFqJ+9S95OLq7XGnuv0iwWw6fJcUSgux2B+RoBrXfVo8MStRNyNjdbOM1am8CYqOk4AZonakT+LVwXcSGbK/w+lKa4gZl5u99q5uE/lo287i0vLP5pspw=,iv:G2o3ITTaIAHa7b3xVgU0Wnt97RPEFUyuYo5VC9qXeu8=,tag:JmuZw5tjuAIz1P+FhyFk5A==,type:str]",
"data": "ENC[AES256_GCM,data:BQitD5L4kPth99FeqEqjsH0+6TH/7uhnUMtJMKHEdlGs+ksVclqmIkTib3vwXEp7tbmaEzq+FthUF1kvd0Co2UAodikfVQOx7JyPWzRoky8eSsCscUUU8TjIIprxVC1kC8ZVXZ1GyzZ/Pxpkcm/f6xGOzfKXSpk=,iv:99Tp8/e/a0et9nAxMTWjALPzW3l+Ni8o1zwHJxSD62w=,tag:ZeSwH85O3ideKB5TjD7GIg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdEpWNzlKaUtobXo2aDNL\nNHF1Qmg4RDA0aWVwR3ZmNFVXci82d1B0OFJZCmlDVThXejN3S1BPeVlOb2gzZkZz\nY3JYNlZFcjB6bkVLYjZjUnZNYWs2bWsKLS0tIDhnd3RURTZBZGgwQjBjQzV6NTdE\nSUhTcXZtTVpuSWlPSlpWemZzaCszdnMKNtGCkZlxzHzWtBjGpXgh9BrrPnt5urkj\noK97U/j+yO66BUWE3bTZCfpPm8xCOI4lrv9t3xkZlR6aIQwWsZm+AA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDckc4VVMrMkFuMlQ1c290\nWS94YXUvc25Xa0M4K2dRdGx4S0krcy9IckZrCmdHdVNDT1hUYk9CZ2ZEaTI5VnJn\nOEh5Zk05eUU3SFUrc09uNDBUNFlNVTQKLS0tIDFIcTJGU2p1VmRyckNMaUJvV3Nu\nUm44UWVqYzJONm9QdWVCT3RSS2NtOHMKqoobSnNrLkTZufCWNcvy2I+0xw+Wsx58\nfYuRQuO2HH9kRtUVmZbzVKQKgXvVzmeNkHqPd2L595GmiQUQAEWm3g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJWbCtXWXRT\nMm1uVW1mOHJtZlZOdHlhbFVPdGlta2orRVRMT0hXdGtRV00gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQozNDZhRVpLQjgxL0ZlV1I0K3Z0d2Zi\nVDRPNTQ1d3BpeXBMYmRBdzRHSGUwCi0tLSBHbFVwZzVieExKc3BCTzh5c2FsOHNW\nbFkyYUJWdXR1NHdzSm9HWVlIUEtvCs7KjmR29YLL0weoC0TOLPt5kqCx+72Nkgh2\n7ZOwFQDqiQWZB7V4gYfs52RCVHa7mFX1RGlg14mDw4/JlD+9VSg=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEZVdS8wMUtW\nWVVCZDBwdjFVdzdUYnZTSDIxUVI3N3g0dEdZdGsxL1ZDMHcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo2My9ZRWhRT1h1WFpwNVNYMFNUR3E1\nVEVUQVo0VkhDSkhmdmt5bzFRbDRjCi0tLSBkb3dDcDhIN1I2NWJ0U2s3c3cxa3hi\nZmdwQ2xYV2xlQ3QyRXpJZFVlTCtnCmFlfN1aQitOdiCSFAF/+30NIfZxICb9DeO+\nYJTnekWw9XywuJxTEIuo1DNJQEiwQe6cKTyFNWJQvXN8ReoBMPs=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJ5K1p0eUJk\nSWNDNzkrbFdIZTZZSnlGSEhOQzZUNi9wcFZyeC9NdW1OQ0kgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpLUXlYNGtsSUxXVE5hc09qMXBPdG5M\nam5CaGVOR2czMkk5eWlESXNFQ3NNCi0tLSBVS0dhZ1RmSWY1ME9KTVhpQmN1Q0My\nb0kvbEJFNUUxYlYvMjdkaUx4eEtZCs0OU+kppkoCv0+6d07LKstWQEwKOq1CRw4A\nBM+j8Ps+B8SUt1ga4LyvOhxMHoDT/nlHyUdf6Mh7mOMd1WKusas=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBYNG1BTDR1\nYXMyRFk2S0cvYTNHekpzVjhGMGhQWm54T1BUaURCRFFTUVkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo0SGZLNm9JYzJyRWg3Mi9OUkNEZGhL\nd3dNNWtIT1UxZjE0TEJsb1poWlRVCi0tLSB4Y0dMM0dHZVQ5V2FsemJBV2ZxaXZo\nTVdGYVhkenR3Ni9pNEFkbzJvMUdVCg3haqf0jozzhRccBFpUGTS6LKBJ8FUrAjBT\n+0s0YrDPI5uO080GqLYoZDGo7po7nE/07EV1Udtj8CnVyCv+t7g=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDhmMDBpUkE2\nUTNXYit1Sm9EanM4c0ttME9sam40aytqWk1XRFZqN1JkeWcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpFUTQxT0FHeFdNQW5BbG9OeG1DSXM2\neUp0bFVueEdOazB0anNZMzJ0ciswCi0tLSBhNzduOVhZODhYc0UwZ01iN2ZyNnRa\nYU5PQndoWnExcmFPRFFrdXhsMEtNCv3UikKaZ9E8cJuPPr8l1jGzP6uVuxqP2417\ntDEC5XyOo519d25QElUtipcnfsOLsr5nFfMjvYAf6zgZZyu0Vnc=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE0rUnFPNnJy\nQTRqQk5jeE84ZWVJYU03blJnYkFNY1ZmOEFyTzRxMXh4bFUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwphUm93U1hadXM3Q0NRTXAyMlB1WThO\nKzNUV3NsbFlNYmg1VlVnNUdlRVU0Ci0tLSBVNGh4VkY1dzd2eUhDR2J6Z0N4Y3Bh\nbkYxRGZGS0FLcWpIa2pjZFBPblZzCsAJDfdbPQ820POE8y6KQcfG5ivrCLq8Umlz\nNsFLcZPjLs7+Y2Fons3VWI10Pwfj45+jY6xL6YdbG7aGoHWzDQ0=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4cnQxRi9FbGxNZldsbitx\nL0VtM1B1QUhaZyttRHRJSURhWVY3TXJjR0F3ClBWNGRRSnRNeklSODh0NUtGUllM\nN2REYmFkSWxRNUFpbU5vSmk3MXRST0EKLS0tIDQ5TDlIY3NVdEZWYncwczMzMjFz\nV2lpVGc0YlE0Nk5KK3prNmF6cFdpeTgKeMOb/wmbrSBc7NzuKWnLhXF6c1FnKmfE\nBFRoOWPhcJdQWs5TUZxjZXMwKMk4lrXMUh1BYgs+PDfdYdSLiBOPLQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGa3RnR0R4dzJNNmtvZjc1\naEpZdkh5L29BMm9IaXBRallGTDRtTHFuNnhnCmlwbnE3VkNzMDB0RlJDbjhsVGlJ\naEpWUE9BTlpWNU03MDdocVJTcG5YdGsKLS0tIHJCb3NDUi9ocktVWlRpeEdDb1JO\nQnc0SXBYbjA4OTE3aUt3SUNsVEg0dVUKewN63/OpyzxTt+AgbiTmKJGR+SRGA27v\nnE7ZlpNEThbNmZyxcd1CFKZw8+vwh9MafnOojLow2Jh/yglM0IrEaQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXZjhHM3p5UnNkWW1uYnQz\naVBhR292MklHL3lzMFkxQklmYVYzR0dCekEwCkdQcFpiTG9xbUFvVlVQMEJhVnR6\nUHRET2NDZzE0cHB0a25zVTM2N0paeDQKLS0tIHdDbGt0QkozaEErdVJBVVdVNTVE\nTmhkU0NkUmcwaExrRWUzSHpramlRNjQKfiUHKpjcEeFK2kJjyH51DSaTh0hmWyR6\ne+kZZWSd1m7ywm7NzoOELwrdeo9PgtrHZ4VTJhWM6VWA6K5yGGBTCg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXSFdNeElUZnF6ZGVFSUlX\nV1JYMHNGT1FmUnJFenNTMGs4d3VjenF1VjNFCkk5SWhkdnN6Wnd4aHhtTzg2OTJB\nRjFkUzg4bm00TkoySW5qMm04MmJha3cKLS0tIHFlb3owVFlHTVZheU9MV24vNzNo\nczc0Nk9ySjNMNStLNS85c1BYa245WmcKsf0eoFBnfvv4uu3Kw8BioKxy+uIk+zZH\ny6latxG7fjSqV/Fj17cThh80X19gawO30rzMNq0LtYIYEBnlVP1lkQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1pgxgvwck2vr3va6c4c3utj7w2rfg2st9qvm76nc92vhfmplqmu4qs928lm"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWURXMEE2T1QwN2NBZFVn\nVjE4R3VjdlNKa01hTU9qUHZEYmVrWGlDcHh3CjZvTzdEbk1rb002Ty81TFVHQWRE\nY3dTbmdDeHN6c2xyazIvQmRDcEIvQ1EKLS0tIDU1aW9jRlZiVHVzSU1NU1BTczda\nYms5aXRYTlYvUnhSYjJ3S2t3S3F2b0EKXqyNmTVwC9YxNpEwV3dPRTbB94eNOzea\nuOW5f9kPjem8Nc99BUn1SOP1q17clW2E2tERONprKVY7jYc1i2hzVw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5dUltUjQxTGpqZndRUFhp\nZkNHOHl3K2tEQnRDalNtQ25SM1VpZlhybWtzCkZwYXM0OS80RUp1aHZLb0pHN1hS\nWlVpSHJBdFpmUGZyRExkSkEzSVRaUkEKLS0tIHc4MXgxZGlzNjk4d1FWdy9JcUlC\nSEhlL0VLUWc0ZjFlOTRZU0xEbzdIaVEKd2z3r5o/WCYyg55GFq5KxDiFEnjfOeQa\nlrNJHvOiSPp9nrD5z9KKQanzPytvy+j84yy+WDlTPE/Zm2R/BIQCeA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFdzNiNzJoZXNKQ3FudFJs\nSTdEQTJIOEQ2bWZ0WFdaZFpFNDZyQ1krRXlRCjdNZFVmVnFJTklLZ3hWdnZpcTZD\nVUdIZFFkT3J5dXBkeDM0UUNXZ2NhTG8KLS0tIEtsQSt6aWhhdC90WGxVWVJTWGhy\nNVhBeDJoS1Y4UFJOdzBXTFpnSlNuUjAKGpSD2EmtAEwmYGM1PmSHpI+rLUd06+ay\nI/c1i93qMY5Jw1Ho/VqBODqNjjLJP8loUamBDmV9HYh0vGVJddg6cw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1ZS9mbzhnK2xLT2ZTR3JY\nMGc3MVNkNXRYRDM0U3gveFNKY3JSUFd2elJjCnF2dWpUd0tMK3RoeEFqMnFuUjAz\nWDZ0WWE4RkpvWTNCQk5ya0cvQUNrQzQKLS0tIHptQTVZbS9CaVRZdi9qbG9qdjB4\nWkJkRmhrTDNHM2N3eGJzQXdYK1FHMTAKdczvJ5ov7+ub6l9KgmIfTFpD86K6dh0w\nXQ7UD+YxMEQMcY2i9OSCxPeObaTdnyRw+krp2LYIZcA2a314qN566A==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5YjJQM0lFNThnNzdOOWZB\nRThWOFdnRDhlMUtucWl6aHF6cHkrTVBrQ2tBCjBoZ0xoblhVVTFTQm9USW45Q2Rk\nZW1hM2VMZE1KdFR4OGJSVHgvK1luWjAKLS0tIGhlcVNUdGRtVVErUGljMUlIVEw0\nNTNwWnZsaVpTVElnR0NIdkJzREJxZzgKjkjpOlE3u1eDiApD3iexc5f2ovANweY1\nc+vLlwX/8KWkXKOeGJq6sTSt88w3t4A3oQnnEl1kntkMuNQZPZlOKQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBabll2b0w2cXhmSjlRTU9J\nRlB2WkhHQUorR0dwVGFKQ0VEV3NnYncwL3owCk1wVlBlWDF1QTVudUl5bnQ1QWxs\nSGh5YWFmZGhSc25LWWhHZkFVQjJnT1UKLS0tIERnV2h1aEFka0RzcDZWR2gyTFRQ\nRmdhbVVRMXBFK3plMkFtUU4xKzhoS1EKhFOecSQ4dfGCOddYq6wKWMXSkxVtdhDu\n/PN0CwQgYrzSdcNXUddDNeOH2BxS5UghGFAV7jvRiMbf2Qv4Tkf6bQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:02Z",
"mac": "ENC[AES256_GCM,data:SfZNebqUvKzhusInUAcndJiVOAtT7OfY9935pHPmq87v3XZzHLrmOkfquWhYoyDEjgbcKpwBLmohrEKIt7IhR+RdXY0QvpYnXlRHSAN6k1MyE2Ted421Ph75z1degQ47CNW/HUjwFBYFfRpVSRjbhMXnaYcUgxdCrfDA/pPOG2A=,iv:EcmnB51UPDjfjWf17rgDB4M7LnVv+W06sbtt017QVPw=,tag:SWs/0/RH30AFq5q5Xj0ZqA==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:04Z",
"mac": "ENC[AES256_GCM,data:NuMTdsvMAOYeCUDlCmNpYr7/WoZlx+CjioNaat/9dtKIQgqtSkLGo2dbeOb86453qdsjktkbs7c7zoELcn+W2XzjOvU9a3lyzc0QflIDEGm0WEpwSzMwe7R11QtHAnD1nrQgerepRJ7s0Oa+yqwNbKryuJW0Z0TNpH/gRrBDEWE=,iv:rmEmVFk6j6nSh6DMwgkvKeCkq/+msBfd4PM4LK7Tcos=,tag:MHoc9HsdUajdJKFBTluNLA==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAKIJVIWR6PqufT8tOlNs5xIu6NkvMwalSZyDaeoVhpRI=
MCowBQYDK2VwAyEA2dpoe2zNxMG3h7F9Aslk71MbGrArFa3Q0b0HdwxRyqY=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWCYVk5KdxTWWPj7Tv1PM721nXP4U7BkjKNjp1u4TMMTA1
12D3KooWQUmoP5rYb9GViduEuFXdrzL4E3aQbD8pfLqkaXzTHcqT
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:F8O/iTkAl6fKk8NdpnxGnjGMgU2OJtOQiQmXLpEDvBDA/0mp3T77cnFEeBnlEK0S9D9e03HdfkeicrQj+XLWY6gP8Im5mwLeMYW/EW+L+k5W2LY97ExE0NKDGOU+try5v4GYYw4XDtPAAuIi0tPGPnRTgSbcRLsTDBxwqpemcfWzaF0pxaUzSwO177pJfrlxWPXx77i7kCN+NVnchLpwPchoD76F3SGe+atgXMex2n6rrwC7utBvTOfOt95GqUbLbLFVzyrvJYhBh69WGQxlOhhN9TWqLC2m+TxAT2NzOJs1Czb1rgINd1Phrb7h,iv:yRyx4Wjs5/H+HgQZbHfysM6vhTnG2M7dQKS6hOBCPn4=,tag:Z1R3SviHFTkICnX6axLV5Q==,type:str]",
"data": "ENC[AES256_GCM,data:x/+GIVe+3iCXtW8QvapqIbAsj/vTCaMr0eu9qf3Yw74q2pSyT7ZcuweysiMBLbIoEHoTUBHQGy8+6zxKK1g//RiUnK1A3uyMb3b/CX1En8PtQEf41ZwS8EQ7jKSpTaqzWCqOwizen7Nlm5ZEyGRPyVHVlsqNy5Q/pkV6zKyq8lAVhMM6hfonmFKlZZ9oSa962iC5d8EnmuDPdww86KX4QwgvzxKUpxvx/avKv7FUTbxoEyYqRl4fzVXLYXOOB5tST3M2talBQGJHcKmYRDCvrqg2CXKlKCgh1WAJB/V5jg9UJEZzOkDBhLCksoQa,iv:8QY6LwZSmwuAB5wS5hhmZBLiqckNdV3sT197u9Y1xL0=,tag:BCJoAxK8pVTXmhvV7K9BvQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRWFCd0liUDFzakJCK2pH\nNVVsNENaUUUxcndsbCsweStzUExNbGxQNXo4Cm1TdFM5clhHTFprOVQ3NkNzT3Na\nU2picjJWb2UzcldzODRMWlhzNHRZbVUKLS0tIDF1d0JPWU1kdmhpUmlHMmZIdzM2\nQ0lBWkpqd3RSdlF0ZHFFQ0ZRanFHVEkKEhHZ8Ldk+Vfh5O743OlmWwgUdhsYGRma\ntEefP7H2g1KihL7fMTreNDO0FOd0w0kfOg5x+GBMnTygUH9JNmZnXw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2UFl4TXMxUEEvVHduK0Y4\nZE1XMHpNbkxTK0VQbXJSMnZ4OEZCajJDS244CmRLQzdYTjRjNWl4bGtLb3hmMWdY\nZk14ejdRWFlkNTV0L1NLTnRydm44NFEKLS0tIGdhSkdYSngyQ2lnS0FZd2QwcjIz\nQ29ONHNCSkliVU9iZVdZN1VZZS9CWWsKCvMWrvpOwT4m215baQn5WjA+P67Ss8eW\n/nbbL4gaTVAYoOWV2xQwCUo6Ba47adNm5lkYgNPPfEUh9W8vGVMz2A==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExTWlB3dUFr\nSmxJRjJwM3F4UER4bTZ0TUFaRnNIdGRKR2JleEFKVUZ4QkEgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpoQjNLRHJvclJvS1NtQ2VXb3QvSG0z\nZEdkNW9vNGhydlZlUnJhS2JqTm5NCi0tLSBKd0J4RFdVZ0E1dmV0bWR2NlpQemVL\naXUvTW9pd2RnVjBvY1docEFvbEwwCqJWXI91FEwYJMBAn4D//hkEWm0qJ0Yk0CQJ\nDpbJrKmJ50vlIHHYKwYjQr4nHUzsGDNI7NnBUc0w0ojp2NpJFtc=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDhkeXRVSldF\nSERIUEpFSDZNbU12RzVGaWRTSEpVYVIyL2hvUENWQ0N6RHMgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpXZ2Y4bDBIYklkTkgyWGsrcnFFLzcv\neWhFK3FTYk5lTXE0WDVzTzc1eUtrCi0tLSBKdFNFQlR0L0NlSlpTUm1MVUMzUFdH\nRkdLNmhvb3I2TWpEcmx2cXBBSkN3Cn0IHd6OBmoJjZjAOOcMIZj/gifB7Y/irRaq\nq14lUnRHMFSqqA5MMHdKP2Fd/prDB+9/KarJJ3IkzCmiOTn2Ob0=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGYydXk4Zmdy\ncy9XTTg0c1pkV21RUms2MGgwTkRNNnlTcTdjVGZTcFBNbXMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo0VGE1QjBIOTRZbjA0RUVOVmZPRlY1\nblV1VGw3RXVOZmRURi80enYxUXg0Ci0tLSBXMjk4NFcxU1lIaXhYUlZLdjdoajlS\nYVpSb3VKTUtIY1FZOW0rR2wydTg0CqjUdMQa5oewMp7bcw5r3qpPqGi+5nY8+4pR\nzcV1RuX7gwmuvkLDkrVuQd8UksfXTG25O6dPLSDKlpWs+hCkodo=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGhQczhBdnlJ\nWDZrTFBTWGQrRXU2T2F4dE1yb0hmOWFQdXRFTndyRm55UkEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpzTGMyUnZUNHR5b3AzSU1uQkkxd2lU\nZzI2ZzdORStNNndTU0hzaVFNOS9vCi0tLSBEL3ZBR2tWWTVsclZReG5WVmxtUXN6\nOThremdObmZsRmd3a0duRXFqN2FvChieliuMRN5BVN8LtdSbxV+F6fz97ROB1wIh\n6WtZEaNYs1hj4gX16RIyPKWucsMpVH9mLVixK6qfUpR0RkCCZqw=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHd3NTQ5dC8x\ncHJMRjd6Z1EwMTdBeUxDaWNPWE5ZQ2V2RVBaemRiSTlrbTQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo5ZE9mY2h6M1JVTnFqMCtBaW5RTGpH\nOFlEVER3NVpKMEpwdHdJV09mbnhjCi0tLSBtb3gzeVhLa3dMclF4Ym5NdW1qck9a\nUThwVXFVbzFRUFZRQ1d2U2pCbTNvCub2N2c5C5MfnmcuJIz9UFHBrbxVxEnS1qMN\nFolgAs68prixXliXmEbn9oLGSrYhdghLO0oHxcbEv52UxfQOdxU=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEs4UTVmckx4\nTFBiMDFQN1E2cWxjVHg2MkxIT1M4elhhQWdsdmEycTNMek0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpXTDdNby8xMmk4VXZDKyt1aEMveXNN\nTTRPc1VUSFMzTEJQRHlVMmI1V2ZvCi0tLSBLT29ZVjhxanRZMlAwSlUyQXRNZWc0\nc21WeWh6TU9sa0pkTUZ1S2QvMWVBCsSc6P/bK7/htJNnSSA0xR3CM09ovLZJziYz\nmwfTfdEvEECyhiekNiai6sQ5ivzhcYFSpSdabCoTy7j6A5g1lv4=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0R2RjT29LWlVMZllxZUlR\nQ0JERHhkcnkrelFBL2JSQk9RNDNDZEc0U2c4CmpEYVROaEVSQ082TVkzTktZZzF0\nNHNza1dyZU1FTjZ4VkZXYWYxN3I1TzgKLS0tIDVLa0xDTzdpRkJheU5HK2krWGN5\nM2xiQmdkbjNlNEl5ZVhVekF2Sk5wS3MKhN66d0jyJiC/TMUvO4Kozzw71lBCSMP8\nQW4CO/hXJaqquQB58YfjNxZukOYcNOOqSXpZveNrIrxeU/YwU7w/eg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCaEVKcTJBTjI4TVM5TXM5\nblViSVV4Z29NaFpSMHE2MmVWTloxSDQrOXhjCmtaVnE3cVdEcUw1SGlXeE9FVkwy\ndkhvU0lwaSsxNlQ4SFM3QjFmZGcwVmsKLS0tIHExNVVDT1JsaUlwbnIvL3FJZGRN\nalRSRHpNZ0JhSm9CWDZRWTRGd0FmQTgKdIVWOCAVRb3asD8jiKJ70/jCIw+wkx/3\n9/Aa08YDiBT/DSiceR9ZxiV+Ih3d7wygpgvdHsXjqZSMhfDcR3AwIg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIVzVuM3Z0UzUwa2FIc0M0\nWFBncDltYUhlN1NzYUNud3VLK2svcDd3SnpBCkdONVFrR0lWd2cweW9IVWJOdDh4\ncitkTHJnRnlzSUd3T0FyQUh0Mk90Zm8KLS0tIGVTL0pGSUwxUEZQVkJUV0VCbEhM\nZkVMZEluUWYzbG9CSk16RmY4N1lNRmMKH7EURg6kPJS4NSfJ/KAWkoyhm2fP+ECB\n9wWJAiTWRLbh1AagDpKdgJ8BfLF+QjFkN8ag5nEbcMdi8LEd880Vcw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByWjZkelVPbk1DOThyOUtn\nSXJqQVhMYy9DaE5IaEpWNWk1Umw0aWVZLzBvClJ3dWRqZkZRblhSVHpEUVdwUjRB\neVI0UFM0RDEvWG1RNjZGenk3ZGNZcWsKLS0tIGhzRGpNRDBWUHlTakljWXppWUxs\nSmNpek9WWVpwVTFVcGc4V3dXYkdKNGMK8fbTSoF+M3L2RKu82CN378Q1w+X/m5m0\nAVSQd86rwdN6SY1WYBHwF/l2uyMRx2gpJgoAI/UM4MlMb1ay5kuNmA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyUWNwU1paNk5CMldYUVp0\nN1JrSExhNUo1Yis1cE8xVVBWdnZKM3FJNTFjCnRRclYvTDFJRTlXV2V6cTlnN050\nRXBQZG5KUGNjenZGaGd4ZUkzb1ZXSWsKLS0tIDRiblRWY0VuZzNJZm9CODNxUmZH\nKzNlNGI4bnhNeVlvUU5OUHl6TnlCWmcK1ywo4pKNTwQrM51UcarCZGiG7BW7wJnn\n9PAGhq4uoqO8ll6pRNh5GMxmKYXTAEREukmPstk0x/qeWQZffcMpEQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySklCWVhYU2RkOS84aUZN\nOFMyajMyTlRac1BEM3dKblhldDMycDJURUhZCnJLeE5XWERLajZxUVA5ZS9NOVEw\nNlNZMVVIMWFNU2MxVnhZTkJZb2MveFEKLS0tIDFEQmMzUUxvYzFyNlVNOTFscXI5\nVlRNYlB2aWdzWEM5RUVOTENWYm1CL28KRrYdTvGXBAHuSi/2415OfSJnD/y3LRva\nHkxs1+TaUMA9LQQmrImLohMDBsyDalQbjKR92HO+oAMfMJiKCeQsqQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1N2RNdHI4OVdpaE5VbTBh\nd2xtYzNrc013cVRoMnV6K2RRSFdYTXRKYmxzCmVVK3E5QkM4WVdVMERFOFF3ekw0\nV0VBNjVKRW9YdDVtd1Z1bDlhVmd2c3MKLS0tIHp4bUxHM0tGK1dFTXl1RTBEUk94\nUFVFWHVFeTVObUxrdTRwNU9nVjZ0WFUKnUF2q9swBVe1PbIXW9hiWKKmctrZ+Z5R\n6Iw8HL9q+9dCZq44Yn0cpISq0OXv7K//x6nLMzOaRJNit2mAZlnfwQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTM1h3czNvemEydEVkeER3\nUDdCSHpEcHZGcEVJZ3VMZzJQVGxBQms1a0JZCmg0L0Z3b09sRGt3UXVnVDE4MjZ6\naWd3cVBOM28zN1htWE42TkFxRmhWRVEKLS0tIFV5WHpDd0Ria0JSVnJHNFN5NS9O\nRTlCL1VHcnlpRERwTGtSZzhvdStQWEUKaQZhruxxZwx/kJv+TZVfp4CwM2rtKNTz\nah/zaOx9HU9/X2mWpwDj+qIcuDbkq4qTQIxhOWD33CqPdECX6t/IuA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBETFVua0xDS25ObkRFaG9t\nVFd2QnJGOENWcVNpczRUTVp1VVpGTWdwdmdRCllhcEEzakhOaGRPYVpLNzE2MjRK\nUmlsQVQxZyt3WWx4SzFFazdDTlhrajAKLS0tIFIrVEw2Y1czbWo1Y040OFdHRS8y\nTEl6YzRaN3FBdk5CWDhJeGVTeWczTDQKzA0VdGXtwO7ityQjmXRAA0s076eJ25sA\n4ekELZOXINRRypa1eKX46r2w220Gjr9W2KwgPwIPybeEdch0auj70g==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHRkFlQVRSVThGeWJtN0lD\nRmlIUHMyQVhpS3o5MHViZ3ZQY2xMSWdpOW1rCitBazlKbkN5UldmVTJEYTRCYjl5\nZi82NUFNTTJ0YzhXZC9LRXJhVDhHTmcKLS0tIEM4a096ZU04VkN4V09KU2MweTdF\neFUxOEduWldsQjQ4cUlHZnhiSllLZFEKvOlTHsjVfpSbElod8fa81+c/f204OrWs\nBWRjOEc7r+qKlXAmR1X8MYMRS6LReo3bmW7fNi8mN6GGZjoTJ9Wrqg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1w6fg9v57jesdv0ectnhynmy5vqdpf6hgyhnn5rejyj2xgghrud4q0jfcta"
}
],
"lastmodified": "2026-07-22T03:11:03Z",
"mac": "ENC[AES256_GCM,data:jt7M43q2+DkU7Lp/Md01N4MDxSMujlLP2cEKOCPwM3aJnKwJ2btJAr8ZetSK6OU58L5qwXH48XpMITLR7q/hDj9VPYBC9D/eOg4/2upILAoOSCUCS6oIxruelEsL071WYKIJ2XeGhmDKyt7ZWct/efXcmiEptKUUEd9Ukzs9kIg=,iv:PoRVWHmIvs/wjnpEs1RXtcxYrlZqv5LLenWZ2M4ecc0=,tag:ZQWzLhT68VNoW5LjximY6g==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:05Z",
"mac": "ENC[AES256_GCM,data:fiD8FenRfAX9bcba/h5ZTEO5cMnV+52L3PPpqWJshgU0C3Mia09d32zePSp4ym2dlgH8qgYI/hgOyWqXhLquqJgHrkEKyOX1xfdCPZbQoISKkSHbl0tzX9gHbU6VM6Qo+MOb99jQDoU0tdJSBd/jqPp7+cXrqSv/jg/BJe2lwhQ=,iv:0rX2ZlXQdYNl4/Xw34NuDJY3ofnBzS3DY51kNU2n+Bk=,tag:xeHh5+XwmWPvrf0XKdWQNA==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:U8RbGdfPZ3bypY1X8z+U0um9J9GBYgnx93p84+YthcOBxiVOhkQMG3io1a5awUiZKw2pP9ZHM1LsIpQ89nIfu5AXrA/ObeJNyQMBfiU7Drt7FtmvfOr/QpeCJSw36aKyZQ35gqiqVvxKKByWwSMrUo3/bFEEP14=,iv:lf3Xfjylp819SVmNdW2bDVxVh74rsYS0zdRqoNCuU2g=,tag:yVY4J52OQP8KwPTzkOIwag==,type:str]",
"data": "ENC[AES256_GCM,data:e9yGw/nKJelR7qeM0yMexQ9VGSMG2Ke4XvYS5A2ME8tfu5+SQ1Q0lTfr0BMk/zb3OSztp+u5gkG83Xb71VwRxhrlptm9i72j4Qss+H6/I8a5aqaMVsGeNNDFhO7FzYK/gwDAvptDmOpH5zr+cwiAFalAh+2qbxs=,iv:La9NK9bieW4Fh8okzODGXqSH8ceQKWU4JKaDU9WjXow=,tag:PTYfLFSIgG8Y7KOQnIHxtA==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6T1JKRVA4NzFha3dWWTNy\neElrZDhzQnJJR2M1YlczY0xHdGtpdnBLcDNjCklVZGxKWVBDSlViTGkxNUtubVBv\naU9VRkJ2RmVucTN1aCtxaXp1bGNEbHMKLS0tIDV1UmdEVU1IZXdQblFLT0xDdVBI\nVTQ4NzhQTVU1UEJxRkNxWW1zUHJwdHcK9SyGHBkMK7Zv+IT3XlqFChpxoJrD3EJ6\nzUAMElciI8Gq9PYfWCOcZLca6o1OgaUOnfsZIu0te2pJ5/i9AMRBgA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBid3dKamZGY2lKWmVjRmUy\nSXhZb2RMNmlNRE1aQk1kREt4M1NmTGV6OWdvCjhwdlpobUN1eDllR0tULytvWEtR\nV2lXT0VTd3QrSnBIbUpHZ3pUUWRQY1EKLS0tIGJIWlgrMWRqYkVJUWh4MUpHMk5i\nQ2JtczlKaExkN254c0Q2bzRDNVpwQkEK3ciVwFrnevF3me69T5KAxcSVIZ4hH/MO\no5hdj4LHiMa/0AwA7asK/+Io5JbM4ivFXrB4ovlyrumj6s0I6NE/8A==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEFqVWxUeVpY\nVXBNVlVhWmJhMUlCQnY0eW1KVEExYWNyL0FTMjlhUHgyenMgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpKUm45YU8rR1ArbEdHRk1vb3RqS3Nl\nZHZVWkJMSWJyN0VYTzROREJXd21jCi0tLSBWQU1tc3ZkM1p4RUdDT3ZydU4zS3FD\nR0pjQVJtR050bHRCdVBTcnNFM0NRCr9g8zSIHdWUd01wVf5ykhZfHXCP5UKqOeIw\nfnGA8iST0vuHY6FzanwkDWruYZnnOZ5+Oks14iCDIy7RbJLk5So=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEJCQ3h5eUpI\nV3FEd0dKVlVUSVB2UzdjNjUvQlQ0UkhMM1dwTEp0aStVVEkgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorRGRVT1ZJUGN6V3oyek9mS28vN3ZW\naENSOW9DaVVaaEVFc2xGNlJzMEcwCi0tLSAvWjhWWFBtV3hEcXlkb254ZGFPbmY3\nV3BmekpnK1hvampaV2NxbmtVaEJBClk7e7+NV4XsBzJ0T1Fpwnp0AQHsLprR6ghV\nbdYlhCupO9D65sj/8h7wPrSAo/A82P2uD5G7tgyiXLLbdf7pMis=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGd5RHVZTUx2\nQVZvanZuOGVOVm9qT0dlK1BkR2lpQzRqTVZPOElmU0Z2VEUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpqZ0lZMkxxUlMzKyt2L3R0VG4xU0k1\neUhvM2JmaTlkeG43d0czbEt4NTNRCi0tLSBacU9sSEM4WmhaMHpELzhDa3U4RHhj\nMHVHUVNDR0VES08zbVpibkFKWDBBCllg0JWFqAVYbIRMVARvuAdQyV0/NvNQUAlP\nfl+uDhCiE2UW46AiCjuBntl5BAxC8PoQbQhra9+HOlbjYbP6OwU=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBuVXBqQVRl\nNVhKckwwVko2b3ZHSXc5aDBaRjZ6TVJiclBBNy8xNXVyMVUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo2dFhmQXhPV1d5ckRoQU5MTDZMU1ZJ\nV2I4RldVRnRSYVYvS2hXOVJwUUVVCi0tLSBqYmZJYVBFUmZWV284WVMxUFZCbTJX\nV1FWMERvc3JRNGlJYTVBbkt2ZlhrCuafBdkEiS3TjoPtjdlgWDKCAOotHzeQ96pU\nqiwVysiSJxakGOnRPMbbzkYHZRhlvKj3DNA0SUrkr76lMWDcN/M=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHdOWXBxTTVP\nNzVySmsvcE16djRrUWxwc0h0Z2NzQTRuV2M4eEJPaEZUbmsgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHUnBTbjZQZ3ZZc29aZDNreXdtZTRX\nbkhXYlpPakc0UEdsSjlpdE12MERjCi0tLSB4UHhsMlZCZlIzbGVha3FUM0lmZ3k5\nV1dXUzVTQkZUbWpmdW5ydDM5V0FFCs6tt6RoNc6+p0ph8BPPjy/zW2WMl5q2UwI+\nM4yI6bnnkMGiRkFRLF6GTuRmZN878MEI5pXRErZsD27FGd11OmE=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG1jT20wOTZO\nbFBwQ2dvVHBmYmZuWFZveEpKWnVKRy85a2syM3Y1a25oaVkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpPZEc2bVRPZzJkaVdvUW01OFFnKy9p\nZTNEN0NMVDlzTUZrZEl4N01mb1M0Ci0tLSA5bXdUc3BCTUppc3FSUlkyVVdnSFZ4\nVkJyU2ZqNmxYR2JuS21NYWZxSFFBCr1ztm13zGLjU8ada2cG4WsFXcm38FFWPwEK\nUbfxJ1VVgdIKnZNv9sfVmYUnp/42OJ0KOya6QHBeBwFvwtgj84E=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWTN0NE5Dam5xeEE4ek05\ncndhZ3R3UmU5OVJUSVh4RTN3TmlkU01wTlFVCkFnbGlYamVqamlPSlN3WXlVZ0FN\nSEh2aGNmU3QraVF5dmhSVVRsbjA4OWsKLS0tIDBGYjExS1JKRkQraHRsVkVheS9v\naXNDM3RtOVkzVWpSSllBUjVuakV1aFEKicn8VmCGK1jsvWzMvJiMZtiQP5RlQsP8\nGz2O0Vg3GE+ccoCuImeHFw9saECjOBFGTo4LWe4RvOLc0VIUN/81Fg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBeVNKRExXb2JVKzBMRTZC\nQk9yWTdvWGh1K3dvcEZLMGlXQ01hKzdBOGtBCkRkd1pmeitQZmhsSnVwWXBiZ0JN\nVWE4bENtblc2SWswVmErcWtLVU53bFEKLS0tIEhiMnVLS0xvcWhEcHBCLzVPWlNL\nM2VKczB2bVp4SkVESnVxVEVOSGd2c2MKIXp2IwUiQM+bNA9HoUI5Z0NcVM6yUAQY\nBp2qfqcRlA0UXJee3OOTHrDqH/ZvTrD7oXjzN2CVrVw8Q5yKDe1SxQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOHBaUEtpN005Y3hTcCt0\nbnhJQWlHTmRjWmVVYTZNWmFIWEd4d3ZTRXhnCjd0YVpqM2R3MWZBMURXRkVTQzR4\nazJaZjlQS2ltMHNrQjZITEl0WlozS3MKLS0tIDhUeXJEeVNzMWxEUVh1MEhiaEV1\nMmt3RUdLQi9qc0tOOXMxVGFjc2VKbEUKH5PWZ2PtBslj/Kw8yzxRzn5mXwc3gmcy\nRmcAZD/2MGVn51TqDAd9yyfyRS9uoM4ElXCEhhX9L3FEfjYKwnMFAw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6cmczRWsrdzBFRFh1YnV3\nVWFib0o5VGVqU3YwYWNNT1k5UUVCL0xialMwCk5QSUw1bnBUb1MwNGgxOTdFSGs4\ncWJCczZOVkV6ZlBXeEh4OHlrSkxiT0UKLS0tIGwvbzJVRnJhaEVZdkxFd244RVg3\nMkFMYzhHQUIvYTNDZ3ZycnJhSnNkMmMKqUtG0HRURwwFZY3630/m5o6n9rG/6fHH\nIJ2ABwUnQlcaP4Qo1MZLZRZQpEWKB0jqnE2FnIgeYZqGI4sGSYRHUQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBETzc3WWJ2QVZ2ZkVkbU5H\nU3JxbVEvM0tGRkFlb3NNS2Y4dzhaUTljWnlZCnR6VG0vMG1OaUFEeU1oYUZUcm1U\nWlBnTmRKeDN4QTVNejFMNlUzN0xXZGsKLS0tIHQ0UG5IcU1DWjlLMFVRT0M4cVl1\nWVBZRDhGU1pCL29peGdjdFFrYXFRb0UKGMXtZyR9qPr8OEFtJCFuWIpmag+TwWVV\nIhCFEN4BhBRGBIBr1jOav84LgQB4HjS2JLBYN1LKkhC5YUxMdEBT6w==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBva3MzMjEycTZMem1xR2ll\nbjEzelN0Y2RsSCtSNkJ1YWRNWDAwL0hGVkVFCkF2YjZXamtCRFlZU3BBaExscWg0\nbFRlQ3BMS0VuWEpCMG1Ub3NSUUZIL0kKLS0tIEJSWW9iRjlXRmxzVjNwSVNMQ3hh\nTFoyY2RaQXNkbXZTcmM2TmpmSytJNncKbdgs3c4FkLJ7PyxXzxUCCNX2IR1HLny5\niYsszFLw4p6KCeOxj8IyVYwfwjhsyD6naV314SHS5pha9/pgxHV4hA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNTUU0TjQxaFdGOVFxNzNx\nZVRZUWtXQmhPZVNKZ2UwS2lsZWlobFpycjNBCmgzcXZRTzlEbUVxZXp3c3lNT2l3\nWW9BVDc1NEhlTFpCeWM1cUpQczBYWm8KLS0tIEVDR09GZ3EvNFpCN1kvRWFFdDhh\nOFhYSXVVekRBdnZnR28vbGlLSW9XYlkKzxrzsT0T7Y78rwsTttkXqcsqZTckmTEB\njIuiuFk3UY/LAuZKCVhS2P4CZ7JnW+xEc4Q1eV3q6UONa30wpyikcQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEUzJnQTZtczl6K3NPMjcz\nOS8rV1dYUEpIaEw0TGZ3aHdGUFh1ZVRsMWkwCjdMOE1iUlpQbGlzNm03cVpQcWZW\nM1JHQVNzcE80RTRBcFA1RlZNblB2ZW8KLS0tIGk5azhSck0zVXFmVmdBRUw5WHBU\nbjJldTZnQWFURzhMeG9vdUZHbVVpN2MKxMmSb6h+rt/jIOGmg+KPRDeLunMdVbVU\ntcnl4aaDRTwBDfpKGBJA+IyNB8q8/Cp3cPOT4T8rRD5asK94zUogiA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKUWw1SitjVG9ObmJzT1BO\nbFZiaEZDMUcrd1lsNzRKN01SMUtOalBNd2dFCkxHdE1RTENjb0kvR212ZHpyclRX\nbGlaclpzQUxnSzdtbzJkUWFUVnVxanMKLS0tIHdueU43OE5obEUxbUxXbjNiNCty\nQno2eThWT1FOc3B6VWY1L2NobzQ2bmsKz4bDNH/sou3fCCu4rkLx70Gn0YqndreQ\nx2N+LR1BcUrOpjD5cXAr7OsdgTFYO7wJj6YYGab+LC/KDCtN/DCUMQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFWnk1aUxVZzhtcEdIQXNi\nV1pPc2ZLVmt5RjBOVXpaaWxlbDMxbnY3QW00ClBqWXNMRHoveXhhVHZwOHBuYnNE\nYWdtYVBCQkFNQWpMbDN2MVBpL3d6cW8KLS0tIGE2MUNVanFKV2RtSE1BT0R4YVlx\nQ2txaW90VDdmN2tVeUhmdW1OTEwvc0kKI5oNErTcR5vdVMpOBMK4KENBGYEyw/FR\nG16in9DavSI1UNrY2eM1GPjQXbH6xarkJOM9YTgvTEOZB1yzR/nozg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1w6fg9v57jesdv0ectnhynmy5vqdpf6hgyhnn5rejyj2xgghrud4q0jfcta"
}
],
"lastmodified": "2026-07-22T03:11:03Z",
"mac": "ENC[AES256_GCM,data:zkDpNDhhCq98ErY6DWx2ZQxb7K8fnns83nAJ1dMvpNhAjeQrED1HzSCOn7cT4zoq0N+a17sHIe3RnsUUUJF/Hrjglb8YdXvPUA3Wwx7wJH7yZ/V9uqkq0NMq6DPS7OaRuklFMVMVsvz1MhYppmJRoWoaspMqPjITyU0cL+4Au0E=,iv:5i+IpLvMvSa52UTYmtua9NoBMGdKkytp8DrWw2GLBfc=,tag:hRmywwCRMd0f9B631AHlkw==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:05Z",
"mac": "ENC[AES256_GCM,data:JLkxBUOjkW1Vih53KBHKGB1VdnLoZx0zWaLI6eDXCZnNfPNvamfvW4WanZ8tN79EJwul4GoKR+uxdYUEFO3uM1TJEnBIsAggB964YYkOnz7ySK+bbulNOGl18zG3PJ5yrvxc7AZHh/MHe/B3LMQU5IGbOBdDR19vm0ngdyQckyQ=,iv:LYv99ujQF2Msn0ga/+QEc6jWl2ZsIb//VNYxQaEEQmk=,tag:VnO8Fxt7iJJSXmg0hy9nFg==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAf8lV61N5/9FgxJ70Ee1bbg5n7BlET7mvu6kQUfYBVoM=
MCowBQYDK2VwAyEAM8cVWZfw3JNjrGdv8tEhFDx2PeKrDj7Q2+ayknY1fgU=
-----END PUBLIC KEY-----
@@ -1 +1 @@
12D3KooWJRC1TRSECsZ98TswzZnYjwkaam5upttjvRtDAM7ScatA
12D3KooWDJV2o6yihzx3o4hU9D97nbDAGdN919VUUYejD21qmY3N
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:bguo4H+gWj+w01fC2wvO1dEf1cTtWwcYvsfjppi7YbL7AU4SvFm/P4bv8WjHzBF18jt4tcqGliofRYw2UsI7eGE1m9XUYp6blJEA1bR9bSIHLMwLkkWoBYaJOf6vySOyLwR3U8THm0CP1HQVd9cLrALtjj8XGH3FcW0kB0c3R/Ss+0mdn3Eec/MJb7jTBWPQvhQIuMEk+6eTnivuQ5cY8s2u6rty0hGnhwF/NyFlcJoM5O10Z8Ez5DVy85L2ZgaEW4p+m8/647jcfAgB87mQVaWTRhl6wBKcz1jZ1ZsM+Y2M8H1j5Cq65rlF0evO,iv:s1phNDwOJPGw9jVJ4wbS9EXDbUdiUESfo4AyIKbeoW4=,tag:Rb0tNiGywMBROkImsiUygQ==,type:str]",
"data": "ENC[AES256_GCM,data:snfjIrwIAWR496R6FK+zG4++l5oLhtd67eBuegB6Udfxk+MzQ96IhLpqa++ivHpdeDUKww1mrTPyRQBNPF3GdE14+iSXgExVOQx53K0UY9AZcJ1+fnGZVj+qT4+5/cs9dzL3GP6Hx3ayal8/A7YUrvAX7EZaS3KP0A+Tp33Aa1O86IlDcq4V8YFLxtNxYvZub4cx+Gmku0EEtRR6RjKrXK7vNeQyg3mfcqSMtkSAWnoZh9lBWVdbpfztwf49gQhVSnutR0esxBm97Mj6iGopmJ40UbeMxcJ/u+t+SC/BVJ+AGsspf6H6n4OJ0nOy,iv:wS5wYLPJBPZM79yh3PybLYA7zNGyaKNqz2NeYDhZrIw=,tag:527oUT7RDxoN61QEwnu5Vg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOGhaWkoyY3g1cFVRVStY\nLzU0d3Mva2hNbWt4bm9Nd0lWbkdLYXhoY1dVCktpTTFZYVNnakxENXZ0MkQ4K2x2\ndGIvdkttSE4xemtaR2JZNHNyNGhxbkkKLS0tIFFKYkg0WFVpT0xNaFdMT0NZTDZG\nYisrQnQvVVJJakxzMjVyTUV6TnlQaFUKpdPMfyyA/VkZjWjcpEMVO2ebOhsOfU6y\nH/XQgBd4lHkmnPlgWSEGag8ZtE9ld3jvTM8m+rtD4ZeGByET/da/dw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVWGRodk9PMFV5R29NNmY5\nZHh5TkU4aTZJYVBPTk0rSElEaVR6K1VDL3lZCi9ubzNtTkUxMVkwVHAvYnlCVjd4\nUGJzREZzNFNwQS9sUCtPTUtHMDROZ0EKLS0tIFg5aHJPR3N4MHo3a2QyYXQzSnll\ndkVpNVViSDdvK3B0dUxkV0tiS0tHWlkKlBOMFMThDol8AZcpNCA1ev1CExhwDCbE\njTg2ucD7eJrV2Cc4zi0IMJ3uNnRcFzmBdF2x9kYyLjrszz6fAs7mhQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUVJCVFl1TUdrbXQ4WHJo\ndTQwUmFOTkdYZnFRR2l5RzFnUG5KVzBiRzFNCjF1Q2VoYXpTZFFMaFJ2cll1Y2V4\nUEZJWC9CUGdlTy93WXUzWjdRVkxKRzgKLS0tIHVmeXhXSmprMGxBYmgwOTV1TmFp\nMHpoUG02QnhHekxXVEQydWZvRDQrVW8Kp1gjD8bBr1Wa9+7rsJvV8bEeTEbqw9sr\ndCKN/I/5DbLRjEQrXqMgkUyHsc5ZJAaFUBR52cT0ngJdRBK9j/SNcw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZMHJGT2NzRHpvS3JZVlNz\nSWRtVHBOWS8zRHQyUmdlT2dmdzFEVFBQV25ZCjJwL0ZvWk1yZTRlanRYTlVpZUJY\nZEZhMzBtY0VwbDZKWlNZTEE1dWI5R2cKLS0tIDRaQ2l0WDNwK0s4aXZiUStCWSt1\nU3F2VlRFVWRacGN3SkI0Z1pwUTFIcFkKKearTPX98XkQYqqLSiTZuLcO6mJy31Ct\nhAoldDAwj6d0NXom1DfqP0C/OjmIPPh6TxBG1DNQ2xmlaH1rLXNY7g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1ayu4av6r9rtrz54rr5w9vvjucnxxdf3pq7ut0zrqzqd9dpqjjyws82fff7"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG85cXJ2UXpm\nSUJMQnJwdzdRYUtkdGkxUFk1Q3M5UUhmU2l0bE5hMERTVEUgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpSb21rNFJUNjkxa05FcUtHZCtEQSsr\nWWlHMGpEKytqR0RhdFFDQjNPWW1NCi0tLSBkYjlrc2huR0tSaWhnbmppQ3JmNWhI\nOWFhbDh0WHJQL2VHMTNEU2c4ZlpjCmy4ZVBPU5xjtb2ueuZrK894Shlxbu0cxIcu\nBnzk4UnKW+tUkiHW6qVnC3Eve6eH7a8h7gnSZWeI9YHpu8SerGs=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFo5NEliTXNj\nLzNUb1FxQlBBaGpsTEJZVFZ6UG9YMFljc2E2ajVvayt4VkkgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpha3NhQVdnZldlaHpIR0FyL01xV2E5\nV2lSWndBT1BzZkVQL0dnZ3dMMjA4Ci0tLSBkakhQOWg3eDhlTTB1UStDWDZpRDI5\nYS9BZGlMZUVDK1Bsd0RCazIxL3J3CtJsMEgUstvsnKoWKJ7Nv/rvq9oKbeEnGFvS\nbzqaiG+jZM69hOtraxirXTzJ17V1GD6OlmQgYf0tDhCSg0KIvx0=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG9DOTBWTkFx\nLzVDeHVJdnFWOGpMT2t4R2dqNWtweWdqWkRuMDJnREhqajggQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpMZy9LUXY0N1hRejNKdTh6MURKek95\nUjFhZWQ5RXQ3S1ZZaVA2ZHZHemRVCi0tLSBwQzk4ZlFoVzJjM3lMcFQxRWpHcysx\namRpTEZ0UHI3K042VXpoTU9sTnNrCuaO5RAG2OUmt2LKlfkwYjmxr0BFWB4XrPo5\nkjGxB2nLjpx7o+4oMv47wsXrJcPEIHHdX7dfUIhKdWoifH1XBvg=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHptaStKOVow\nZ3dUaVljOGFuTHJkc3I4ajFsRVVKaVgwN3JOdlZJaklnd3MgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo2M21HNHNWeFJLYVBYMG44enJvL0dr\nRi91UXlteFp6Y0RXT2puQjliVkFrCi0tLSBHNUNuSnR4dFhOLzN1VU1RRTdlTHB4\nTlR0cjljdEdVME4xWFJYVmU2OUkwCjN/QIX4DiE4I65tdUZtsaeXnMD0QvKMUPd5\nUxR1Wir5ajMmjNhnmTkVeZs6KywhVvYxpkp8OEBsu5tOjlyxpPU=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEdMaC9yN3Bk\nTi9NWGUyN2VUMDdJSG5WN1NtdmVwYlJXT0VnVDBpcWRFd0EgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwovd21Cd0pUWmVkQnJNMUkvMEJaQ3Y0\nbEF5RVFkMmkrbFMrelprWWNRQmxjCi0tLSBod2lOY29GeHY3WUg0eXhTYmZtb3FB\nWjlJY1FneXNqTTJ6VnlWa0llcVFvCuht+S/ZXdcGiQFye6L3YQ5QdEC7QqQlr4Tk\n9ejaoPk0yFUocYMcAekmyR3nChC7TDXtxjPTUMTkdqvU2WAmNIw=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFhUWDlWNWdB\nUTVudnZwY25RK0l2UkNoUVBLRTZIVkZCTEVudGpkbDVTQWMgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp0ZG13OFRSb2lLbHRHVEpKaCtmNExu\nbnRwVnNKZjVxOWg4YWhwanZxVjNVCi0tLSAwK0MyN01sNUNnc0Roek9vSGVmOFkr\nRTdRVmtiMldmY2lqclIycDdtNk9VCu0NXeu7iIC1THZat2yZqIEGuF77PQMrsGQe\nNxrlC1UURICuafEU7DCKzcHZ1Peu7Is8jysfz3FPxvpBTYVvDxs=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtcU1LdFVPVlV6aU5ScE1S\nOWg1dzBleHZHb0o5RWExSkl5d2VYTU14RHk4CndOQ1lwTzVYUzM0K3o0aEhqZmVC\nRllhMDRWdmpvS0tYVk9RdXV4RFVnNkUKLS0tIDNqQWJIK1JhdXBNb2RRWnJCNHZs\nQnNBcTRaQ0I0VkErN2VucjErMTJRTzgKdaiMQUz/xNGiUaDbHrRAD4D4GdFJMDS/\nLUDnYE3KfglS5RPY7jZzuggApzIqfuI/tgDbzUk7oudPIb4AjjtfVg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1RkYyTE9Gc3p4a09xaWJZ\nSzU3dXB4cFRWYkNYRno0MFpIZllJeCsweUdnClZKcnZVQ3lKbGdqc1F4Tk8wSFk5\nVmJjdmtwNi9DeUhkSEs5SUU3N0c2UnMKLS0tIDdDbjJtRDM1TUphSS9jYjE1NkM2\nbWZjZm9aTkRsSXVBNVhCUVlXSXFYT0kKU6gyqOmpyDE72YSEnXEcUHIfIW1tAOlz\nnjE8jUWcCEwqMaHqOp+NE4wOIjn98wGCoSlNG6Krf+afUUUdBCvFQQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBb1NKY3NWemg1QkR2NmVT\ndGhkVEFvVFFyWklqQU40UUdvQ2dTQytjekhNCkZYWC9VRnVtN3JCM0xObzNYbFky\nRXQyN0ZUaGVvRE1XRnF2MDZuTlRTRmcKLS0tIGthcHFYS012R2tkZEpzZXJzMmll\nRGt1QS9HR1ZaMXZFdHBSOHVJZ2RrU0UKAX8L0WXdf9Q0Mfg3MKbAewFlcUh6g066\nCxZptfMg9+2KNuOLvX1eduHkALXXfeEdRbVlhfCM85L7lji7I3kkrA==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZcFgrVTJYdkNQYTJvaVdN\nMUYxRFdjMHhvREpQMnErekRCdVZCWU5hZndFClBtc1NIMWFwMDNwWGZydkFZek5w\nMWNSYzJBK01Eam80TkRpMXVZcFlJQ3cKLS0tIHM3N1RmdUZQWm03eGlCbFMvd0Vv\ncmxqbjFyVmc3YTliSjRGNmF1UkZSMFkKOW/SqwxTQtlA59qgpG1IRCin4fF3hShV\nWetyJ3b33ZFhaTKeQOSYTRczuYxUjXogtCu7jgGI8egP/+s+mcXurg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsTTdEb1RVWU5qR043ZUUy\nL2l0NDdsYkFub0xBTGhVR0hGSUQ1amI4RXpBCjhYK1BkMjhEZ05QTTRGV25hZjRV\nZC9aUVRXckd6R3NEWTJxUTgxbE9qTnMKLS0tIEVscUVpZ3ptR0duOFhWbW4wcC8x\nelBnUGNqOVQySjFoUDZYbjhob0NWaEkKJbTGo/NUNUiK63wesahK0W4jw4TZNV+h\nwrsG9o6Y/ijqcsV46bDAFRCVrUXqWxsoTCgdWcbrGTjNUrJ3pjm88w==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIV1c0SW5TRzEycjk0MWZN\ncEpxMzkxZmd0U1o3NDlBdDRPdnpYNEp2cEVBClV2TzlKN1pLMUc4UXhNTEMzMGlo\nc0RkM0xIRVZLNGIwaUdQSmpmaG9kdWsKLS0tIGFoYmVGaU9YMDhqYjJXYnp1SnFW\nK092Ym5EZDJuR2dYSWljOVZvQUFqbG8K5KYnOrpqzuaWw52tsLRygThDZmjxcsM9\n34i3o+X0ZLZpUrFFHwXW6nXPXPyrmz7ZpibKJhSiGgH/u9T/jK0+dg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2eXdVRWJkcGdNYTgyVldK\nbE1vTHRaWUIzd0NSUlpFZ1N3SE9pdndtaFhjCkZ4VkNDY21UeVVhMkcvUENPMTk0\naUtJUUJxUm5tY1B3WHJEdDQxcXBqVGsKLS0tIGF3Nklmci85Q0IyQ3B3RXhobmxY\nbFNkQjk4OEhYUEF2NDF5Tk9RZkJTdUkKHKbcWHAK8nJND47GTdj0j3wlK22XDs0e\nO6GhPtqBC1Nn7WFOXZ/RqO0N8vIzrpV1+xbhgbMRFb+tzjU+HdKypQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwOTk3cmtlYk9LTDAxSit2\nQzkrb3FEWWtFektjVjhVSFZ3ZDJNc3MzNVRjCnFHWlpnU1hiZXIxckdtT2h3MGd3\neGdLZWNNQ2htMzBBK1htQU5JN0FNbGsKLS0tIGJaaE9PTnVFc0VZQ3B1bHdNMnhS\nelNEWWRHS3ZzUHhZYmJ4OE1jcHNmT28K8IoZqC8vQN3Cy1VVZmTX4OT0VXrHrBul\nT7b1ze6E0eYSUwASDbXjajNaqDLVjMeK/HDZkU6chSSKk+JU6TR+VA==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:04Z",
"mac": "ENC[AES256_GCM,data:D2ZSUMoaDBoDr85lqdvHTN0qFvcquoZf65EYzSJjuSLpIngPpQuo9pnECEOfDQ5PtpfGJrBJ5AJaKKFz3dtXZRrQNirU3c0u7DfpQQAGzmGB3hbIJnwmbPgCtarIiLkaTn5OjIrm/SMiAn6ZcdSQrzQH0gDNZszdG2sK/XJVi7A=,iv:sTM3RZzCl5As+EtkOZtGLp46Z7iF8vbmPeXsQ/F1SZo=,tag:BjadDNas2/DZeOKtwdBIuQ==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:06Z",
"mac": "ENC[AES256_GCM,data:FBePq5YR9RJYaqwq7h4OrhS8bGmeaMXDS0UJXkvflC9KrQwiXVbaLMENJqhq3yGKLS6LWPBS3Hyq+H2zeFp+woN9pN53YtzFGeTRgdfyU+4Y+OFcps/nIt5ZFD2707CXKhx0hokYfOPpxqeTv4/ZNCfkRcdzEK6Iy+T2Q/oQw/Q=,iv:VLaXDY6uB4aMMbyKaiGynzMOi9KAPsyYsjZijkWnvrs=,tag:CDg/ahC3e0ZXDKCOTLXh3A==,type:str]",
"version": "3.13.3"
}
}
@@ -1,46 +1,46 @@
{
"data": "ENC[AES256_GCM,data:ZtJDLVi9KCLlcTtPHRpjTsE2X9jPXHzO5XkVI7o611Cqi3mahgCGA/1Vw8uz/9ow7/S2Uers6Wm9kBKOlG8Hc/wJxPgF4RyFoF4dayp6tTdNGPZDvC6ulp7HQDV4k0Bf8qRPXBwvqTIdFwgQSaOHeQVN/Jdtu/k=,iv:eIqVPISSa4jLjxoY973p/KAIHXAFacO5C7KjR2klXkg=,tag:dJGvBRY2pFeDglpxqttuJQ==,type:str]",
"data": "ENC[AES256_GCM,data:WM8JUzDkosUqMvcms5bqTIt3hX8XQ7Fmo3ylg1Ym8apBmfb/XAUnoFbPu7e55u4XyR52BBeedG/w+pdGwFCSjSBXGcxvrsihfIGbz8YDOakKV1ltAPSh8k86eRbi8rTsCPbOYrDkAbwkQ/4BGZkklvXW7k5OS0U=,iv:s++EHvoGTSd84NcMH3xwsZWcyr2lhVgWJzdJ+7QSavA=,tag:R+tHeyjqfeYbl0xdCVuQ5w==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBodUtPanRyRXc2a2Fmb3hI\ndDZ0SGtqdjhNbnBzSFc4UjVCSS9qVE9nQXdRCmtFUndJcEhsSWFBVkJmelE2QW50\nMjlGcHFaVFgxQzdWR3F4dDRiVzBMUm8KLS0tIEtKK2wrWG9MYmpqNVRkQk5NQllE\nRUZ4a0NTazBwKzBTbVQ4c09nVmVYMFUKgE+8BG1zhlejXOKmkIHGmjy/KfUuHctY\nrGMCOGhYFT92N5JFJ0K4+5KR34o1oeK3xdftJdbBkSQlytIDqcUKfg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcTk4T3NYeEdDSVhXd1Jx\nZDI2VmRjZkwwOWQ0TENJUnYvVGVlaFBiblN3ClZTYm1EVE5vMkxRaUhsWkt6Ukhm\nVlV3eThtQ24ycDBxdHBCa1BKVWFUM00KLS0tIDh5RkRXb1dKYlRjOXZRaGZ2UDRu\nK1NuejhTNEI0dUNONTZVN2N3RHltd1kKvSrEoQ/z5x9lsQ8Ey3kSRjaosO4XGuKV\n/rI/OLW4A9Av4HV11V1hdeTwpNbTmVeycg3rQUr+9cj8r0BtbH8m7w==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlMHRXQ2R5RUVEYzdNL0xR\neko5N3RoQVNsSVBhb01mbzFhelI1dmlWWldzClhmNEVZU3puWERZamIvUlhDZnpX\nMG1lWWwxV0U0c2FzRXYyQlZFRTREdjgKLS0tIHpoOTFVVG5NMUJmOWk4ZWxqSnE4\nblp1a3k0cDJNMXN5SWV1TmNPMC9xYmMKjWxNIkqWkRqkvtOM44W/gS2WgWT+2+i4\nugSYPtCr3NcDi4LqEbOEpiqpnd9k+fAGDsPrpNKwUNJjRzEvKBjTaw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4YnVWRGlPVUdKSitVMytI\nZ2VLMkYzcjJJQ0lyc2dHZEF2aituRnZueEVrCm1OVlNmV0Z0cjBFa1Z5OVIyNk8y\nU0NicWR4cytPMVNNdXFUYStaWmcrYUkKLS0tIC9CaFhZU2JEQTNiSTBtemV0SjRF\nSmNrRE05eXNzMEEwdDgra1FvSFdvamsKbtSuO8x+opMRgjIpQNm1g+Z6cIkbjzIJ\noqrFwYKi7pG2DFcXoFn17WHUu/6IeCJlO5mSgVVtYCIE6f5C0feNMw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1ayu4av6r9rtrz54rr5w9vvjucnxxdf3pq7ut0zrqzqd9dpqjjyws82fff7"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGxCZmxtMU9Z\nTXRMUG10TmtST1pPMEUrSDFZUEJEbDEyaXIzUWFTeTk3eWcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpCT0tIUVIxcHRveE1WcXJoVzIzR1Vw\nbHdWWkJzRjUrZDdVdG9EekswWStNCi0tLSAwekV2d3Y4VlZRZXJjZjJWWjl2V0Fi\nUmdpdXc5K2VxNkRxMlp5a085VDdvCq5q2HMse/p2TX40/5Q89Ad+DTSJ5na2a8pJ\nKoxen/037gsJKkTLAFzRVrthiENvbqYtRj/JUEHT4N1xGaV3Bbw=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHJ6UjdvYTVD\nbkdYRko4UHlCTzZwMVFTWEZ2V2FYR01SczRtb0ptT0JRMDggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpocUN0OHZITzgvRy9LK050c09hTnVX\nYW4yZXpaMFpjUE1VcFl6R1FwY3ZzCi0tLSBxeUN5cG5KaEFZWVNlZ1Rnc2thZEpo\nYTZkUm4vemhHVVFVVzdWSWRCSDQ0CjjYCSmbWt9mh14698pCzR76aN0obBAAL4Qw\n4IDAC6w/Qu1MFdY0AqL73xNJnXn5DNtcMoKt1wx9Rz6l5sLLSY0=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG5wZkZjZUdC\nV3VDbk5vYTJtWndnMEwzVDY0c1JYSTRoMXpXRCtrK2pMaE0gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpYdWhJS3lNdXdWYnN6OGh2N0VYeXBh\nZUZtNFJkY3BnWmRXVjF3NW0zSkRRCi0tLSBIQnFPYWpxTWRzcFMxZEoyUERGTWUy\nTzkvZjZ5ZnlVdVJxenpVUzZENG9VCsXVmFARSwT+sYsrzuv4IvPgnxWGDtcEhrTq\nEy5h8vQdlLhZ+8usUi/qYOt1rMlihwAsw+LVMUf4ia0iKPlY7Mo=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEp4MkEyWHRP\nOWdLOThlR2VhOUhDTlF2cllmN3hIczVsNnppNHBZSVRwekkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpkcFVGR1pIRXJVVktPM05keVE3SFdN\naERGU2VMa1IwZy9STE5HSWNnaG13Ci0tLSBHUG45LzkxN1NIeDd3N0tkdmxVUUR4\nS1ZBaWZOT1kxdXZzV0xQS1ZoaGRVCkt9cezUa4efGFcsopmKOrU4QKHYhUWCiqM9\nPyuEKd7U1H9I+7Y6bXkuWtFag3Uibyji4+R4dWMzhW9leiDD5Fw=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExJUEI0THo5\nOWg0bVFldFFWWHhvNEpTajZHM25VL1Z1Ni9kMHFoci9CUkkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpBZ1pQVjdtVWdpaHlyc3JCM216blhu\nOXN6YnNFOEova0thYy81TTRJdVdFCi0tLSAxR3pjZHJ4bUR4R2pNUm52NkJtUWVk\nbWVOM1NSYm5ySFVtSllGaE9SQzJFChLhr/T9y+01GnSrX86VoK86J87M8/4Dal9/\neS3yvPdqfVpakawLcg3DTvtL8xiVrNh3BcasBiOzxTFfNtqN7S8=\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJ5eVRwclZR\nZFpoNVpxN3huSEtZK1hFZmJMVGYvbUd0cVpxZXB0dmVrVTggQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp2ZXBSTGZ0Y3hDR2o2Y3N3RUZldWM0\naHNNbU4zaTBZV0tQdTI1eHpCbEhVCi0tLSBSU2pFeXVsU1hxRGNWVEIrblpuRG0x\nR0pqUDYyS0cyNDltU3owOXpTZUlrClonDAkhwk8JC6RCnG6HexqFFojQUpki2cmg\nlK9+bpntRktuC2tBLVQSIV4fp/D0GKve2QF5S59XqZzajw3ZqVc=\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCVHd1SCtLV1hWYUdjcXlu\nT2JwK0JuMmlhT0kzZmNLZHF2aXJMcVR0MVc4ClJYbTlFNGQvV0h1Y2JzNjcyZEtu\nWDhZMG5SMmw1a1drMUdrZFpXbVZFVXcKLS0tIC9NMkc3VE05dGJXaFJ2b0JqeUJX\nQW5FNkMzNmVxcHplcTBnalZuY21PSW8KE0xyLLtQ//c8e4YlByMqniZ3urRrVKih\npnBX28fZmMK+fvpY1bDxhMZfdOORRUzPTGfDeCNypdCXKvA5+XjFng==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUbjdpUlplaDZiT0VUQTFO\nN3N2S2VYT1N3SFFQUW5vMFBXcVdtNVIrSkVrCjhIZVZ4WWRIZVRVTTU3VktYSnFl\nR1BmUXFTRzBWU0p4YlJQNXdlRFp6VmMKLS0tIGI0VThtdXpkSkUxNThBZHhacTgr\nMzk3T1JWckNMbUlGUUJKZitrZ2NmV3cK0Nz/y+cImy+uN4kW/GbOALBzbLsoZa16\nZuv9788923x3hrj4YHQir+a5c6piMCfSOX3fSmITjNPHE5CspBZMsg==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcjk1b1JIY3ZvZWEzV0dq\naUc5U25jWlBIbFJvb1h6L01jUk5IMWh6MjIwCmpxUDduUkZ4RjI2WVdudkR2RnNz\nTjFFTngzK2w3MU9QQlVqeVhKSHhpeEkKLS0tIGRkdngzcE1laVN5d3lxU3RSejdi\nVlNad1FrVnd3cHNhVmphNHBOTXN3MkUK37Hj7ZrmL6lwd1x2wu1TKl7SO1hI3SJm\nK5V/kZcius9JrEl0YKnvFUtBuZhYUpc08O72fbWItPNbCa4n3rV0uw==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIakpmNW1wMElYN1l6ZXhn\nRGc0cklNZTRDbjExRjYrRzJkcXE5dmZoV1c4CldjWFByK3FKUEc2NHc3bitsWnJV\nVXBCS2JNOHl1bUhOUXFrZ2NmMmxIZEkKLS0tIFB6NFRVd0JrcEJsblRRZ2xhMlls\nMTcrZmdpVEUxbFN1elY5ZnYwdVhjdTQKsG6HuyHruJ+fzfcFONpCkeJXaD9U0QHw\npcGP/QZ+rAfoCGwk/7tUR82IBZLAxQDrmfRarkPKoLElS+xDOqKCVQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIZVhRQWVxWkt5RGdDOTgr\nRWNxRlFSQXhxSnUvY1JaMmluLy9wOVp6eGtZCmRueFpaUXBsTTNLOC82Qi9sY09i\nTEZzalpaZnF3VTZtZEJWNC80V3l0Mm8KLS0tIHFMVTBPdStwRFhyVkZxUjlXTGx1\ncEZtMitaY0ZFOTVwRlJZODRCVldFVncKNFBtzd+Wn9ZzmvCF8cE2iTmsu81J0/Q8\nU0rnJ491j+KyEMcfKW21KbT980KzNxq7M9spfIlwrNPiYn0ts+VgKQ==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByT3JHY0tmWlBsbkVERC8y\nSUxYcExWbGM3STU1K1RuTG9LeXAyVDhDbHk4CkppZVh1STZBZWNxc28xWVlBQTFt\na0srOEszQXEzcXRUU2NGY3JLUHpnWGMKLS0tIGNBU2w1bkJQMnR3cGF3Zk1pa1d3\ndGVINWRwVHYrMjVPL0JscG1uZW1rTE0KY0I4ND+L3TUTmfCfZuuLCg3HxI44SaRk\n6loTd69gGGgqv8f9LWcrzfj6CdAhZF5xLCpoLIRD9uV1C06JIkJosQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
},
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5R094d1lUcGMwb3M3djR6\nWXNjLzdyMFRhL2NzSGFOZStUNzhvb1gzNW5nCmpvWENaUG9RalBzY0ZFN2dNQkNy\nN1Z5aDlaeEROQmR1VGF5Q2ticHpaYTAKLS0tIHpOc0duWUxRYXJvamdKQWxobExR\nWmQ3VEZYbXNPbmVsa1ZmdW14bG1YdE0KGeADyQt+tfGZiCS3Ne/EA7RucAZE432M\nvWsQYWU6uNsTQOsTimHuS3Hnc8KctYJZvJDN2mtSLg4s3fC+naccMg==\n-----END AGE ENCRYPTED FILE-----\n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyazR4THBmQkQ1WTV5N2lC\nT0k5ZXU1Y09zRXVyanA5eWpRMHJva2NMcVJvCmt6bkc3T2dBWWhTbE5pVDV1dEhm\nNUR5YSsveHZXR2ZLMlFtdjA1OTY4YTAKLS0tIGJCZ1VVdnlHQ2IzOTNiQzAyaEV4\nTGlmTEFrNU1EaG04N0tMc3NCZW5NZncKeOkeY8KHIVpVy8ynFT3Weqkz5vw5J9LM\nil8ivNlyPjntWEB56+c0OuCx82OKkcPqb9OLHxlW4ncs6ucAOpxK5g==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
}
],
"lastmodified": "2026-07-22T03:11:04Z",
"mac": "ENC[AES256_GCM,data:ox0zpoJ9L2ptbXncO7rMWrZtulTsGRdrLKb3vmSADFXthWYY+YXyigJ4/PwjC11CqbaeAO6HcFdKuYkY+o2XQMvdNdCBGI30+JdjLEM5VLQxrOW/qbXUH5A/+jBjYH07gMx+uWtPZARdbkAbthEnH59WbNrudFmfVaF4a6q91jQ=,iv:YQ6+p4QfdQV3ULfvBnTM/12LLhLT4BBWmzTJGIuK9B8=,tag:247OskDeqDG14D+81jZxXQ==,type:str]",
"version": "3.13.1"
"lastmodified": "2026-10-26T10:23:07Z",
"mac": "ENC[AES256_GCM,data:Jd1OQuEqCBkYHiU5ZouKxj6pZ1BaFAAgwvybxHjGL+tipqW7PwqDgAukG6SWSHkdVP04cd55D3M/uL5rOw//5F+IXgmonA9NyBfvAREcRr84BhAWnwbtnDCNNk1Rt4BC5/7ab1FpS2PIaX0UavHZU13vf57Rh+8lz4Ad2kwlj/k=,iv:9AmQzSrQNGpqFHtfuLewk8T5rsL9z41Zwhi34wq/N+A=,tag:gAPK8hIVFFSoGyuICsUFFQ==,type:str]",
"version": "3.13.3"
}
}
@@ -1,3 +1,3 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA4tmdgbkG6Fwv8XD5SJ9Lh6EAPIIbwBo7Vb4le2FngNA=
MCowBQYDK2VwAyEAG99i0UbqBh6obbcmpZoif5rikabr8b3z5uYjDRyh58Q=
-----END PUBLIC KEY-----
Loaded 100 of 242 files, more files were not shown because too many files have changed in this diff. Show more