diff -pruN 6.18.0-1/.gitignore 6.19.0-0ubuntu1/.gitignore
--- 6.18.0-1/.gitignore	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/.gitignore	2025-10-05 12:41:31.000000000 +0000
@@ -17,3 +17,4 @@ heaptrack.*
 .idea
 /cmake-build*
 .cache
+.qmlls.ini
diff -pruN 6.18.0-1/CMakeLists.txt 6.19.0-0ubuntu1/CMakeLists.txt
--- 6.18.0-1/CMakeLists.txt	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/CMakeLists.txt	2025-10-05 12:41:31.000000000 +0000
@@ -1,9 +1,9 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "6.18.0")
+set(KF_VERSION "6.19.0")
 project(KSyntaxHighlighting VERSION ${KF_VERSION})
 
-find_package(ECM 6.18.0 REQUIRED NO_MODULE)
+find_package(ECM 6.19.0 REQUIRED NO_MODULE)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
 
 include(KDEInstallDirs)
diff -pruN 6.18.0-1/autotests/folding/example.qmd.fold 6.19.0-0ubuntu1/autotests/folding/example.qmd.fold
--- 6.18.0-1/autotests/folding/example.qmd.fold	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/example.qmd.fold	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,96 @@
+<beginfold id='1'>---</beginfold id='1'>
+title: <beginfold id='2'>"</beginfold id='2'>Hello, Quarto<endfold id='2'>"</endfold id='2'>
+format: html
+editor: visual
+<endfold id='1'>---</endfold id='1'>
+
+<beginfold id='3'>```{r}</beginfold id='3'>
+#| label: load-packages
+#| include: false
+
+library(tidyverse)
+library(palmerpenguins)
+<endfold id='3'>```</endfold id='3'>
+
+<endfold id='4'></endfold id='4'><beginfold id='4'></beginfold id='4'><endfold id='5'></endfold id='5'><endfold id='6'></endfold id='6'><endfold id='7'></endfold id='7'><endfold id='8'></endfold id='8'>## This example
+
+This example code mostly from the Quatro guide: https://quarto.org/docs/guide/ . GPL-2.
+
+Quarto is very similar to R markdown, but also allows (inline) code blocks in Python, Julia, and Observable JS.
+
+<endfold id='4'></endfold id='4'><beginfold id='4'></beginfold id='4'><endfold id='5'></endfold id='5'><endfold id='6'></endfold id='6'><endfold id='7'></endfold id='7'><endfold id='8'></endfold id='8'>## Meet Quarto
+
+Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.
+
+<endfold id='4'></endfold id='4'><beginfold id='4'></beginfold id='4'><endfold id='5'></endfold id='5'><endfold id='6'></endfold id='6'><endfold id='7'></endfold id='7'><endfold id='8'></endfold id='8'>## Meet the penguins
+
+![](https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png){style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}
+
+The `penguins` data from the [**palmerpenguins**](https://allisonhorst.github.io/palmerpenguins "palmerpenguins R package") package contains size measurements for `{r} nrow(penguins)` penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.
+
+The plot below shows the relationship between flipper and bill lengths of these penguins.
+
+<beginfold id='3'>```{r}</beginfold id='3'>
+#| label: plot-penguins
+#| warning: false
+#| echo: false
+# NOTE: We may want to add some sort of ighlighting for the above rendering options
+
+ggplot(penguins, 
+       aes(x = flipper_length_mm, y = bill_length_mm)) +
+  geom_point(aes(color = species, shape = species)) +
+  scale_color_manual(values = c("darkorange","purple","cyan4")) +
+  labs(
+    title = "Flipper and bill length",
+    subtitle = "Dimensions for penguins at Palmer Station LTER",
+    x = "Flipper length (mm)", y = "Bill length (mm)",
+    color = "Penguin species", shape = "Penguin species"
+  ) +
+  theme_minimal()
+<endfold id='3'>```</endfold id='3'>
+
+
+<beginfold id='9'>```{python}</beginfold id='9'>
+#| label: fig-polar
+#| fig-cap: "A line plot on a polar axis"
+
+import numpy as np
+import matplotlib.pyplot as plt
+
+r = np.arange<beginfold id='10'>(</beginfold id='10'>0, 2, 0.01<endfold id='10'>)</endfold id='10'>
+theta = 2 * np.pi * r
+fig, ax = plt.subplots<beginfold id='10'>(</beginfold id='10'>
+  subplot_kw = <beginfold id='11'>{</beginfold id='11'>'projection': 'polar'<endfold id='11'>}</endfold id='11'> 
+<endfold id='10'>)</endfold id='10'>
+ax.plot<beginfold id='10'>(</beginfold id='10'>theta, r<endfold id='10'>)</endfold id='10'>
+ax.set_rticks<beginfold id='10'>(</beginfold id='10'><beginfold id='12'>[</beginfold id='12'>0.5, 1, 1.5, 2<endfold id='12'>]</endfold id='12'><endfold id='10'>)</endfold id='10'>
+ax.grid<beginfold id='10'>(</beginfold id='10'>True<endfold id='10'>)</endfold id='10'>
+plt.show<beginfold id='10'>(</beginfold id='10'><endfold id='10'>)</endfold id='10'>
+<endfold id='9'>```</endfold id='9'>
+
+<beginfold id='13'>```{julia}</beginfold id='13'>
+#| label: fig-parametric
+#| fig-cap: "Parametric Plots"
+
+using Plots
+
+plot(sin, 
+     x->sin(2x), 
+     0, 
+     2π, 
+     leg=false, 
+     fill=(0,:lavender))
+<endfold id='13'>```</endfold id='13'>
+
+<beginfold id='14'>```{ojs}</beginfold id='14'>
+viewof bill_length_min = Inputs.range(
+  <beginfold id='15'>[</beginfold id='15'>32, 50<endfold id='15'>]</endfold id='15'>, 
+  <beginfold id='16'>{</beginfold id='16'>value: 35, step: 1, label: "Bill length (min):"<endfold id='16'>}</endfold id='16'>
+)
+viewof islands = Inputs.checkbox(
+  <beginfold id='15'>[</beginfold id='15'>"Torgersen", "Biscoe", "Dream"<endfold id='15'>]</endfold id='15'>, 
+  <beginfold id='16'>{</beginfold id='16'> value: <beginfold id='15'>[</beginfold id='15'>"Torgersen", "Biscoe"<endfold id='15'>]</endfold id='15'>, 
+    label: "Islands:"
+  <endfold id='16'>}</endfold id='16'>
+)
+<endfold id='14'>```</endfold id='14'>
diff -pruN 6.18.0-1/autotests/folding/systemd-unit.service.fold 6.19.0-0ubuntu1/autotests/folding/systemd-unit.service.fold
--- 6.18.0-1/autotests/folding/systemd-unit.service.fold	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/systemd-unit.service.fold	2025-10-05 12:41:31.000000000 +0000
@@ -66,7 +66,7 @@ ExecStartPost = -cmd arg, @cmd2 name -o
 ExecCondition = /bin/exec/condition
 ExecReload = /bin/exec/reload
 ExecStop = /bin/kill -SIGABRT $MAINPID
-ExecStopPost = -:!!/bin/stop/post
+ExecStopPost = -:!/bin/stop/post
 RestartSec = 15
 RestartSteps = 2
 RestartMaxDelaySec = 150ms
@@ -199,6 +199,12 @@ StateDirectory = some/dir
 CacheDirectory = some/dir
 LogsDirectory = some/dir
 ConfigurationDirectory = some/dir
+StateDirectoryQuota = 2G
+CacheDirectoryQuota = off
+LogsDirectoryQuota = 70%
+StateDirectoryAccounting = false
+CacheDirectoryAccounting = false
+LogsDirectoryAccounting = false
 RuntimeDirectoryMode = 0755
 StateDirectoryMode = 0755
 CacheDirectoryMode = 0755
@@ -227,6 +233,16 @@ RestrictFileSystems = ~btrfs ntfs3 \
   @temporary
 RestrictNamespaces = cgroup net \
   ipc
+DelegateNamespaces = pid uts
+PrivateBPF = true
+BPFDelegateAttachments = BPFCgroupInetIngress \
+  BPFCgroupSockOps BPFCgroupSockOps
+BPFDelegateCommands = BPFMapCreate BPFProgLoad \
+  BPFProgTestRun
+BPFDelegateMaps = BPFMapTypeUnspec \
+  BPFMapTypeQueue
+BPFDelegatePrograms = BPFProgTypeXdp \
+  BPFProgTypeXdp
 LockPersonality = yes
 MemoryDenyWriteExecute = true
 RestrictRealtime = true
@@ -286,7 +302,6 @@ FinalKillSignal = SIGABRT
 WatchdogSignal = SIGQUIT
 
 ## from systemd.resource-control
-CPUAccounting = yes
 CPUWeight = 1234
 StartupCPUWeight = 321
 CPUQuota = 123.4%
@@ -343,6 +358,8 @@ NFTSet = cgroup:inet:filter:my_service \
 
 
 <endfold id='1'></endfold id='1'><beginfold id='1'>[Slice]</beginfold id='1'>
+ConcurrencyHardMax = 20
+ConcurrencySoftMax = infinity
 # The Slice section may include options of the resource-control option group.
 # See [Service] for available options of systemd.resource-control.
 
@@ -393,8 +410,10 @@ FreeBind = yes
 Transparent = no
 Broadcast = true
 PassCredentials = yes
+PassPIDFD = true
 PassSecurity = true
 PassPacketInfo = true
+AcceptFileDescriptors = no
 Timestamping = nsec
 TCPCongestion = westwood
 ExecStartPre = +/usr/bin/start/pre
@@ -410,6 +429,8 @@ TriggerLimitIntervalSec = 1s 500ms
 TriggerLimitBurst = 50
 PollLimitIntervalSec = 1s 300ms
 PollLimitBurst = 120
+DeferTrigger = patient
+DeferTriggerMaxSec = infinity
 PassFileDescriptorsToExec = true
 # see [Service] for options from systemd.exec and systemd.kill
 
@@ -433,6 +454,7 @@ OnUnitInactiveSec = 1m 30s
 OnCalendar = daily
 AccuracySec = 1min 10sec
 RandomizedDelaySec = 30s
+RandomizedOffsetSec = 20s
 FixedRandomDelay = yes
 DeferReactivation = true
 OnClockChange = false
@@ -493,6 +515,7 @@ ConditionVirtualization = |vmware
 ConditionHost = !shodan*
 ConditionKernelCommandLine = !kernel_option
 ConditionKernelVersion = | >= 4.*
+ConditionVersion = kernel >= 4.*
 ConditionCredential = name
 ConditionEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value
 ConditionSecurity = | ! selinux
@@ -520,6 +543,7 @@ ConditionOSRelease = ID=some-id
 ConditionMemoryPressure = 20%/5min
 ConditionCPUPressure = 12%/10sec
 ConditionIOPressure = 30% / 1min
+ConditionKernelModuleLoaded = modulename
 AssertArchitecture = x86
 AssertVirtualization = |vmware
 AssertHost = !shodan*
@@ -950,6 +974,7 @@ RestrictNamespaces = ipc
 RestrictNamespaces = mnt
 RestrictNamespaces = net
 RestrictNamespaces = pid
+RestrictNamespaces = time
 RestrictNamespaces = user
 RestrictNamespaces = uts
 RestrictNamespaces = cgroup uts
@@ -1087,6 +1112,214 @@ StopWhenUnneeded = invalid
 StopWhenUnneeded = false true
 
 
+###### bpf delegate attachments
+<endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
+BPFDelegateAttachments = BPFCgroupInetIngress
+BPFDelegateAttachments = BPFCgroupInetEgress
+BPFDelegateAttachments = BPFCgroupInetSockCreate
+BPFDelegateAttachments = BPFCgroupSockOps
+BPFDelegateAttachments = BPFSkSkbStreamParser
+BPFDelegateAttachments = BPFSkSkbStreamVerdict
+BPFDelegateAttachments = BPFCgroupDevice
+BPFDelegateAttachments = BPFSkMsgVerdict
+BPFDelegateAttachments = BPFCgroupInet4Bind
+BPFDelegateAttachments = BPFCgroupInet6Bind
+BPFDelegateAttachments = BPFCgroupInet4Connect
+BPFDelegateAttachments = BPFCgroupInet6Connect
+BPFDelegateAttachments = BPFCgroupInet4PostBind
+BPFDelegateAttachments = BPFCgroupInet6PostBind
+BPFDelegateAttachments = BPFCgroupUdp4Sendmsg
+BPFDelegateAttachments = BPFCgroupUdp6Sendmsg
+BPFDelegateAttachments = BPFLircMode2
+BPFDelegateAttachments = BPFFlowDissector
+BPFDelegateAttachments = BPFCgroupSysctl
+BPFDelegateAttachments = BPFCgroupUdp4Recvmsg
+BPFDelegateAttachments = BPFCgroupUdp6Recvmsg
+BPFDelegateAttachments = BPFCgroupGetsockopt
+BPFDelegateAttachments = BPFCgroupSetsockopt
+BPFDelegateAttachments = BPFTraceRawTp
+BPFDelegateAttachments = BPFTraceFentry
+BPFDelegateAttachments = BPFTraceFexit
+BPFDelegateAttachments = BPFModifyReturn
+BPFDelegateAttachments = BPFLsmMac
+BPFDelegateAttachments = BPFTraceIter
+BPFDelegateAttachments = BPFCgroupInet4Getpeername
+BPFDelegateAttachments = BPFCgroupInet6Getpeername
+BPFDelegateAttachments = BPFCgroupInet4Getsockname
+BPFDelegateAttachments = BPFCgroupInet6Getsockname
+BPFDelegateAttachments = BPFXdpDevmap
+BPFDelegateAttachments = BPFCgroupInetSockRelease
+BPFDelegateAttachments = BPFXdpCpumap
+BPFDelegateAttachments = BPFSkLookup
+BPFDelegateAttachments = BPFXdp
+BPFDelegateAttachments = BPFSkSkbVerdict
+BPFDelegateAttachments = BPFSkReuseportSelect
+BPFDelegateAttachments = BPFSkReuseportSelectOrMigrate
+BPFDelegateAttachments = BPFPerfEvent
+BPFDelegateAttachments = BPFTraceKprobeMulti
+BPFDelegateAttachments = BPFLsmCgroup
+BPFDelegateAttachments = BPFStructOps
+BPFDelegateAttachments = BPFNetfilter
+BPFDelegateAttachments = BPFTcxIngress
+BPFDelegateAttachments = BPFTcxEgress
+BPFDelegateAttachments = BPFTraceUprobeMulti
+BPFDelegateAttachments = BPFCgroupUnixConnect
+BPFDelegateAttachments = BPFCgroupUnixSendmsg
+BPFDelegateAttachments = BPFCgroupUnixRecvmsg
+BPFDelegateAttachments = BPFCgroupUnixGetpeername
+BPFDelegateAttachments = BPFCgroupUnixGetsockname
+BPFDelegateAttachments = BPFNetkitPrimary
+BPFDelegateAttachments = BPFNetkitPeer
+BPFDelegateAttachments = BPFTraceKprobeSession
+BPFDelegateAttachments = BPFTraceUprobeSession
+## invalid values
+BPFDelegateAttachments = invalid
+
+
+###### bpf delegate commands
+<endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
+BPFDelegateCommands = BPFTokenCreate
+BPFDelegateCommands = BPFTaskFdQuery
+BPFDelegateCommands = BPFRawTracepointOpen
+BPFDelegateCommands = BPFProgTestRun
+BPFDelegateCommands = BPFProgStreamReadByFd
+BPFDelegateCommands = BPFProgQuery
+BPFDelegateCommands = BPFProgLoad
+BPFDelegateCommands = BPFProgGetNextId
+BPFDelegateCommands = BPFProgGetFdById
+BPFDelegateCommands = BPFProgDetach
+BPFDelegateCommands = BPFProgBindMap
+BPFDelegateCommands = BPFProgAttach
+BPFDelegateCommands = BPFObjPin
+BPFDelegateCommands = BPFObjGetInfoByFd
+BPFDelegateCommands = BPFObjGet
+BPFDelegateCommands = BPFMapUpdateElem
+BPFDelegateCommands = BPFMapUpdateBatch
+BPFDelegateCommands = BPFMapLookupElem
+BPFDelegateCommands = BPFMapLookupBatch
+BPFDelegateCommands = BPFMapLookupAndDeleteElem
+BPFDelegateCommands = BPFMapLookupAndDeleteBatch
+BPFDelegateCommands = BPFMapGetNextKey
+BPFDelegateCommands = BPFMapGetNextId
+BPFDelegateCommands = BPFMapGetFdById
+BPFDelegateCommands = BPFMapFreeze
+BPFDelegateCommands = BPFMapDeleteElem
+BPFDelegateCommands = BPFMapDeleteBatch
+BPFDelegateCommands = BPFMapCreate
+BPFDelegateCommands = BPFLinkUpdate
+BPFDelegateCommands = BPFLinkGetNextId
+BPFDelegateCommands = BPFLinkGetFdById
+BPFDelegateCommands = BPFLinkDetach
+BPFDelegateCommands = BPFLinkCreate
+BPFDelegateCommands = BPFIterCreate
+BPFDelegateCommands = BPFEnableStats
+BPFDelegateCommands = BPFBtfLoad
+BPFDelegateCommands = BPFBtfGetNextId
+BPFDelegateCommands = BPFBtfGetFdById
+## invalid values
+BPFDelegateCommands = invalid
+
+
+###### bpf delegate maps
+BPFDelegateMaps = BPFMapTypeUnspec
+BPFDelegateMaps = BPFMapTypeHash
+BPFDelegateMaps = BPFMapTypeArray
+BPFDelegateMaps = BPFMapTypeProgArray
+BPFDelegateMaps = BPFMapTypePerfEventArray
+BPFDelegateMaps = BPFMapTypePercpuHash
+BPFDelegateMaps = BPFMapTypePercpuArray
+BPFDelegateMaps = BPFMapTypeStackTrace
+BPFDelegateMaps = BPFMapTypeCgroupArray
+BPFDelegateMaps = BPFMapTypeLruHash
+BPFDelegateMaps = BPFMapTypeLruPercpuHash
+BPFDelegateMaps = BPFMapTypeLpmTrie
+BPFDelegateMaps = BPFMapTypeArrayOfMaps
+BPFDelegateMaps = BPFMapTypeHashOfMaps
+BPFDelegateMaps = BPFMapTypeDevmap
+BPFDelegateMaps = BPFMapTypeSockmap
+BPFDelegateMaps = BPFMapTypeCpumap
+BPFDelegateMaps = BPFMapTypeXskmap
+BPFDelegateMaps = BPFMapTypeSockhash
+BPFDelegateMaps = BPFMapTypeCgroupStorageDeprecated
+BPFDelegateMaps = BPFMapTypeReuseportSockarray
+BPFDelegateMaps = BPFMapTypePercpuCgroupStorageDeprecated
+BPFDelegateMaps = BPFMapTypeQueue
+BPFDelegateMaps = BPFMapTypeStack
+BPFDelegateMaps = BPFMapTypeSkStorage
+BPFDelegateMaps = BPFMapTypeDevmapHash
+BPFDelegateMaps = BPFMapTypeStructOps
+BPFDelegateMaps = BPFMapTypeRingbuf
+BPFDelegateMaps = BPFMapTypeInodeStorage
+BPFDelegateMaps = BPFMapTypeTaskStorage
+BPFDelegateMaps = BPFMapTypeBloomFilter
+BPFDelegateMaps = BPFMapTypeUserRingbuf
+BPFDelegateMaps = BPFMapTypeCgrpStorage
+BPFDelegateMaps = BPFMapTypeArena
+## invalid values
+BPFDelegateMaps = invalid
+
+
+###### bpf delegate programs
+BPFDelegatePrograms = BPFProgTypeUnspec
+BPFDelegatePrograms = BPFProgTypeSocketFilter
+BPFDelegatePrograms = BPFProgTypeKprobe
+BPFDelegatePrograms = BPFProgTypeSchedCls
+BPFDelegatePrograms = BPFProgTypeSchedAct
+BPFDelegatePrograms = BPFProgTypeTracepoint
+BPFDelegatePrograms = BPFProgTypeXdp
+BPFDelegatePrograms = BPFProgTypePerfEvent
+BPFDelegatePrograms = BPFProgTypeCgroupSkb
+BPFDelegatePrograms = BPFProgTypeCgroupSock
+BPFDelegatePrograms = BPFProgTypeLwtIn
+BPFDelegatePrograms = BPFProgTypeLwtOut
+BPFDelegatePrograms = BPFProgTypeLwtXmit
+BPFDelegatePrograms = BPFProgTypeSockOps
+BPFDelegatePrograms = BPFProgTypeSkSkb
+BPFDelegatePrograms = BPFProgTypeCgroupDevice
+BPFDelegatePrograms = BPFProgTypeSkMsg
+BPFDelegatePrograms = BPFProgTypeRawTracepoint
+BPFDelegatePrograms = BPFProgTypeCgroupSockAddr
+BPFDelegatePrograms = BPFProgTypeLwtSeg6local
+BPFDelegatePrograms = BPFProgTypeLircMode2
+BPFDelegatePrograms = BPFProgTypeSkReuseport
+BPFDelegatePrograms = BPFProgTypeFlowDissector
+BPFDelegatePrograms = BPFProgTypeCgroupSysctl
+BPFDelegatePrograms = BPFProgTypeRawTracepointWritable
+BPFDelegatePrograms = BPFProgTypeCgroupSockopt
+BPFDelegatePrograms = BPFProgTypeTracing
+BPFDelegatePrograms = BPFProgTypeStructOps
+BPFDelegatePrograms = BPFProgTypeExt
+BPFDelegatePrograms = BPFProgTypeLsm
+BPFDelegatePrograms = BPFProgTypeSkLookup
+BPFDelegatePrograms = BPFProgTypeNetfilter
+## invalid values
+BPFDelegatePrograms = invalid
+
+
+###### bpf program type
+BPFProgram = sysctl
+BPFProgram = sock_ops
+BPFProgram = sock_create
+BPFProgram = setsockopt
+BPFProgram = sendmsg6
+BPFProgram = sendmsg4
+BPFProgram = recvmsg6
+BPFProgram = recvmsg4
+BPFProgram = post_bind6
+BPFProgram = post_bind4
+BPFProgram = ingress
+BPFProgram = getsockopt
+BPFProgram = egress
+BPFProgram = device
+BPFProgram = connect6
+BPFProgram = connect4
+BPFProgram = bind6
+BPFProgram = bind4
+BPFProgram = bind6:/sys/fs/bpf/sock-addr-hook
+## invalid values
+BPFProgram = invalid
+
+
 ###### calendar
 <endfold id='1'></endfold id='1'><beginfold id='1'>[Timer]</beginfold id='1'>
 OnCalendar = daily
@@ -1440,19 +1673,29 @@ CPUWeight = invalid
 CPUWeight = 1 10000
 
 
+###### defer trigger
+<endfold id='1'></endfold id='1'><beginfold id='1'>[Socket]</beginfold id='1'>
+DeferTrigger = patient
+# single boolean
+DeferTrigger = false
+DeferTrigger = true
+## invalid values
+DeferTrigger = invalid
+# multiple values
+DeferTrigger = patient true
+
+
+
 ###### delegate
 <endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
 # single boolean
 Delegate = false
 Delegate = true
 # single controller
-Delegate = blkio
 Delegate = bpf-devices
 Delegate = bpf-firewall
 Delegate = cpu
-Delegate = cpuacct
 Delegate = cpuset
-Delegate = devices
 Delegate = io
 Delegate = memory
 Delegate = pids
@@ -1514,25 +1757,24 @@ ExecStart = /some/cmd %u arg $var1 insid
 ExecStart = cmd1 %h arg1_1 $var1, cmd2 %u arg2_1 $var2_1\
   $var2_2
 # escapes (not exactly the same as detected by HlCStringChar)
-ExecStart = cmd \, \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef
-# prefix
-ExecStart = @/some/cmd arg "@!+-:"
+ExecStart = cmd \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef
+
+
+###### exec prefix
+ExecStart = @/some/cmd arg "@-:+!|"
 ExecStart = -/some/cmd-1 -option arg
 ExecStart = :/some/cmd arg
 ExecStart = +/some/cmd arg
 ExecStart = !/some/cmd arg
-ExecStart = !!/some/cmd arg
-ExecStart = @:-!!/some/cmd arg
-ExecStart = @!!-:/some/cmd arg
+ExecStart = |/some/cmd arg
+ExecStart = @:-!/some/cmd arg
+ExecStart = @!-:/some/cmd arg
 ExecStart = @:-+/some/cmd arg
 ## invalid values
 # invalid prefix
 ExecStart = @ /some/cmd arg
 ExecStart = @ -/some/cmd arg
-ExecStart = +!/some/cmd arg
-ExecStart = !!!/some/cmd arg
-ExecStart = @+@/some/cmd arg
-ExecStart = @!!+/some/cmd arg
+ExecStart = +! /some/cmd arg
 
 
 ###### exit status
@@ -1712,7 +1954,6 @@ Type = ntfs3
 Type = ocfs2
 Type = overlay
 Type = proc
-Type = reiserfs
 Type = tmpfs
 Type = tracefs
 Type = udf
@@ -2129,6 +2370,7 @@ OnFailureJobMode = flush
 OnFailureJobMode = ignore-dependencies
 OnFailureJobMode = ignore-requirements
 OnFailureJobMode = isolate
+OnFailureJobMode = lenient
 OnFailureJobMode = replace
 OnFailureJobMode = replace-irreversibly
 ## invalid values
@@ -2247,6 +2489,7 @@ PrivateTmp = disconnected true
 
 ###### private users
 <endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
+PrivateUsers = full
 PrivateUsers = identity
 PrivateUsers = self
 ## should accept any boolean value
@@ -2306,6 +2549,18 @@ ProtectHome = invalid
 ProtectHome = tmpfs true
 
 
+###### protect hostname
+<endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
+ProtectHostname = private
+ProtectHostname = private:host.example.com
+ProtectHostname = true
+ProtectHostname = yes:somehostname
+## invalid values
+ProtectHostname = invalid
+# multiple values
+ProtectHostname = private true
+
+
 ###### protect system
 <endfold id='1'></endfold id='1'><beginfold id='1'>[Service]</beginfold id='1'>
 ProtectSystem = full
diff -pruN 6.18.0-1/autotests/folding/test.opsiscript.fold 6.19.0-0ubuntu1/autotests/folding/test.opsiscript.fold
--- 6.18.0-1/autotests/folding/test.opsiscript.fold	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/test.opsiscript.fold	2025-10-05 12:41:31.000000000 +0000
@@ -2,7 +2,7 @@
 ;
 ;    SPDX-FileCopyrightText: 2024 Stefan Staeglich <sstaeglich@kdemail.net>
 ;
-;    SPDX-License-Identifier: LGPL
+;    SPDX-License-Identifier: LGPL-2.1-or-later
 
 
 
diff -pruN 6.18.0-1/autotests/folding/test.rq.fold 6.19.0-0ubuntu1/autotests/folding/test.rq.fold
--- 6.18.0-1/autotests/folding/test.rq.fold	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/test.rq.fold	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,118 @@
+# SPARQL Query for Syntax Highlighting Test
+# This query includes a wide range of features to test a highlighter's capabilities.
+
+# == 1. Prologue: Base URI and Prefixes
+BASE          <http://example.org/book-data/>
+PREFIX ex:    <http://example.org/vocab#>
+PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
+PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>
+PREFIX dc:    <http://purl.org/dc/elements/1.1/>
+
+# == 2. Query Form: SELECT with Expressions and Aggregates
+SELECT DISTINCT
+    ?authorName
+    (UCASE(?title) AS ?upperCaseTitle)
+    ?publicationDate
+    # Aggregate functions
+    (COUNT(?character) AS ?characterCount)
+    (GROUP_CONCAT(DISTINCT ?genre; SEPARATOR=", ") AS ?genres)
+    (AVG(?rating) AS ?averageRating)
+
+# == 3. Dataset Clause: Defining the Query Target
+FROM <http://example.org/library-main-graph>
+FROM NAMED <http://example.org/library-metadata-graph>
+
+# == 4. Query Pattern: The Core Logic
+WHERE {
+    # Inline data with VALUES
+    VALUES ?authorType { foaf:Person ex:FictionalEntity }
+
+    # Basic Graph Pattern with various term types
+    ?author a foaf:person ;
+            rdf:type ?authorType ;
+            foaf:name ?authorName ;
+            foaf:birthday ?birthDate . # Semicolon for predicate-object lists
+
+    ?author foaf:smoker true .
+    ?author foaf:child false .
+
+    # Property path: one or more 'knows' relationships
+    ?author foaf:knows+ ?colleague .
+
+    # Nested blank node syntax
+    ?book dc:creator [ foaf:name ?authorName ] ;
+          dc:title ?title ;
+          ex:rating ?rating . # Period to end the triple block.
+
+    # OPTIONAL block for data that may not exist
+    OPTIONAL {
+        ?book ex:hasCharacter ?character .
+        ?character foaf:name ?characterName .
+    }
+
+    # UNION to combine results from alternative patterns
+    {
+        ?book ex:genre "Science Fiction"@en .
+    }
+    UNION
+    {
+        ?book ex:genre "Fantasy"^^xsd:string .
+    }
+
+    # BIND to compute and assign a new variable
+    BIND(YEAR(?birthDate) AS ?birthYear)
+
+    # Subquery to pre-filter books
+    {
+      SELECT ?book ?publicationDate WHERE {
+        ?book dc:date ?publicationDate .
+        FILTER(?publicationDate > "2000-01-01T00:00:00"^^xsd:dateTime && ?publicationDate < "2010-01-01T00:00:00"^^xsd:dateTime)
+      }
+      LIMIT 100
+    }
+
+    # GRAPH clause to query a specific named graph
+    GRAPH <http://example.org/library-metadata-graph> {
+        ?book ex:reviewedBy _:reviewer . # Blank node label
+    }
+
+    # SERVICE clause for federated queries
+    SERVICE <http://dbpedia.org/sparql> {
+        ?colleague rdfs:label ?colleagueLabel .
+        FILTER(LANG(?colleagueLabel) = "en")
+    }
+
+    # FILTER clause with a variety of functions and operators
+    FILTER (
+        # Logical, comparison, and arithmetic
+        (?rating > 3.5 && ?birthYear < 1980) ||
+        # Regular expression
+        REGEX(?authorName, "^J\\.\\s?K\\.", "i") &&
+        # Check for existence of a value
+        BOUND(?characterName) &&
+        # String and numeric functions
+        (STRLEN(?title) - 5 > 10) &&
+        # IN operator
+        ?genre IN ("Fantasy", "Sci-Fi") &&
+        # Datatype and language checks
+        LANGMATCHES(LANG(?title), "en-US") &&
+        DATATYPE(?rating) = xsd:decimal
+    )
+
+    FILTER NOT EXISTS {
+        ?colleague schema:memberOf ?organization .
+    }
+}
+
+# == 5. Solution Modifiers: Ordering, Grouping, and Slicing
+GROUP BY ?authorName ?title ?publicationDate
+HAVING (COUNT(?character) >= 2) # Filter on aggregate results
+ORDER BY DESC(?averageRating) ASC(?authorName)
+LIMIT 10
+OFFSET 20
+
+# == Other SPARQL Keywords (for syntax highlighting completeness)
+# CONSTRUCT, DESCRIBE, ASK (alternative query forms)
+# INSERT DATA, DELETE DATA, LOAD, CLEAR, CREATE, DROP (update operations)
diff -pruN 6.18.0-1/autotests/folding/test.smk.fold 6.19.0-0ubuntu1/autotests/folding/test.smk.fold
--- 6.18.0-1/autotests/folding/test.smk.fold	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/test.smk.fold	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,279 @@
+<indentfold># =============================================================================
+# Snakefile — comprehensive feature test for Snakemake highlighting
+# Minimal comments; lines marked `# ERROR:` are intentionally invalid.
+# =============================================================================
+
+# ---------- Top-level Python ----------
+
+if True: forbidden # ERROR: no text allowed after block opener
+    a = 1
+else: forbidden # ERROR: same
+    a = 0
+
+config = {
+    "method": "B",
+    "samples": ["S1", "S2"],
+    "ref": "ref/genome.fa",
+    "gtf": "ref/genes.gtf",
+    "threads_default": 4,
+    "work": "work",
+    "adapters": {"fwd": "AGATCGGAAGAGC", "rev": "AGATCGGAAGAGC"}
+}
+SAMPLES = config["samples"]
+
+def fq(sample, mate):
+    return f"raw/{sample}_R{mate}.fastq.gz"
+
+# ---------- Global Snakemake directives ----------
+workdir: config["work"]
+localrules: all, qc_fastqc
+ruleorder: sort_index > align
+report: "report/report.html"
+envvars: "LD_LIBRARY_PATH", "OMP_NUM_THREADS"
+wildcard_constraints:
+    sample = r"[A-Za-z0-9_]+"
+
+include: "extras.smk"
+container: "docker://ubuntu:22.04"
+conda: "envs/global.yml"
+containerized:
+
+# Legacy/compat directives still recognized in old workflows
+moduleinclude: "legacy/tools.smk"   # legacy include for modules
+# deprecated (kept for legacy)
+subworkflow oldwf:  something #ERROR: nothing allowed after colon
+    workdir: "oldwf"
+    snakefile: "workflow/Snakefile"
+    input: # ERROR: `input` directive not allowed in subworkflows
+
+# ---------- Modules and use rule ----------
+module asm: something #ERROR: nothing allowed after colon
+    snakefile: "modules/assembly.smk"
+    config: "modules/assembly.yaml"
+    input: "test" # ERROR: `input` directive not allowed in modules
+
+# Reuse a rule from the module; inside `with:` we use regular rule directives
+use rule assemble as assemble_mod with: something #ERROR: nothing allowed after colon
+    snakefile: # ERROR `snakefile` directive not allowed in rules
+    threads: 8
+    params:
+        mode = "quick"
+    message:
+        "Assembling {wildcards.sample} (module override)"
+    # wrong directive (kept to test error handling inside a use-body)
+    outpt: "SHOULD-NOT-BE-HERE"   # ERROR: typo
+
+# ---------- INTENTIONAL TOP-LEVEL ERRORS ----------
+workdirr: "typo/dir"              # ERROR: unknown top-level keyword
+snakefile: "top/level.smk"        # ERROR: only valid inside module/subworkflow
+
+# ---------- Pipeline ----------
+rule all:
+    input:
+        expand("results/{sample}/summary.txt", sample=SAMPLES)
+
+rule qc_fastqc:
+    input:
+        r1 = lambda wc: fq(wc.sample, 1),
+        r2 = lambda wc: fq(wc.sample, 2),
+    output:
+        html = "qc/{sample}_fastqc.html",
+        zip  = "qc/{sample}_fastqc.zip",
+    threads: 2
+    resources:
+        mem_mb = 1024
+    log:
+        "log/fastqc_{sample}.log"
+    params:
+        extra = "--nogroup"
+    shell:
+        """
+        fastqc -t {threads} {params.extra} -o qc {input.r1} {input.r2} > {log} 2>&1
+        """
+
+rule trim_cutadapt:
+    input:
+        r1 = lambda wc: fq(wc.sample, 1),
+        r2 = lambda wc: fq(wc.sample, 2),
+    output:
+        r1 = "trim/{sample}_R1.fastq.gz", # `sample`: wildcard
+        r2 = "trim/{sample}_R2.fastq.gz",
+        report = f"{report_dir}/{{sample}}" # `report_dir`: f-string interpolation, `sample`: wildcard
+    params:
+        a = config["adapters"]["fwd"],
+        A = config["adapters"]["rev"],
+    threads: 8
+    conda:
+        "envs/cutadapt.yml"
+    log:
+        "log/cutadapt_{sample}.log"
+    shell:
+        """
+        cutadapt -j {threads} -a {params.a} -A {params.A} \
+            -o {output.r1} -p {output.r2} {input.r1} {input.r2} > {log} 2>&1
+        """
+
+# Example of wrapper usage (version string illustrative)
+rule align:
+    input:
+        r1 = "trim/{sample}_R1.fastq.gz",
+        r2 = "trim/{sample}_R2.fastq.gz",
+        ref = config["ref"],
+    output:
+        bam = "map/{sample}.unsorted.bam",
+    threads: 12
+    resources:
+        mem_mb = 8000
+    params:
+        # BWA-MEM2 example options
+        extra = "-M"
+    log:
+        "log/align_{sample}.log"
+    wrapper:
+        "0.90.0/bio/bwa/mem2"
+    shell:
+        "bwa-mem2 mem -t {threads} {params.extra} {input.ref} {input.r1} {input.r2} | samtools view -bS - > {output.bam} 2> {log}"
+
+rule sort_index:
+    input:
+        "map/{sample}.unsorted.bam"
+    output:
+        bam = "map/{sample}.bam",
+        bai = "map/{sample}.bam.bai",
+    threads: 6
+    resources:
+        mem_mb = 4000
+    envmodules:
+        "samtools/1.16"
+    shadow:
+        "minimal"
+    shell:
+        """
+        samtools sort -@ {threads} -o {output.bam} {input}
+        samtools index -@ {threads} {output.bam}
+        """
+
+rule quantify:
+    input:
+        bam = "map/{sample}.bam",
+        bai = "map/{sample}.bam.bai",
+        gtf = config["gtf"],
+    output:
+        counts = "counts/{sample}.txt",
+    threads: 4
+    group:
+        "counting"
+    priority:
+        50
+    params:
+        feature_type = "exon",
+        id_attr = "gene_id",
+    shell:
+        """
+        featureCounts -T {threads} -a {input.gtf} -t {params.feature_type} -g {params.id_attr} \
+            -o {output.counts} {input.bam}
+        """
+
+# Example of script & notebook directives
+rule plot_qc:
+    input:
+        "qc/{sample}_fastqc.zip"
+    output:
+        "plots/{sample}_qc.png"
+    script:
+        "scripts/plot_qc.py"    # not executed; present to test directive
+
+rule explore_notebook:
+    input:
+        "counts/{sample}.txt"
+    output:
+        "notebooks/{sample}_eda.ipynb"
+    notebook:
+        "notebooks/template.ipynb"
+
+# Example of per-rule container / cache / benchmark / message / name / version (legacy)
+rule summarize:
+    input:
+        bam = "map/{sample}.bam",
+        counts = "counts/{sample}.txt"
+    output:
+        txt = "results/{sample}/summary.txt"
+    params:
+        tag = "{sample}"        # wildcard should highlight distinctly
+    message:
+        "Summarizing {wildcards.sample}"
+    name:
+        "summarize_{sample}"
+    benchmark:
+        "benchmark/summarize_{sample}.tsv"
+    cache:
+        "permissive"
+    container:
+        "docker://python:3.11"
+    version: "1.0"            # legacy directive
+    threads: 2
+    resources:
+        mem_mb = 512
+    log:
+        "log/summarize_{sample}.log"
+    run:
+        # simple Python run block
+        import json
+        meta = {
+            "sample": wildcards.sample,
+            "bam": input.bam,
+            "counts": input.counts,
+            "tag": params.tag,
+        }
+        # write a tiny summary
+        import os
+        os.makedirs(os.path.dirname(output.txt), exist_ok=True)
+        with open(output.txt, "w") as fh:
+            fh.write(json.dumps(meta, indent=2) + "\n")
+
+# ---------- More intentional errors inside a rule body ----------
+
+if config["method"] == "A":
+    
+    rule bad_header_examples_A:
+        input:
+            "map/{sample}.bam"
+        outpt:      # ERROR: unknown directive
+            "nowhere.txt"
+        foo:        # ERROR: unknown directive
+            "bar"
+        shell:
+            "true"
+else:
+    rule bad_header_examples_B:
+        input:
+            "map/{sample}.bam"
+        output:      # ERROR: unknown directive
+            "nowhere.txt"
+        foo:        # ERROR: unknown directive
+            "bar"
+        shell:
+            "true"
+
+# ---------- Using the module rule  ----------
+rule assemble_via_module:
+    input:
+        "trim/{sample}_R1.fastq.gz",
+        "trim/{sample}_R2.fastq.gz",
+    output:
+        "assembly/{sample}/contigs.fa"
+    threads: 8
+    shell:
+        "echo assembly > {output}"
+
+# ---------- Default target redirection ----------
+rule final_default:
+    output:
+        "FINAL.marker"
+    default_target:
+        True
+    shell:
+        "touch {output}"
+        
+rule: no text allowed here  # ERROR: no text allowed after block opener
+    input: "back_to_normal.txt"
diff -pruN 6.18.0-1/autotests/folding/test.xkb.fold 6.19.0-0ubuntu1/autotests/folding/test.xkb.fold
--- 6.18.0-1/autotests/folding/test.xkb.fold	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/test.xkb.fold	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,133 @@
+xkb_keymap <beginfold id='1'>{</beginfold id='1'>
+    xkb_keycodes  <beginfold id='1'>{</beginfold id='1'> include "evdev+aliases(qwerty)" <endfold id='1'>}</endfold id='1'>;
+    xkb_types     <beginfold id='1'>{</beginfold id='1'> include "complete"  <endfold id='1'>}</endfold id='1'>;
+    xkb_compat    <beginfold id='1'>{</beginfold id='1'> include "complete"  <endfold id='1'>}</endfold id='1'>;
+    xkb_symbols   <beginfold id='1'>{</beginfold id='1'> include "pc+us(dvorak)+inet(evdev)+terminate(ctrl_alt_bksp)"    <endfold id='1'>}</endfold id='1'>;
+    xkb_geometry  <beginfold id='1'>{</beginfold id='1'> include "pc(pc105)" <endfold id='1'>}</endfold id='1'>;
+<endfold id='1'>}</endfold id='1'>;
+
+default partial alphanumeric_keys modifier_keys
+xkb_symbols "basic" <beginfold id='1'>{</beginfold id='1'>
+    include "us(basic)"
+    include "/usr/share/X11/xkb/symbols/it"
+    include "B(S1)|B(S2)"
+    include "%S/de(basic)"
+    override "B(S1)|B(S2)"
+
+    name[Group1] = "Banana (US)";
+ 
+    key <AE01> <beginfold id='1'>{</beginfold id='1'> [ exclam,          1]     <endfold id='1'>}</endfold id='1'>;
+    key <AE12> <beginfold id='1'>{</beginfold id='1'> [ plus,            equal] <endfold id='1'>}</endfold id='1'>;
+    key <A> <beginfold id='1'>{</beginfold id='1'> [Greek_alpha, Greek_ALPHA, ae, AE] <endfold id='1'>}</endfold id='1'>;
+    key <AD05> <beginfold id='1'>{</beginfold id='1'> [t, T, tslash, Tslash] <endfold id='1'>}</endfold id='1'>;       // Type: FOUR_LEVEL_ALPHABETIC
+    key <AD01> <beginfold id='1'>{</beginfold id='1'> [], [], [ q, Q ] <endfold id='1'>}</endfold id='1'>;
+    key <AD05> <beginfold id='1'>{</beginfold id='1'> [ b, B, U1F966 ]<endfold id='1'>}</endfold id='1'>;
+    key <> <beginfold id='1'>{</beginfold id='1'> [NoSymbol, a, b, <beginfold id='1'>{</beginfold id='1'>a, b<endfold id='1'>}</endfold id='1'>] <endfold id='1'>}</endfold id='1'>;
+
+    key <LALT> <beginfold id='1'>{</beginfold id='1'> virtualModifier = Alt   <endfold id='1'>}</endfold id='1'>; // Alt is bound to <LALT>
+
+    key <LALT> <beginfold id='1'>{</beginfold id='1'>
+        symbols[Group1]=[Alt_L],
+        actions[Group1]=[SetMods(modifiers=modMapMods)]
+
+        repeat = False,
+        [ Alt_L ]
+    <endfold id='1'>}</endfold id='1'>;
+
+    key <AD01> <beginfold id='1'>{</beginfold id='1'>
+        type[Group1] = "TWO_LEVEL", // Type
+        [q, Q]                      // Symbols
+    <endfold id='1'>}</endfold id='1'>;
+
+    key <LCTL> <beginfold id='1'>{</beginfold id='1'>
+        symbols[1] = [ Control_L                                          ],
+        actions[1] = [ <beginfold id='1'>{</beginfold id='1'> SetMods(modifiers=Control), SetGroup(group=+1) <endfold id='1'>}</endfold id='1'> ]
+    <endfold id='1'>}</endfold id='1'>;
+
+    override key <AC11> <beginfold id='1'>{</beginfold id='1'>[ agrave,      adiaeresis,     braceleft       ]<endfold id='1'>}</endfold id='1'>;
+    replace key <PRSC> <beginfold id='1'>{</beginfold id='1'>[  Super_R,  Super_R  ]<endfold id='1'>}</endfold id='1'>;
+    modifier_map Mod4 <beginfold id='1'>{</beginfold id='1'> <PRSC>, <RWIN> <endfold id='1'>}</endfold id='1'>;
+    modifier_map Mod1 <beginfold id='1'>{</beginfold id='1'> <LALT>,<RALT> <endfold id='1'>}</endfold id='1'>;
+<endfold id='1'>}</endfold id='1'>;
+ 
+// Mandatory to extend the
+! include %S/evdev
+ 
+! option     = symbols
+  custom:foo = +custom(bar)
+  custom:baz = +other(baz)
+
+// Explicit default section with no name required
+partial alphanumeric_keys
+xkb_symbols <beginfold id='1'>{</beginfold id='1'> include "us(basic)" <endfold id='1'>}</endfold id='1'>;
+
+xkb_keycodes "jp106" <beginfold id='1'>{</beginfold id='1'>
+    include "sgi_vndr/indigo(pc101)"
+    <VOL-> = 122;
+    <HZTG> = 22;
+    alias <AE13> = <BKSL>;
+    augment "sgi_vndr/indy(pc101)"
+    alternate <BKSL> = 100;
+    minimum = 8;
+    maximum = 255;
+<endfold id='1'>}</endfold id='1'>;
+
+xkb_types <beginfold id='1'>{</beginfold id='1'>
+    // ...
+    type "TWO_LEVEL_PLUS_CONTROL" <beginfold id='1'>{</beginfold id='1'>
+        modifiers = Shift + Control;
+        map[None]          = Level1;
+        map[Shift]         = Level2;
+        map[Control]       = Level3;
+        map[Control+Shift] = Level4;
+        // Using preserve will make Control not consumed and allow
+        // applications to detect keyboard shortcuts with alternative
+        // keysyms in levels 3 and 4 rather than the levels 1 and 2.
+        preserve[Control]       = Control;
+        preserve[Control+Shift] = Control;
+        preserve[Shift+Lock+LevelThree] = Lock;
+        level_name[Level1] = "Base";
+        level_name[Level2] = "Shift";
+        level_name[Level3] = "Tweaked Control";
+        level_name[Level4] = "Tweaked Control + Shift";
+    <endfold id='1'>}</endfold id='1'>;
+<endfold id='1'>}</endfold id='1'>;
+
+default partial xkb_compatibility "basic" <beginfold id='1'>{</beginfold id='1'>
+    interpret AccessX_Enable <beginfold id='1'>{</beginfold id='1'>
+        action = LockControls(controls=AccessXKeys);
+    <endfold id='1'>}</endfold id='1'>;
+<endfold id='1'>}</endfold id='1'>;
+
+default xkb_compatibility "basic" <beginfold id='1'>{</beginfold id='1'>
+    virtual_modifiers  NumLock;
+
+    interpret.repeat = False;
+    setMods.clearLocks = True;
+    latchMods.clearLocks = True;
+
+    interpret Shift_Lock+AnyOf(Shift+Lock) <beginfold id='1'>{</beginfold id='1'>
+        action = LockMods(modifiers=Shift);
+    <endfold id='1'>}</endfold id='1'>;
+
+    interpret Num_Lock+Any <beginfold id='1'>{</beginfold id='1'>
+        virtualModifier = NumLock;
+        action = LockMods(modifiers=NumLock);
+    <endfold id='1'>}</endfold id='1'>;
+
+    interpret Mode_switch <beginfold id='1'>{</beginfold id='1'>
+        action = SetGroup(group=+1);
+    <endfold id='1'>}</endfold id='1'>;
+
+    interpret Any + Any <beginfold id='1'>{</beginfold id='1'>
+        action = SetMods(modifiers=modMapMods);
+    <endfold id='1'>}</endfold id='1'>;
+
+    group 2 = Mod5;
+
+    indicator "Shift Lock" <beginfold id='1'>{</beginfold id='1'>
+        !allowExplicit;
+        whichModState = Locked;
+        modifiers = Shift;
+    <endfold id='1'>}</endfold id='1'>;
+<endfold id='1'>}</endfold id='1'>;
diff -pruN 6.18.0-1/autotests/folding/test.zig.fold 6.19.0-0ubuntu1/autotests/folding/test.zig.fold
--- 6.18.0-1/autotests/folding/test.zig.fold	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/folding/test.zig.fold	2025-10-05 12:41:31.000000000 +0000
@@ -2,9 +2,9 @@ const std = @import("std");
 
 /// This is a doc comment
 // This is a comment
-fn getData() !u32 {
+fn getData() !u32 <beginfold id='1'>{</beginfold id='1'>
     return 666;
-}
+<endfold id='1'>}</endfold id='1'>
 
 // multiline string
 const hello_world_in_c =
@@ -19,66 +19,66 @@ const hello_world_in_c =
 // Top-level declarations are order-independent:
 const print = @import("std").debug.print;
 
-pub fn main() !void {
-    inline for (values) |v, i| {
+pub fn main() !void <beginfold id='1'>{</beginfold id='1'>
+    inline for (values) |v, i| <beginfold id='1'>{</beginfold id='1'>
         if (i != 2) continue;
         try expect(v);
-    }
+    <endfold id='1'>}</endfold id='1'>
 
     // error union
     var number_or_error: anyerror!i32 = error.ArgNotFound;
 
-    print("\nerror union 2\ntype: {}\nvalue: {!}\n", .{
+    print("\nerror union 2\ntype: {}\nvalue: {!}\n", .<beginfold id='1'>{</beginfold id='1'>
         @TypeOf(number_or_error), number_or_error,
-    });
+    <endfold id='1'>}</endfold id='1'>);
 
     const stdout = std.io.getStdOut().writer();
-    try stdout.print("Hello, {s}!\n", .{"world"});
+    try stdout.print("Hello, {s}!\n", .<beginfold id='1'>{</beginfold id='1'>"world"<endfold id='1'>}</endfold id='1'>);
     const bytes = "hello";
-    print("{}\n", .{@TypeOf(bytes)}); // *const [5:0]u8
-    print("{d}\n", .{bytes[5]}); // 0
-    print("{}\n", .{'e' == '\x65'}); // true
-    print("{d}\n", .{'\u{1f4a9}'});                     // 128169
-    print("{d}\n", .{'💯'});                            // 128175
-    print("{}\n", .{mem.eql(u8, "hello", "h\x65llo")}); // true
-    print("0x{x}\n", .{"\xff"[0]}); // non-UTF-8 strings are possible with \xNN notation.
-    print("{u}\n", .{'⚡'});
+    print("{}\n", .<beginfold id='1'>{</beginfold id='1'>@TypeOf(bytes)<endfold id='1'>}</endfold id='1'>); // *const [5:0]u8
+    print("{d}\n", .<beginfold id='1'>{</beginfold id='1'>bytes[5]<endfold id='1'>}</endfold id='1'>); // 0
+    print("{}\n", .<beginfold id='1'>{</beginfold id='1'>'e' == '\x65'<endfold id='1'>}</endfold id='1'>); // true
+    print("{d}\n", .<beginfold id='1'>{</beginfold id='1'>'\u{1f4a9}'<endfold id='1'>}</endfold id='1'>);                     // 128169
+    print("{d}\n", .<beginfold id='1'>{</beginfold id='1'>'💯'<endfold id='1'>}</endfold id='1'>);                            // 128175
+    print("{}\n", .<beginfold id='1'>{</beginfold id='1'>mem.eql(u8, "hello", "h\x65llo")<endfold id='1'>}</endfold id='1'>); // true
+    print("0x{x}\n", .<beginfold id='1'>{</beginfold id='1'>"\xff"[0]<endfold id='1'>}</endfold id='1'>); // non-UTF-8 strings are possible with \xNN notation.
+    print("{u}\n", .<beginfold id='1'>{</beginfold id='1'>'⚡'<endfold id='1'>}</endfold id='1'>);
 
     _ = @import("introducing_zig_test.zig");
-}
+<endfold id='1'>}</endfold id='1'>
 
 // Declare an enum.
-const Type = enum {
+const Type = enum <beginfold id='1'>{</beginfold id='1'>
     ok,
     not_ok,
-};
+<endfold id='1'>}</endfold id='1'>;
 
-test "async skip test" {
+test "async skip test" <beginfold id='1'>{</beginfold id='1'>
     var frame = async func();
     const result = await frame;
     try std.testing.expect(result == 1);
-}
+<endfold id='1'>}</endfold id='1'>
 
-fn func() i32 {
-    suspend {
+fn func() i32 <beginfold id='1'>{</beginfold id='1'>
+    suspend <beginfold id='1'>{</beginfold id='1'>
         resume @frame();
-    }
+    <endfold id='1'>}</endfold id='1'>
     return 1;
-}
+<endfold id='1'>}</endfold id='1'>
 
 pub extern "c" fn @"error"() void;
 pub extern "c" fn @"fstat$INODE64"(fd: c.fd_t, buf: *c.Stat) c_int;
 
-const Color = enum {
+const Color = enum <beginfold id='1'>{</beginfold id='1'>
   red,
   @"really red",
-};
+<endfold id='1'>}</endfold id='1'>;
 const color: Color = .@"really red";
 
 var y: i32 = add(10, x);
 const x: i32 = add(12, 34);
 
-test "comptime vars" {
+test "comptime vars" <beginfold id='1'>{</beginfold id='1'>
     var x: i32 = 1;
     comptime var y: i32 = 1;
 
@@ -88,12 +88,12 @@ test "comptime vars" {
     try expect(x == 2);
     try expect(y == 2);
 
-    if (y != 2) {
+    if (y != 2) <beginfold id='1'>{</beginfold id='1'>
         // This compile error never triggers because y is a comptime variable,
         // and so `y != 2` is a comptime value, and this if is statically evaluated.
         @compileError("wrong y value");
-    }
-}
+    <endfold id='1'>}</endfold id='1'>
+<endfold id='1'>}</endfold id='1'>
 
 const decimal_int = 98222;
 const hex_int = 0xff;
@@ -120,72 +120,72 @@ const lightspeed = 299_792_458.000_000;
 const nanosecond = 0.000_000_001;
 const more_hex = 0x1234_5678.9ABC_CDEFp-10;
 
-const A = error{One};
-const B = error{Two};
-(A || B) == error{One, Two}
+const A = error<beginfold id='1'>{</beginfold id='1'>One<endfold id='1'>}</endfold id='1'>;
+const B = error<beginfold id='1'>{</beginfold id='1'>Two<endfold id='1'>}</endfold id='1'>;
+(A || B) == error<beginfold id='1'>{</beginfold id='1'>One, Two<endfold id='1'>}</endfold id='1'>
 
 const x: u32 = 1234;
 const ptr = &x;
 ptr.* == 1234
 
 // get the size of an array
-comptime {
+comptime <beginfold id='1'>{</beginfold id='1'>
     assert(message.len == 5);
-}
+<endfold id='1'>}</endfold id='1'>
 
-test "iterate over an array" {
+test "iterate over an array" <beginfold id='1'>{</beginfold id='1'>
     var sum: usize = 0;
-    for (message) |byte| {
+    for (message) |byte| <beginfold id='1'>{</beginfold id='1'>
         sum += byte;
-    }
+    <endfold id='1'>}</endfold id='1'>
     try expect(sum == 'h' + 'e' + 'l' * 2 + 'o');
-}
+<endfold id='1'>}</endfold id='1'>
 
 // use compile-time code to initialize an array
-var fancy_array = init: {
+var fancy_array = init: <beginfold id='1'>{</beginfold id='1'>
     var initial_value: [10]Point = undefined;
-    for (initial_value) |*pt, i| {
-        pt.* = Point{
+    for (initial_value) |*pt, i| <beginfold id='1'>{</beginfold id='1'>
+        pt.* = Point<beginfold id='1'>{</beginfold id='1'>
             .x = @intCast(i32, i),
             .y = @intCast(i32, i) * 2,
-        };
-    }
+        <endfold id='1'>}</endfold id='1'>;
+    <endfold id='1'>}</endfold id='1'>
     break :init initial_value;
-};
+<endfold id='1'>}</endfold id='1'>;
 
-test "switch on non-exhaustive enum" {
+test "switch on non-exhaustive enum" <beginfold id='1'>{</beginfold id='1'>
     try expect(result);
-    const is_one = switch (number) {
+    const is_one = switch (number) <beginfold id='1'>{</beginfold id='1'>
         .one => true,
         else => false,
-    };
+    <endfold id='1'>}</endfold id='1'>;
     try expect(is_one);
 
     const array_ptr = array[0..array.len];
 
-    if (a != b) {
+    if (a != b) <beginfold id='1'>{</beginfold id='1'>
         try expect(true);
-    } else if (a == 9) {
+    <endfold id='1'>}</endfold id='1'> else if (a == 9) <beginfold id='1'>{</beginfold id='1'>
         unreachable;
-    } else {
+    <endfold id='1'>}</endfold id='1'> else <beginfold id='1'>{</beginfold id='1'>
         unreachable;
-    }
-}
+    <endfold id='1'>}</endfold id='1'>
+<endfold id='1'>}</endfold id='1'>
 
-fn deferErrorExample(is_error: bool) !void {
-    print("\nstart of function\n", .{});
+fn deferErrorExample(is_error: bool) !void <beginfold id='1'>{</beginfold id='1'>
+    print("\nstart of function\n", .<beginfold id='1'>{</beginfold id='1'><endfold id='1'>}</endfold id='1'>);
 
     // This will always be executed on exit
-    defer {
-        print("end of function\n", .{});
-    }
-
-    errdefer {
-        print("encountered an error!\n", .{});
-    }
-}
+    defer <beginfold id='1'>{</beginfold id='1'>
+        print("end of function\n", .<beginfold id='1'>{</beginfold id='1'><endfold id='1'>}</endfold id='1'>);
+    <endfold id='1'>}</endfold id='1'>
+
+    errdefer <beginfold id='1'>{</beginfold id='1'>
+        print("encountered an error!\n", .<beginfold id='1'>{</beginfold id='1'><endfold id='1'>}</endfold id='1'>);
+    <endfold id='1'>}</endfold id='1'>
+<endfold id='1'>}</endfold id='1'>
 
-pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize {
+pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize <beginfold id='1'>{</beginfold id='1'>
     return asm volatile ("syscall"
         : [ret] "={rax}" (-> usize)
         : [number] "{rax}" (number),
@@ -194,4 +194,4 @@ pub fn syscall3(number: usize, arg1: usi
           [arg3] "{rdx}" (arg3)
         : "rcx", "r11"
     );
-}
+<endfold id='1'>}</endfold id='1'>
diff -pruN 6.18.0-1/autotests/html/example.qmd.dark.html 6.19.0-0ubuntu1/autotests/html/example.qmd.dark.html
--- 6.18.0-1/autotests/html/example.qmd.dark.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/example.qmd.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>example.qmd</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Quarto) - Theme (Breeze Dark)"/>
+</head><body style="background-color:#232629;color:#cfcfc2"><pre>
+---
+<span style="color:#8e44ad;font-weight:bold">title</span><span style="font-weight:bold">:</span><span style="color:#2980b9"> </span><span style="color:#f44f4f">"Hello, Quarto"</span>
+<span style="color:#8e44ad;font-weight:bold">format</span><span style="font-weight:bold">:</span><span style="color:#2980b9"> html</span>
+<span style="color:#8e44ad;font-weight:bold">editor</span><span style="font-weight:bold">:</span><span style="color:#2980b9"> visual</span>
+---
+
+<span style="color:#2980b9;background-color:#153042">```{r}</span>
+<span style="color:#7a7c7d">#| label: load-packages</span>
+<span style="color:#7a7c7d">#| include: false</span>
+
+<span style="color:#8e44ad">library</span>(tidyverse)
+<span style="color:#8e44ad">library</span>(palmerpenguins)
+<span style="color:#2980b9;background-color:#153042">```</span>
+
+<span style="color:#8e44ad;font-weight:bold">## This example</span>
+
+This example code mostly from the Quatro guide: <span style="text-decoration:underline">https://quarto.org/docs/guide/</span> . GPL-2.
+
+Quarto is very similar to R markdown, but also allows (inline) code blocks in Python, Julia, and Observable JS.
+
+<span style="color:#8e44ad;font-weight:bold">## Meet Quarto</span>
+
+Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <span style="color:#27ae60">&lt;</span><span style="color:#27ae60;text-decoration:underline">https://quarto.org</span><span style="color:#27ae60">></span>.
+
+<span style="color:#8e44ad;font-weight:bold">## Meet the penguins</span>
+
+<span style="color:#95da4c;background-color:#4d1f24">![](</span><span style="color:#95da4c;background-color:#4d1f24;text-decoration:underline">https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png</span><span style="color:#95da4c;background-color:#4d1f24">)</span>{style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}
+
+The <span style="color:#c45b00">`penguins`</span> data from the <span style="color:#7a7c7d">[</span><span style="color:#27ae60;text-decoration:underline">**palmerpenguins**</span><span style="color:#7a7c7d">](</span><span style="color:#7a7c7d;text-decoration:underline">https://allisonhorst.github.io/palmerpenguins</span><span style="color:#7a7c7d"> "palmerpenguins R package")</span> package contains size measurements for <span style="color:#2980b9;background-color:#153042">`{r}</span> <span style="color:#8e44ad">nrow</span>(penguins)<span style="color:#2980b9;background-color:#153042">`</span> penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.
+
+The plot below shows the relationship between flipper and bill lengths of these penguins.
+
+<span style="color:#2980b9;background-color:#153042">```{r}</span>
+<span style="color:#7a7c7d">#| label: plot-penguins</span>
+<span style="color:#7a7c7d">#| warning: false</span>
+<span style="color:#7a7c7d">#| echo: false</span>
+<span style="color:#7a7c7d"># </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d">: We may want to add some sort of ighlighting for the above rendering options</span>
+
+<span style="color:#8e44ad">ggplot</span>(penguins, 
+       <span style="color:#8e44ad">aes</span>(<span style="color:#2980b9">x =</span> flipper_length_mm, <span style="color:#2980b9">y =</span> bill_length_mm)) <span style="color:#3daee9">+</span>
+  <span style="color:#8e44ad">geom_point</span>(<span style="color:#8e44ad">aes</span>(<span style="color:#2980b9">color =</span> species, <span style="color:#2980b9">shape =</span> species)) <span style="color:#3daee9">+</span>
+  <span style="color:#8e44ad">scale_color_manual</span>(<span style="color:#2980b9">values =</span> <span style="color:#8e44ad">c</span>(<span style="color:#f44f4f">"darkorange"</span>,<span style="color:#f44f4f">"purple"</span>,<span style="color:#f44f4f">"cyan4"</span>)) <span style="color:#3daee9">+</span>
+  <span style="color:#8e44ad">labs</span>(
+    <span style="color:#2980b9">title =</span> <span style="color:#f44f4f">"Flipper and bill length"</span>,
+    <span style="color:#2980b9">subtitle =</span> <span style="color:#f44f4f">"Dimensions for penguins at Palmer Station LTER"</span>,
+    <span style="color:#2980b9">x =</span> <span style="color:#f44f4f">"Flipper length (mm)"</span>, <span style="color:#2980b9">y =</span> <span style="color:#f44f4f">"Bill length (mm)"</span>,
+    <span style="color:#2980b9">color =</span> <span style="color:#f44f4f">"Penguin species"</span>, <span style="color:#2980b9">shape =</span> <span style="color:#f44f4f">"Penguin species"</span>
+  ) <span style="color:#3daee9">+</span>
+  <span style="color:#8e44ad">theme_minimal</span>()
+<span style="color:#2980b9;background-color:#153042">```</span>
+
+
+<span style="color:#2980b9;background-color:#153042">```{python}</span>
+<span style="color:#7a7c7d">#| label: fig-polar</span>
+<span style="color:#7a7c7d">#| fig-cap: "A line plot on a polar axis"</span>
+
+<span style="color:#27ae60">import</span> numpy <span style="color:#27ae60">as</span> np
+<span style="color:#27ae60">import</span> matplotlib.pyplot <span style="color:#27ae60">as</span> plt
+
+r <span style="color:#3f8058">=</span> np.arange(<span style="color:#f67400">0</span>, <span style="color:#f67400">2</span>, <span style="color:#f67400">0.01</span>)
+theta <span style="color:#3f8058">=</span> <span style="color:#f67400">2</span> <span style="color:#3f8058">*</span> np.pi <span style="color:#3f8058">*</span> r
+fig, ax <span style="color:#3f8058">=</span> plt.subplots(
+  subplot_kw <span style="color:#3f8058">=</span> {<span style="color:#f44f4f">'</span><span style="color:#f44f4f">projection</span><span style="color:#f44f4f">'</span>: <span style="color:#f44f4f">'</span><span style="color:#f44f4f">polar</span><span style="color:#f44f4f">'</span>} 
+)
+ax.plot(theta, r)
+ax.set_rticks([<span style="color:#f67400">0.5</span>, <span style="color:#f67400">1</span>, <span style="color:#f67400">1.5</span>, <span style="color:#f67400">2</span>])
+ax.grid(<span style="color:#27aeae">True</span>)
+plt.show()
+<span style="color:#2980b9;background-color:#153042">```</span>
+
+<span style="color:#2980b9;background-color:#153042">```{julia}</span>
+<span style="color:#7a7c7d">#| label: fig-parametric</span>
+<span style="color:#7a7c7d">#| fig-cap: "Parametric Plots"</span>
+
+<span style="color:#27ae60">using</span> <span style="color:#609ca0">Plots</span>
+
+<span style="color:#8e44ad">plot</span>(sin, 
+     <span style="color:#8e44ad">x->sin</span>(<span style="color:#f67400">2</span>x), 
+     <span style="color:#f67400">0</span>, 
+     <span style="color:#f67400">2</span>π, 
+     leg<span style="color:#3f8058">=</span><span style="color:#27aeae;font-weight:bold">false</span>, 
+     fill<span style="color:#3f8058">=</span>(<span style="color:#f67400">0</span>,<span style="color:#3f8058">:</span>lavender))
+<span style="color:#2980b9;background-color:#153042">```</span>
+
+<span style="color:#2980b9;background-color:#153042">```{ojs}</span>
+viewof bill_length_min <span style="color:#3f8058">=</span> Inputs<span style="color:#3f8058">.</span><span style="color:#8e44ad">range</span>(
+  [<span style="color:#f67400">32</span><span style="color:#3f8058">,</span> <span style="color:#f67400">50</span>]<span style="color:#3f8058">,</span> 
+  {<span style="color:#2980b9">value</span><span style="color:#3f8058">:</span> <span style="color:#f67400">35</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">step</span><span style="color:#3f8058">:</span> <span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#2980b9">label</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"Bill length (min):"</span>}
+)
+viewof islands <span style="color:#3f8058">=</span> Inputs<span style="color:#3f8058">.</span><span style="color:#8e44ad">checkbox</span>(
+  [<span style="color:#f44f4f">"Torgersen"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"Biscoe"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"Dream"</span>]<span style="color:#3f8058">,</span> 
+  { <span style="color:#2980b9">value</span><span style="color:#3f8058">:</span> [<span style="color:#f44f4f">"Torgersen"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"Biscoe"</span>]<span style="color:#3f8058">,</span> 
+    <span style="color:#2980b9">label</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"Islands:"</span>
+  }
+)
+<span style="color:#2980b9;background-color:#153042">```</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/example.qmd.html 6.19.0-0ubuntu1/autotests/html/example.qmd.html
--- 6.18.0-1/autotests/html/example.qmd.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/example.qmd.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>example.qmd</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Quarto) - Theme (Breeze Light)"/>
+</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
+---
+<span style="color:#644a9b;font-weight:bold">title</span><span style="font-weight:bold">:</span><span style="color:#0057ae"> </span><span style="color:#bf0303">"Hello, Quarto"</span>
+<span style="color:#644a9b;font-weight:bold">format</span><span style="font-weight:bold">:</span><span style="color:#0057ae"> html</span>
+<span style="color:#644a9b;font-weight:bold">editor</span><span style="font-weight:bold">:</span><span style="color:#0057ae"> visual</span>
+---
+
+<span style="color:#0057ae;background-color:#e0e9f8">```{r}</span>
+<span style="color:#898887">#| label: load-packages</span>
+<span style="color:#898887">#| include: false</span>
+
+<span style="color:#644a9b">library</span>(tidyverse)
+<span style="color:#644a9b">library</span>(palmerpenguins)
+<span style="color:#0057ae;background-color:#e0e9f8">```</span>
+
+<span style="color:#644a9b;font-weight:bold">## This example</span>
+
+This example code mostly from the Quatro guide: <span style="text-decoration:underline">https://quarto.org/docs/guide/</span> . GPL-2.
+
+Quarto is very similar to R markdown, but also allows (inline) code blocks in Python, Julia, and Observable JS.
+
+<span style="color:#644a9b;font-weight:bold">## Meet Quarto</span>
+
+Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <span style="color:#006e28">&lt;</span><span style="color:#006e28;text-decoration:underline">https://quarto.org</span><span style="color:#006e28">></span>.
+
+<span style="color:#644a9b;font-weight:bold">## Meet the penguins</span>
+
+<span style="color:#bf0303;background-color:#f7e6e6">![](</span><span style="color:#bf0303;background-color:#f7e6e6;text-decoration:underline">https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png</span><span style="color:#bf0303;background-color:#f7e6e6">)</span>{style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}
+
+The <span style="color:#b08000">`penguins`</span> data from the <span style="color:#898887">[</span><span style="color:#006e28;text-decoration:underline">**palmerpenguins**</span><span style="color:#898887">](</span><span style="color:#898887;text-decoration:underline">https://allisonhorst.github.io/palmerpenguins</span><span style="color:#898887"> "palmerpenguins R package")</span> package contains size measurements for <span style="color:#0057ae;background-color:#e0e9f8">`{r}</span> <span style="color:#644a9b">nrow</span>(penguins)<span style="color:#0057ae;background-color:#e0e9f8">`</span> penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.
+
+The plot below shows the relationship between flipper and bill lengths of these penguins.
+
+<span style="color:#0057ae;background-color:#e0e9f8">```{r}</span>
+<span style="color:#898887">#| label: plot-penguins</span>
+<span style="color:#898887">#| warning: false</span>
+<span style="color:#898887">#| echo: false</span>
+<span style="color:#898887"># </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span><span style="color:#898887">: We may want to add some sort of ighlighting for the above rendering options</span>
+
+<span style="color:#644a9b">ggplot</span>(penguins, 
+       <span style="color:#644a9b">aes</span>(<span style="color:#0057ae">x =</span> flipper_length_mm, <span style="color:#0057ae">y =</span> bill_length_mm)) <span style="color:#3daee9">+</span>
+  <span style="color:#644a9b">geom_point</span>(<span style="color:#644a9b">aes</span>(<span style="color:#0057ae">color =</span> species, <span style="color:#0057ae">shape =</span> species)) <span style="color:#3daee9">+</span>
+  <span style="color:#644a9b">scale_color_manual</span>(<span style="color:#0057ae">values =</span> <span style="color:#644a9b">c</span>(<span style="color:#bf0303">"darkorange"</span>,<span style="color:#bf0303">"purple"</span>,<span style="color:#bf0303">"cyan4"</span>)) <span style="color:#3daee9">+</span>
+  <span style="color:#644a9b">labs</span>(
+    <span style="color:#0057ae">title =</span> <span style="color:#bf0303">"Flipper and bill length"</span>,
+    <span style="color:#0057ae">subtitle =</span> <span style="color:#bf0303">"Dimensions for penguins at Palmer Station LTER"</span>,
+    <span style="color:#0057ae">x =</span> <span style="color:#bf0303">"Flipper length (mm)"</span>, <span style="color:#0057ae">y =</span> <span style="color:#bf0303">"Bill length (mm)"</span>,
+    <span style="color:#0057ae">color =</span> <span style="color:#bf0303">"Penguin species"</span>, <span style="color:#0057ae">shape =</span> <span style="color:#bf0303">"Penguin species"</span>
+  ) <span style="color:#3daee9">+</span>
+  <span style="color:#644a9b">theme_minimal</span>()
+<span style="color:#0057ae;background-color:#e0e9f8">```</span>
+
+
+<span style="color:#0057ae;background-color:#e0e9f8">```{python}</span>
+<span style="color:#898887">#| label: fig-polar</span>
+<span style="color:#898887">#| fig-cap: "A line plot on a polar axis"</span>
+
+<span style="color:#ff5500">import</span> numpy <span style="color:#ff5500">as</span> np
+<span style="color:#ff5500">import</span> matplotlib.pyplot <span style="color:#ff5500">as</span> plt
+
+r <span style="color:#ca60ca">=</span> np.arange(<span style="color:#b08000">0</span>, <span style="color:#b08000">2</span>, <span style="color:#b08000">0.01</span>)
+theta <span style="color:#ca60ca">=</span> <span style="color:#b08000">2</span> <span style="color:#ca60ca">*</span> np.pi <span style="color:#ca60ca">*</span> r
+fig, ax <span style="color:#ca60ca">=</span> plt.subplots(
+  subplot_kw <span style="color:#ca60ca">=</span> {<span style="color:#bf0303">'</span><span style="color:#bf0303">projection</span><span style="color:#bf0303">'</span>: <span style="color:#bf0303">'</span><span style="color:#bf0303">polar</span><span style="color:#bf0303">'</span>} 
+)
+ax.plot(theta, r)
+ax.set_rticks([<span style="color:#b08000">0.5</span>, <span style="color:#b08000">1</span>, <span style="color:#b08000">1.5</span>, <span style="color:#b08000">2</span>])
+ax.grid(<span style="color:#0057ae">True</span>)
+plt.show()
+<span style="color:#0057ae;background-color:#e0e9f8">```</span>
+
+<span style="color:#0057ae;background-color:#e0e9f8">```{julia}</span>
+<span style="color:#898887">#| label: fig-parametric</span>
+<span style="color:#898887">#| fig-cap: "Parametric Plots"</span>
+
+<span style="color:#ff5500">using</span> <span style="color:#644a9b;font-weight:bold">Plots</span>
+
+<span style="color:#644a9b">plot</span>(sin, 
+     <span style="color:#644a9b">x->sin</span>(<span style="color:#b08000">2</span>x), 
+     <span style="color:#b08000">0</span>, 
+     <span style="color:#b08000">2</span>π, 
+     leg<span style="color:#ca60ca">=</span><span style="color:#aa5500">false</span>, 
+     fill<span style="color:#ca60ca">=</span>(<span style="color:#b08000">0</span>,<span style="color:#ca60ca">:</span>lavender))
+<span style="color:#0057ae;background-color:#e0e9f8">```</span>
+
+<span style="color:#0057ae;background-color:#e0e9f8">```{ojs}</span>
+viewof bill_length_min <span style="color:#ca60ca">=</span> Inputs<span style="color:#ca60ca">.</span><span style="color:#644a9b">range</span>(
+  [<span style="color:#b08000">32</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">50</span>]<span style="color:#ca60ca">,</span> 
+  {<span style="color:#0057ae">value</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">35</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">step</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">label</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"Bill length (min):"</span>}
+)
+viewof islands <span style="color:#ca60ca">=</span> Inputs<span style="color:#ca60ca">.</span><span style="color:#644a9b">checkbox</span>(
+  [<span style="color:#bf0303">"Torgersen"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"Biscoe"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"Dream"</span>]<span style="color:#ca60ca">,</span> 
+  { <span style="color:#0057ae">value</span><span style="color:#ca60ca">:</span> [<span style="color:#bf0303">"Torgersen"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"Biscoe"</span>]<span style="color:#ca60ca">,</span> 
+    <span style="color:#0057ae">label</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"Islands:"</span>
+  }
+)
+<span style="color:#0057ae;background-color:#e0e9f8">```</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/systemd-unit.service.dark.html 6.19.0-0ubuntu1/autotests/html/systemd-unit.service.dark.html
--- 6.18.0-1/autotests/html/systemd-unit.service.dark.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/systemd-unit.service.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -72,7 +72,7 @@
 <span style="color:#2980b9">ExecCondition</span> = /bin/exec/condition
 <span style="color:#2980b9">ExecReload</span> = /bin/exec/reload
 <span style="color:#2980b9">ExecStop</span> = /bin/kill -SIGABRT <span style="color:#27aeae">$MAINPID</span>
-<span style="color:#2980b9">ExecStopPost</span> = <span style="color:#da4453">-:!!</span>/bin/stop/post
+<span style="color:#2980b9">ExecStopPost</span> = <span style="color:#da4453">-:!</span>/bin/stop/post
 <span style="color:#2980b9">RestartSec</span> = <span style="color:#f67400">15</span>
 <span style="color:#2980b9">RestartSteps</span> = <span style="color:#f67400">2</span>
 <span style="color:#2980b9">RestartMaxDelaySec</span> = <span style="color:#f67400">150</span><span style="font-style:italic">ms</span>
@@ -205,6 +205,12 @@
 <span style="color:#2980b9">CacheDirectory</span> = some/dir
 <span style="color:#2980b9">LogsDirectory</span> = some/dir
 <span style="color:#2980b9">ConfigurationDirectory</span> = some/dir
+<span style="color:#2980b9">StateDirectoryQuota</span> = <span style="color:#f67400">2</span><span style="font-style:italic">G</span>
+<span style="color:#2980b9">CacheDirectoryQuota</span> = <span style="color:#27aeae;font-weight:bold">off</span>
+<span style="color:#2980b9">LogsDirectoryQuota</span> = <span style="color:#f67400">70</span><span style="font-style:italic">%</span>
+<span style="color:#2980b9">StateDirectoryAccounting</span> = <span style="color:#27aeae;font-weight:bold">false</span>
+<span style="color:#2980b9">CacheDirectoryAccounting</span> = <span style="color:#27aeae;font-weight:bold">false</span>
+<span style="color:#2980b9">LogsDirectoryAccounting</span> = <span style="color:#27aeae;font-weight:bold">false</span>
 <span style="color:#2980b9">RuntimeDirectoryMode</span> = <span style="color:#f67400">0755</span>
 <span style="color:#2980b9">StateDirectoryMode</span> = <span style="color:#f67400">0755</span>
 <span style="color:#2980b9">CacheDirectoryMode</span> = <span style="color:#f67400">0755</span>
@@ -233,6 +239,16 @@
   <span style="color:#27aeae;font-weight:bold">@temporary</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">cgroup</span> <span style="color:#27aeae;font-weight:bold">net</span> <span style="color:#fdbc4b;font-weight:bold">\</span>
   <span style="color:#27aeae;font-weight:bold">ipc</span>
+<span style="color:#2980b9">DelegateNamespaces</span> = <span style="color:#27aeae;font-weight:bold">pid</span> <span style="color:#27aeae;font-weight:bold">uts</span>
+<span style="color:#2980b9">PrivateBPF</span> = <span style="color:#27aeae;font-weight:bold">true</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInetIngress</span> <span style="color:#fdbc4b;font-weight:bold">\</span>
+  <span style="color:#27aeae;font-weight:bold">BPFCgroupSockOps</span> <span style="color:#27aeae;font-weight:bold">BPFCgroupSockOps</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapCreate</span> <span style="color:#27aeae;font-weight:bold">BPFProgLoad</span> <span style="color:#fdbc4b;font-weight:bold">\</span>
+  <span style="color:#27aeae;font-weight:bold">BPFProgTestRun</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeUnspec</span> <span style="color:#fdbc4b;font-weight:bold">\</span>
+  <span style="color:#27aeae;font-weight:bold">BPFMapTypeQueue</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeXdp</span> <span style="color:#fdbc4b;font-weight:bold">\</span>
+  <span style="color:#27aeae;font-weight:bold">BPFProgTypeXdp</span>
 <span style="color:#2980b9">LockPersonality</span> = <span style="color:#27aeae;font-weight:bold">yes</span>
 <span style="color:#2980b9">MemoryDenyWriteExecute</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#2980b9">RestrictRealtime</span> = <span style="color:#27aeae;font-weight:bold">true</span>
@@ -292,7 +308,6 @@
 <span style="color:#2980b9">WatchdogSignal</span> = <span style="color:#27aeae;font-weight:bold">SIGQUIT</span>
 
 <span style="color:#7a7c7d">## from systemd.resource-control</span>
-<span style="color:#2980b9">CPUAccounting</span> = <span style="color:#27aeae;font-weight:bold">yes</span>
 <span style="color:#2980b9">CPUWeight</span> = <span style="color:#f67400">1234</span>
 <span style="color:#2980b9">StartupCPUWeight</span> = <span style="color:#f67400">321</span>
 <span style="color:#2980b9">CPUQuota</span> = <span style="color:#f67400">123.4</span><span style="font-style:italic">%</span>
@@ -349,6 +364,8 @@
 
 
 <span style="font-weight:bold">[Slice]</span>
+<span style="color:#2980b9">ConcurrencyHardMax</span> = <span style="color:#f67400">20</span>
+<span style="color:#2980b9">ConcurrencySoftMax</span> = <span style="color:#27aeae;font-weight:bold">infinity</span>
 <span style="color:#7a7c7d"># The Slice section may include options of the resource-control option group.</span>
 <span style="color:#7a7c7d"># See [Service] for available options of systemd.resource-control.</span>
 
@@ -399,8 +416,10 @@
 <span style="color:#2980b9">Transparent</span> = <span style="color:#27aeae;font-weight:bold">no</span>
 <span style="color:#2980b9">Broadcast</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#2980b9">PassCredentials</span> = <span style="color:#27aeae;font-weight:bold">yes</span>
+<span style="color:#2980b9">PassPIDFD</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#2980b9">PassSecurity</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#2980b9">PassPacketInfo</span> = <span style="color:#27aeae;font-weight:bold">true</span>
+<span style="color:#2980b9">AcceptFileDescriptors</span> = <span style="color:#27aeae;font-weight:bold">no</span>
 <span style="color:#2980b9">Timestamping</span> = <span style="color:#27aeae;font-weight:bold">nsec</span>
 <span style="color:#2980b9">TCPCongestion</span> = westwood
 <span style="color:#2980b9">ExecStartPre</span> = <span style="color:#da4453">+</span>/usr/bin/start/pre
@@ -416,6 +435,8 @@
 <span style="color:#2980b9">TriggerLimitBurst</span> = <span style="color:#f67400">50</span>
 <span style="color:#2980b9">PollLimitIntervalSec</span> = <span style="color:#f67400">1</span><span style="font-style:italic">s</span> <span style="color:#f67400">300</span><span style="font-style:italic">ms</span>
 <span style="color:#2980b9">PollLimitBurst</span> = <span style="color:#f67400">120</span>
+<span style="color:#2980b9">DeferTrigger</span> = <span style="color:#27aeae;font-weight:bold">patient</span>
+<span style="color:#2980b9">DeferTriggerMaxSec</span> = <span style="color:#27aeae;font-weight:bold">infinity</span>
 <span style="color:#2980b9">PassFileDescriptorsToExec</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#7a7c7d"># see [Service] for options from systemd.exec and systemd.kill</span>
 
@@ -439,6 +460,7 @@
 <span style="color:#2980b9">OnCalendar</span> = <span style="color:#27aeae;font-weight:bold">daily</span>
 <span style="color:#2980b9">AccuracySec</span> = <span style="color:#f67400">1</span><span style="font-style:italic">min</span> <span style="color:#f67400">10</span><span style="font-style:italic">sec</span>
 <span style="color:#2980b9">RandomizedDelaySec</span> = <span style="color:#f67400">30</span><span style="font-style:italic">s</span>
+<span style="color:#2980b9">RandomizedOffsetSec</span> = <span style="color:#f67400">20</span><span style="font-style:italic">s</span>
 <span style="color:#2980b9">FixedRandomDelay</span> = <span style="color:#27aeae;font-weight:bold">yes</span>
 <span style="color:#2980b9">DeferReactivation</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#2980b9">OnClockChange</span> = <span style="color:#27aeae;font-weight:bold">false</span>
@@ -499,6 +521,7 @@
 <span style="color:#2980b9">ConditionHost</span> = <span style="color:#da4453">!</span>shodan<span style="color:#3daee9">*</span>
 <span style="color:#2980b9">ConditionKernelCommandLine</span> = <span style="color:#da4453">!</span>kernel_option
 <span style="color:#2980b9">ConditionKernelVersion</span> = <span style="color:#da4453">| </span>>= 4.<span style="color:#3daee9">*</span>
+<span style="color:#2980b9">ConditionVersion</span> = kernel >= 4.<span style="color:#3daee9">*</span>
 <span style="color:#2980b9">ConditionCredential</span> = name
 <span style="color:#2980b9">ConditionEnvironment</span> = SOME_ENVIRONMENT_VARIABLE=some_value
 <span style="color:#2980b9">ConditionSecurity</span> = <span style="color:#da4453">| !</span> <span style="color:#27aeae;font-weight:bold">selinux</span>
@@ -526,6 +549,7 @@
 <span style="color:#2980b9">ConditionMemoryPressure</span> = <span style="color:#f67400">20</span>%<span style="color:#da4453">/</span><span style="color:#27aeae;font-weight:bold;font-style:italic">5min</span>
 <span style="color:#2980b9">ConditionCPUPressure</span> = <span style="color:#f67400">12</span>%<span style="color:#da4453">/</span><span style="color:#27aeae;font-weight:bold;font-style:italic">10sec</span>
 <span style="color:#2980b9">ConditionIOPressure</span> = <span style="color:#f67400">30</span>% <span style="color:#da4453">/</span> <span style="color:#27aeae;font-weight:bold;font-style:italic">1min</span>
+<span style="color:#2980b9">ConditionKernelModuleLoaded</span> = modulename
 <span style="color:#2980b9">AssertArchitecture</span> = <span style="color:#27aeae;font-weight:bold">x86</span>
 <span style="color:#2980b9">AssertVirtualization</span> = <span style="color:#da4453">|</span><span style="color:#27aeae;font-weight:bold">vmware</span>
 <span style="color:#2980b9">AssertHost</span> = <span style="color:#da4453">!</span>shodan<span style="color:#3daee9">*</span>
@@ -956,6 +980,7 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">mnt</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">net</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">pid</span>
+<span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">time</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">user</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">uts</span>
 <span style="color:#2980b9">RestrictNamespaces</span> = <span style="color:#27aeae;font-weight:bold">cgroup</span> <span style="color:#27aeae;font-weight:bold">uts</span>
@@ -1093,6 +1118,214 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">StopWhenUnneeded</span> = <span style="color:#27aeae;font-weight:bold">false</span> true
 
 
+<span style="color:#7a7c7d">###### bpf delegate attachments</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInetIngress</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInetEgress</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInetSockCreate</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupSockOps</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkSkbStreamParser</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkSkbStreamVerdict</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupDevice</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkMsgVerdict</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet4Bind</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet6Bind</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet4Connect</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet6Connect</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet4PostBind</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet6PostBind</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUdp4Sendmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUdp6Sendmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFLircMode2</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFFlowDissector</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupSysctl</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUdp4Recvmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUdp6Recvmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupGetsockopt</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupSetsockopt</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceRawTp</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceFentry</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceFexit</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFModifyReturn</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFLsmMac</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceIter</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet4Getpeername</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet6Getpeername</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet4Getsockname</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInet6Getsockname</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFXdpDevmap</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupInetSockRelease</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFXdpCpumap</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkLookup</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFXdp</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkSkbVerdict</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkReuseportSelect</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFSkReuseportSelectOrMigrate</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFPerfEvent</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceKprobeMulti</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFLsmCgroup</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFStructOps</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFNetfilter</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTcxIngress</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTcxEgress</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceUprobeMulti</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUnixConnect</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUnixSendmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUnixRecvmsg</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUnixGetpeername</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFCgroupUnixGetsockname</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFNetkitPrimary</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFNetkitPeer</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceKprobeSession</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = <span style="color:#27aeae;font-weight:bold">BPFTraceUprobeSession</span>
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">BPFDelegateAttachments</span> = invalid
+
+
+<span style="color:#7a7c7d">###### bpf delegate commands</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFTokenCreate</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFTaskFdQuery</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFRawTracepointOpen</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTestRun</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgStreamReadByFd</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgQuery</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgLoad</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgGetNextId</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgGetFdById</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgDetach</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgBindMap</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFProgAttach</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFObjPin</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFObjGetInfoByFd</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFObjGet</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapUpdateElem</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapUpdateBatch</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapLookupElem</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapLookupBatch</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapLookupAndDeleteElem</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapLookupAndDeleteBatch</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapGetNextKey</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapGetNextId</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapGetFdById</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapFreeze</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapDeleteElem</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapDeleteBatch</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFMapCreate</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFLinkUpdate</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFLinkGetNextId</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFLinkGetFdById</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFLinkDetach</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFLinkCreate</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFIterCreate</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFEnableStats</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFBtfLoad</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFBtfGetNextId</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = <span style="color:#27aeae;font-weight:bold">BPFBtfGetFdById</span>
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">BPFDelegateCommands</span> = invalid
+
+
+<span style="color:#7a7c7d">###### bpf delegate maps</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeUnspec</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeHash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeArray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeProgArray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypePerfEventArray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypePercpuHash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypePercpuArray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeStackTrace</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeCgroupArray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeLruHash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeLruPercpuHash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeLpmTrie</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeArrayOfMaps</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeHashOfMaps</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeDevmap</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeSockmap</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeCpumap</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeXskmap</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeSockhash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeCgroupStorageDeprecated</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeReuseportSockarray</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypePercpuCgroupStorageDeprecated</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeQueue</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeStack</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeSkStorage</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeDevmapHash</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeStructOps</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeRingbuf</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeInodeStorage</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeTaskStorage</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeBloomFilter</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeUserRingbuf</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeCgrpStorage</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = <span style="color:#27aeae;font-weight:bold">BPFMapTypeArena</span>
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">BPFDelegateMaps</span> = invalid
+
+
+<span style="color:#7a7c7d">###### bpf delegate programs</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeUnspec</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSocketFilter</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeKprobe</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSchedCls</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSchedAct</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeTracepoint</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeXdp</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypePerfEvent</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupSkb</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupSock</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLwtIn</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLwtOut</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLwtXmit</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSockOps</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSkSkb</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupDevice</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSkMsg</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeRawTracepoint</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupSockAddr</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLwtSeg6local</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLircMode2</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSkReuseport</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeFlowDissector</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupSysctl</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeRawTracepointWritable</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeCgroupSockopt</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeTracing</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeStructOps</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeExt</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeLsm</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeSkLookup</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = <span style="color:#27aeae;font-weight:bold">BPFProgTypeNetfilter</span>
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">BPFDelegatePrograms</span> = invalid
+
+
+<span style="color:#7a7c7d">###### bpf program type</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">sysctl</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">sock_ops</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">sock_create</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">setsockopt</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">sendmsg6</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">sendmsg4</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">recvmsg6</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">recvmsg4</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">post_bind6</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">post_bind4</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">ingress</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">getsockopt</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">egress</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">device</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">connect6</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">connect4</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">bind6</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">bind4</span>
+<span style="color:#2980b9">BPFProgram</span> = <span style="color:#27aeae;font-weight:bold">bind6</span>:/sys/fs/bpf/sock-addr-hook
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">BPFProgram</span> = invalid
+
+
 <span style="color:#7a7c7d">###### calendar</span>
 <span style="font-weight:bold">[Timer]</span>
 <span style="color:#2980b9">OnCalendar</span> = <span style="color:#27aeae;font-weight:bold">daily</span>
@@ -1289,13 +1522,13 @@ WantedBy = some.service some.socket
 <span style="color:#7a7c7d">###### controller list</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#7a7c7d"># single controller</span>
-<span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">blkio</span>
+<span style="color:#2980b9">DisableControllers</span> = blkio
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">bpf-devices</span>
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">bpf-firewall</span>
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">cpu</span>
-<span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">cpuacct</span>
+<span style="color:#2980b9">DisableControllers</span> = cpuacct
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">cpuset</span>
-<span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">devices</span>
+<span style="color:#2980b9">DisableControllers</span> = devices
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">io</span>
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">memory</span>
 <span style="color:#2980b9">DisableControllers</span> = <span style="color:#27aeae;font-weight:bold">pids</span>
@@ -1446,19 +1679,29 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">CPUWeight</span> = 1 <span style="color:#f67400">10000</span>
 
 
+<span style="color:#7a7c7d">###### defer trigger</span>
+<span style="font-weight:bold">[Socket]</span>
+<span style="color:#2980b9">DeferTrigger</span> = <span style="color:#27aeae;font-weight:bold">patient</span>
+<span style="color:#7a7c7d"># single boolean</span>
+<span style="color:#2980b9">DeferTrigger</span> = <span style="color:#27aeae;font-weight:bold">false</span>
+<span style="color:#2980b9">DeferTrigger</span> = <span style="color:#27aeae;font-weight:bold">true</span>
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">DeferTrigger</span> = i<span style="color:#27aeae;font-weight:bold">n</span>valid
+<span style="color:#7a7c7d"># multiple values</span>
+<span style="color:#2980b9">DeferTrigger</span> = <span style="color:#27aeae;font-weight:bold">patient</span> true
+
+
+
 <span style="color:#7a7c7d">###### delegate</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#7a7c7d"># single boolean</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">false</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">true</span>
 <span style="color:#7a7c7d"># single controller</span>
-<span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">blkio</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">bpf-devices</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">bpf-firewall</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">cpu</span>
-<span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">cpuacct</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">cpuset</span>
-<span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">devices</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">io</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">memory</span>
 <span style="color:#2980b9">Delegate</span> = <span style="color:#27aeae;font-weight:bold">pids</span>
@@ -1520,25 +1763,24 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">ExecStart</span> = cmd1 <span style="color:#3daee9">%h</span> arg1_1 <span style="color:#27aeae">$var1</span>, cmd2 <span style="color:#3daee9">%u</span> arg2_1 <span style="color:#27aeae">$var2_1</span><span style="color:#fdbc4b;font-weight:bold">\</span>
   <span style="color:#27aeae">$var2_2</span>
 <span style="color:#7a7c7d"># escapes (not exactly the same as detected by HlCStringChar)</span>
-<span style="color:#2980b9">ExecStart</span> = cmd \, <span style="color:#3daee9">\'</span> <span style="color:#3daee9">\"</span> \\ \a <span style="color:#3daee9">\b</span> <span style="color:#3daee9">\f</span> <span style="color:#3daee9">\n</span> <span style="color:#3daee9">\r</span> <span style="color:#3daee9">\s</span> <span style="color:#3daee9">\t</span> <span style="color:#3daee9">\v</span> <span style="color:#3daee9">\x0A</span> <span style="color:#3daee9">\012</span> <span style="color:#3daee9">\u1234</span> <span style="color:#3daee9">\U12abcdef</span>
-<span style="color:#7a7c7d"># prefix</span>
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@</span>/some/cmd arg "@!+-:"
+<span style="color:#2980b9">ExecStart</span> = cmd <span style="color:#3daee9">\'</span> <span style="color:#3daee9">\"</span> <span style="color:#3daee9">\\</span> <span style="color:#3daee9">\a</span> <span style="color:#3daee9">\b</span> <span style="color:#3daee9">\f</span> <span style="color:#3daee9">\n</span> <span style="color:#3daee9">\r</span> <span style="color:#3daee9">\s</span> <span style="color:#3daee9">\t</span> <span style="color:#3daee9">\v</span> <span style="color:#3daee9">\x0A</span> <span style="color:#3daee9">\012</span> <span style="color:#3daee9">\u1234</span> <span style="color:#3daee9">\U12abcdef</span>
+
+
+<span style="color:#7a7c7d">###### exec prefix</span>
+<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@</span>/some/cmd arg "@-:+!|"
 <span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">-</span>/some/cmd-1 -option arg
 <span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">:</span>/some/cmd arg
 <span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">+</span>/some/cmd arg
 <span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">!</span>/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">!!</span>/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@:-!!</span>/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@!!-:</span>/some/cmd arg
+<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">|</span>/some/cmd arg
+<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@:-!</span>/some/cmd arg
+<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@!-:</span>/some/cmd arg
 <span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@:-+</span>/some/cmd arg
 <span style="color:#7a7c7d">## invalid values</span>
 <span style="color:#7a7c7d"># invalid prefix</span>
 <span style="color:#2980b9">ExecStart</span> = @ /some/cmd arg
 <span style="color:#2980b9">ExecStart</span> = @ -/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">+</span>!/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">!!</span>!/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@</span>+@/some/cmd arg
-<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">@!!</span>+/some/cmd arg
+<span style="color:#2980b9">ExecStart</span> = <span style="color:#da4453">+</span>! /some/cmd arg
 
 
 <span style="color:#7a7c7d">###### exit status</span>
@@ -1718,7 +1960,6 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">ocfs2</span>
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">overlay</span>
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">proc</span>
-<span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">reiserfs</span>
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">tmpfs</span>
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">tracefs</span>
 <span style="color:#2980b9">Type</span> = <span style="color:#27aeae;font-weight:bold">udf</span>
@@ -2135,6 +2376,7 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">ignore-dependencies</span>
 <span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">ignore-requirements</span>
 <span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">isolate</span>
+<span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">lenient</span>
 <span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">replace</span>
 <span style="color:#2980b9">OnFailureJobMode</span> = <span style="color:#27aeae;font-weight:bold">replace-irreversibly</span>
 <span style="color:#7a7c7d">## invalid values</span>
@@ -2253,6 +2495,7 @@ WantedBy = some.service some.socket
 
 <span style="color:#7a7c7d">###### private users</span>
 <span style="font-weight:bold">[Service]</span>
+<span style="color:#2980b9">PrivateUsers</span> = <span style="color:#27aeae;font-weight:bold">full</span>
 <span style="color:#2980b9">PrivateUsers</span> = <span style="color:#27aeae;font-weight:bold">identity</span>
 <span style="color:#2980b9">PrivateUsers</span> = <span style="color:#27aeae;font-weight:bold">self</span>
 <span style="color:#7a7c7d">## should accept any boolean value</span>
@@ -2312,6 +2555,18 @@ WantedBy = some.service some.socket
 <span style="color:#2980b9">ProtectHome</span> = <span style="color:#27aeae;font-weight:bold">tmpfs</span> true
 
 
+<span style="color:#7a7c7d">###### protect hostname</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#2980b9">ProtectHostname</span> = <span style="color:#27aeae;font-weight:bold">private</span>
+<span style="color:#2980b9">ProtectHostname</span> = <span style="color:#27aeae;font-weight:bold">private</span>:host.example.com
+<span style="color:#2980b9">ProtectHostname</span> = <span style="color:#27aeae;font-weight:bold">true</span>
+<span style="color:#2980b9">ProtectHostname</span> = <span style="color:#27aeae;font-weight:bold">yes</span>:somehostname
+<span style="color:#7a7c7d">## invalid values</span>
+<span style="color:#2980b9">ProtectHostname</span> = i<span style="color:#27aeae;font-weight:bold">n</span>valid
+<span style="color:#7a7c7d"># multiple values</span>
+<span style="color:#2980b9">ProtectHostname</span> = <span style="color:#27aeae;font-weight:bold">private</span> true
+
+
 <span style="color:#7a7c7d">###### protect system</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#2980b9">ProtectSystem</span> = <span style="color:#27aeae;font-weight:bold">full</span>
diff -pruN 6.18.0-1/autotests/html/systemd-unit.service.html 6.19.0-0ubuntu1/autotests/html/systemd-unit.service.html
--- 6.18.0-1/autotests/html/systemd-unit.service.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/systemd-unit.service.html	2025-10-05 12:41:31.000000000 +0000
@@ -72,7 +72,7 @@
 <span style="color:#0057ae">ExecCondition</span> = /bin/exec/condition
 <span style="color:#0057ae">ExecReload</span> = /bin/exec/reload
 <span style="color:#0057ae">ExecStop</span> = /bin/kill -SIGABRT <span style="color:#0057ae">$MAINPID</span>
-<span style="color:#0057ae">ExecStopPost</span> = <span style="color:#ff5500">-:!!</span>/bin/stop/post
+<span style="color:#0057ae">ExecStopPost</span> = <span style="color:#ff5500">-:!</span>/bin/stop/post
 <span style="color:#0057ae">RestartSec</span> = <span style="color:#b08000">15</span>
 <span style="color:#0057ae">RestartSteps</span> = <span style="color:#b08000">2</span>
 <span style="color:#0057ae">RestartMaxDelaySec</span> = <span style="color:#b08000">150</span><span style="font-style:italic">ms</span>
@@ -205,6 +205,12 @@
 <span style="color:#0057ae">CacheDirectory</span> = some/dir
 <span style="color:#0057ae">LogsDirectory</span> = some/dir
 <span style="color:#0057ae">ConfigurationDirectory</span> = some/dir
+<span style="color:#0057ae">StateDirectoryQuota</span> = <span style="color:#b08000">2</span><span style="font-style:italic">G</span>
+<span style="color:#0057ae">CacheDirectoryQuota</span> = <span style="color:#aa5500">off</span>
+<span style="color:#0057ae">LogsDirectoryQuota</span> = <span style="color:#b08000">70</span><span style="font-style:italic">%</span>
+<span style="color:#0057ae">StateDirectoryAccounting</span> = <span style="color:#aa5500">false</span>
+<span style="color:#0057ae">CacheDirectoryAccounting</span> = <span style="color:#aa5500">false</span>
+<span style="color:#0057ae">LogsDirectoryAccounting</span> = <span style="color:#aa5500">false</span>
 <span style="color:#0057ae">RuntimeDirectoryMode</span> = <span style="color:#b08000">0755</span>
 <span style="color:#0057ae">StateDirectoryMode</span> = <span style="color:#b08000">0755</span>
 <span style="color:#0057ae">CacheDirectoryMode</span> = <span style="color:#b08000">0755</span>
@@ -233,6 +239,16 @@
   <span style="color:#aa5500">@temporary</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">cgroup</span> <span style="color:#aa5500">net</span> <span style="font-weight:bold">\</span>
   <span style="color:#aa5500">ipc</span>
+<span style="color:#0057ae">DelegateNamespaces</span> = <span style="color:#aa5500">pid</span> <span style="color:#aa5500">uts</span>
+<span style="color:#0057ae">PrivateBPF</span> = <span style="color:#aa5500">true</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInetIngress</span> <span style="font-weight:bold">\</span>
+  <span style="color:#aa5500">BPFCgroupSockOps</span> <span style="color:#aa5500">BPFCgroupSockOps</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapCreate</span> <span style="color:#aa5500">BPFProgLoad</span> <span style="font-weight:bold">\</span>
+  <span style="color:#aa5500">BPFProgTestRun</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeUnspec</span> <span style="font-weight:bold">\</span>
+  <span style="color:#aa5500">BPFMapTypeQueue</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeXdp</span> <span style="font-weight:bold">\</span>
+  <span style="color:#aa5500">BPFProgTypeXdp</span>
 <span style="color:#0057ae">LockPersonality</span> = <span style="color:#aa5500">yes</span>
 <span style="color:#0057ae">MemoryDenyWriteExecute</span> = <span style="color:#aa5500">true</span>
 <span style="color:#0057ae">RestrictRealtime</span> = <span style="color:#aa5500">true</span>
@@ -292,7 +308,6 @@
 <span style="color:#0057ae">WatchdogSignal</span> = <span style="color:#aa5500">SIGQUIT</span>
 
 <span style="color:#898887">## from systemd.resource-control</span>
-<span style="color:#0057ae">CPUAccounting</span> = <span style="color:#aa5500">yes</span>
 <span style="color:#0057ae">CPUWeight</span> = <span style="color:#b08000">1234</span>
 <span style="color:#0057ae">StartupCPUWeight</span> = <span style="color:#b08000">321</span>
 <span style="color:#0057ae">CPUQuota</span> = <span style="color:#b08000">123.4</span><span style="font-style:italic">%</span>
@@ -349,6 +364,8 @@
 
 
 <span style="font-weight:bold">[Slice]</span>
+<span style="color:#0057ae">ConcurrencyHardMax</span> = <span style="color:#b08000">20</span>
+<span style="color:#0057ae">ConcurrencySoftMax</span> = <span style="color:#aa5500">infinity</span>
 <span style="color:#898887"># The Slice section may include options of the resource-control option group.</span>
 <span style="color:#898887"># See [Service] for available options of systemd.resource-control.</span>
 
@@ -399,8 +416,10 @@
 <span style="color:#0057ae">Transparent</span> = <span style="color:#aa5500">no</span>
 <span style="color:#0057ae">Broadcast</span> = <span style="color:#aa5500">true</span>
 <span style="color:#0057ae">PassCredentials</span> = <span style="color:#aa5500">yes</span>
+<span style="color:#0057ae">PassPIDFD</span> = <span style="color:#aa5500">true</span>
 <span style="color:#0057ae">PassSecurity</span> = <span style="color:#aa5500">true</span>
 <span style="color:#0057ae">PassPacketInfo</span> = <span style="color:#aa5500">true</span>
+<span style="color:#0057ae">AcceptFileDescriptors</span> = <span style="color:#aa5500">no</span>
 <span style="color:#0057ae">Timestamping</span> = <span style="color:#aa5500">nsec</span>
 <span style="color:#0057ae">TCPCongestion</span> = westwood
 <span style="color:#0057ae">ExecStartPre</span> = <span style="color:#ff5500">+</span>/usr/bin/start/pre
@@ -416,6 +435,8 @@
 <span style="color:#0057ae">TriggerLimitBurst</span> = <span style="color:#b08000">50</span>
 <span style="color:#0057ae">PollLimitIntervalSec</span> = <span style="color:#b08000">1</span><span style="font-style:italic">s</span> <span style="color:#b08000">300</span><span style="font-style:italic">ms</span>
 <span style="color:#0057ae">PollLimitBurst</span> = <span style="color:#b08000">120</span>
+<span style="color:#0057ae">DeferTrigger</span> = <span style="color:#aa5500">patient</span>
+<span style="color:#0057ae">DeferTriggerMaxSec</span> = <span style="color:#aa5500">infinity</span>
 <span style="color:#0057ae">PassFileDescriptorsToExec</span> = <span style="color:#aa5500">true</span>
 <span style="color:#898887"># see [Service] for options from systemd.exec and systemd.kill</span>
 
@@ -439,6 +460,7 @@
 <span style="color:#0057ae">OnCalendar</span> = <span style="color:#aa5500">daily</span>
 <span style="color:#0057ae">AccuracySec</span> = <span style="color:#b08000">1</span><span style="font-style:italic">min</span> <span style="color:#b08000">10</span><span style="font-style:italic">sec</span>
 <span style="color:#0057ae">RandomizedDelaySec</span> = <span style="color:#b08000">30</span><span style="font-style:italic">s</span>
+<span style="color:#0057ae">RandomizedOffsetSec</span> = <span style="color:#b08000">20</span><span style="font-style:italic">s</span>
 <span style="color:#0057ae">FixedRandomDelay</span> = <span style="color:#aa5500">yes</span>
 <span style="color:#0057ae">DeferReactivation</span> = <span style="color:#aa5500">true</span>
 <span style="color:#0057ae">OnClockChange</span> = <span style="color:#aa5500">false</span>
@@ -499,6 +521,7 @@
 <span style="color:#0057ae">ConditionHost</span> = <span style="color:#ff5500">!</span>shodan<span style="color:#3daee9">*</span>
 <span style="color:#0057ae">ConditionKernelCommandLine</span> = <span style="color:#ff5500">!</span>kernel_option
 <span style="color:#0057ae">ConditionKernelVersion</span> = <span style="color:#ff5500">| </span>>= 4.<span style="color:#3daee9">*</span>
+<span style="color:#0057ae">ConditionVersion</span> = kernel >= 4.<span style="color:#3daee9">*</span>
 <span style="color:#0057ae">ConditionCredential</span> = name
 <span style="color:#0057ae">ConditionEnvironment</span> = SOME_ENVIRONMENT_VARIABLE=some_value
 <span style="color:#0057ae">ConditionSecurity</span> = <span style="color:#ff5500">| !</span> <span style="color:#aa5500">selinux</span>
@@ -526,6 +549,7 @@
 <span style="color:#0057ae">ConditionMemoryPressure</span> = <span style="color:#b08000">20</span>%<span style="color:#ff5500">/</span><span style="color:#aa5500;font-style:italic">5min</span>
 <span style="color:#0057ae">ConditionCPUPressure</span> = <span style="color:#b08000">12</span>%<span style="color:#ff5500">/</span><span style="color:#aa5500;font-style:italic">10sec</span>
 <span style="color:#0057ae">ConditionIOPressure</span> = <span style="color:#b08000">30</span>% <span style="color:#ff5500">/</span> <span style="color:#aa5500;font-style:italic">1min</span>
+<span style="color:#0057ae">ConditionKernelModuleLoaded</span> = modulename
 <span style="color:#0057ae">AssertArchitecture</span> = <span style="color:#aa5500">x86</span>
 <span style="color:#0057ae">AssertVirtualization</span> = <span style="color:#ff5500">|</span><span style="color:#aa5500">vmware</span>
 <span style="color:#0057ae">AssertHost</span> = <span style="color:#ff5500">!</span>shodan<span style="color:#3daee9">*</span>
@@ -956,6 +980,7 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">mnt</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">net</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">pid</span>
+<span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">time</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">user</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">uts</span>
 <span style="color:#0057ae">RestrictNamespaces</span> = <span style="color:#aa5500">cgroup</span> <span style="color:#aa5500">uts</span>
@@ -1093,6 +1118,214 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">StopWhenUnneeded</span> = <span style="color:#aa5500">false</span> true
 
 
+<span style="color:#898887">###### bpf delegate attachments</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInetIngress</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInetEgress</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInetSockCreate</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupSockOps</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkSkbStreamParser</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkSkbStreamVerdict</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupDevice</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkMsgVerdict</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet4Bind</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet6Bind</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet4Connect</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet6Connect</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet4PostBind</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet6PostBind</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUdp4Sendmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUdp6Sendmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFLircMode2</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFFlowDissector</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupSysctl</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUdp4Recvmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUdp6Recvmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupGetsockopt</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupSetsockopt</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceRawTp</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceFentry</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceFexit</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFModifyReturn</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFLsmMac</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceIter</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet4Getpeername</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet6Getpeername</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet4Getsockname</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInet6Getsockname</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFXdpDevmap</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupInetSockRelease</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFXdpCpumap</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkLookup</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFXdp</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkSkbVerdict</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkReuseportSelect</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFSkReuseportSelectOrMigrate</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFPerfEvent</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceKprobeMulti</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFLsmCgroup</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFStructOps</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFNetfilter</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTcxIngress</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTcxEgress</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceUprobeMulti</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUnixConnect</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUnixSendmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUnixRecvmsg</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUnixGetpeername</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFCgroupUnixGetsockname</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFNetkitPrimary</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFNetkitPeer</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceKprobeSession</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = <span style="color:#aa5500">BPFTraceUprobeSession</span>
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">BPFDelegateAttachments</span> = invalid
+
+
+<span style="color:#898887">###### bpf delegate commands</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFTokenCreate</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFTaskFdQuery</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFRawTracepointOpen</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgTestRun</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgStreamReadByFd</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgQuery</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgLoad</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgGetNextId</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgGetFdById</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgDetach</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgBindMap</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFProgAttach</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFObjPin</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFObjGetInfoByFd</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFObjGet</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapUpdateElem</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapUpdateBatch</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapLookupElem</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapLookupBatch</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapLookupAndDeleteElem</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapLookupAndDeleteBatch</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapGetNextKey</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapGetNextId</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapGetFdById</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapFreeze</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapDeleteElem</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapDeleteBatch</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFMapCreate</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFLinkUpdate</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFLinkGetNextId</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFLinkGetFdById</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFLinkDetach</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFLinkCreate</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFIterCreate</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFEnableStats</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFBtfLoad</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFBtfGetNextId</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = <span style="color:#aa5500">BPFBtfGetFdById</span>
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">BPFDelegateCommands</span> = invalid
+
+
+<span style="color:#898887">###### bpf delegate maps</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeUnspec</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeHash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeArray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeProgArray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypePerfEventArray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypePercpuHash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypePercpuArray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeStackTrace</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeCgroupArray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeLruHash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeLruPercpuHash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeLpmTrie</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeArrayOfMaps</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeHashOfMaps</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeDevmap</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeSockmap</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeCpumap</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeXskmap</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeSockhash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeCgroupStorageDeprecated</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeReuseportSockarray</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypePercpuCgroupStorageDeprecated</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeQueue</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeStack</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeSkStorage</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeDevmapHash</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeStructOps</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeRingbuf</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeInodeStorage</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeTaskStorage</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeBloomFilter</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeUserRingbuf</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeCgrpStorage</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = <span style="color:#aa5500">BPFMapTypeArena</span>
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">BPFDelegateMaps</span> = invalid
+
+
+<span style="color:#898887">###### bpf delegate programs</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeUnspec</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSocketFilter</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeKprobe</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSchedCls</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSchedAct</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeTracepoint</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeXdp</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypePerfEvent</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupSkb</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupSock</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLwtIn</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLwtOut</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLwtXmit</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSockOps</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSkSkb</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupDevice</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSkMsg</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeRawTracepoint</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupSockAddr</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLwtSeg6local</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLircMode2</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSkReuseport</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeFlowDissector</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupSysctl</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeRawTracepointWritable</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeCgroupSockopt</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeTracing</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeStructOps</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeExt</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeLsm</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeSkLookup</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = <span style="color:#aa5500">BPFProgTypeNetfilter</span>
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">BPFDelegatePrograms</span> = invalid
+
+
+<span style="color:#898887">###### bpf program type</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">sysctl</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">sock_ops</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">sock_create</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">setsockopt</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">sendmsg6</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">sendmsg4</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">recvmsg6</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">recvmsg4</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">post_bind6</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">post_bind4</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">ingress</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">getsockopt</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">egress</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">device</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">connect6</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">connect4</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">bind6</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">bind4</span>
+<span style="color:#0057ae">BPFProgram</span> = <span style="color:#aa5500">bind6</span>:/sys/fs/bpf/sock-addr-hook
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">BPFProgram</span> = invalid
+
+
 <span style="color:#898887">###### calendar</span>
 <span style="font-weight:bold">[Timer]</span>
 <span style="color:#0057ae">OnCalendar</span> = <span style="color:#aa5500">daily</span>
@@ -1289,13 +1522,13 @@ WantedBy = some.service some.socket
 <span style="color:#898887">###### controller list</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#898887"># single controller</span>
-<span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">blkio</span>
+<span style="color:#0057ae">DisableControllers</span> = blkio
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">bpf-devices</span>
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">bpf-firewall</span>
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">cpu</span>
-<span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">cpuacct</span>
+<span style="color:#0057ae">DisableControllers</span> = cpuacct
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">cpuset</span>
-<span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">devices</span>
+<span style="color:#0057ae">DisableControllers</span> = devices
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">io</span>
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">memory</span>
 <span style="color:#0057ae">DisableControllers</span> = <span style="color:#aa5500">pids</span>
@@ -1446,19 +1679,29 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">CPUWeight</span> = 1 <span style="color:#b08000">10000</span>
 
 
+<span style="color:#898887">###### defer trigger</span>
+<span style="font-weight:bold">[Socket]</span>
+<span style="color:#0057ae">DeferTrigger</span> = <span style="color:#aa5500">patient</span>
+<span style="color:#898887"># single boolean</span>
+<span style="color:#0057ae">DeferTrigger</span> = <span style="color:#aa5500">false</span>
+<span style="color:#0057ae">DeferTrigger</span> = <span style="color:#aa5500">true</span>
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">DeferTrigger</span> = i<span style="color:#aa5500">n</span>valid
+<span style="color:#898887"># multiple values</span>
+<span style="color:#0057ae">DeferTrigger</span> = <span style="color:#aa5500">patient</span> true
+
+
+
 <span style="color:#898887">###### delegate</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#898887"># single boolean</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">false</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">true</span>
 <span style="color:#898887"># single controller</span>
-<span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">blkio</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">bpf-devices</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">bpf-firewall</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">cpu</span>
-<span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">cpuacct</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">cpuset</span>
-<span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">devices</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">io</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">memory</span>
 <span style="color:#0057ae">Delegate</span> = <span style="color:#aa5500">pids</span>
@@ -1520,25 +1763,24 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">ExecStart</span> = cmd1 <span style="color:#3daee9">%h</span> arg1_1 <span style="color:#0057ae">$var1</span>, cmd2 <span style="color:#3daee9">%u</span> arg2_1 <span style="color:#0057ae">$var2_1</span><span style="font-weight:bold">\</span>
   <span style="color:#0057ae">$var2_2</span>
 <span style="color:#898887"># escapes (not exactly the same as detected by HlCStringChar)</span>
-<span style="color:#0057ae">ExecStart</span> = cmd \, <span style="color:#3daee9">\'</span> <span style="color:#3daee9">\"</span> \\ \a <span style="color:#3daee9">\b</span> <span style="color:#3daee9">\f</span> <span style="color:#3daee9">\n</span> <span style="color:#3daee9">\r</span> <span style="color:#3daee9">\s</span> <span style="color:#3daee9">\t</span> <span style="color:#3daee9">\v</span> <span style="color:#3daee9">\x0A</span> <span style="color:#3daee9">\012</span> <span style="color:#3daee9">\u1234</span> <span style="color:#3daee9">\U12abcdef</span>
-<span style="color:#898887"># prefix</span>
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@</span>/some/cmd arg "@!+-:"
+<span style="color:#0057ae">ExecStart</span> = cmd <span style="color:#3daee9">\'</span> <span style="color:#3daee9">\"</span> <span style="color:#3daee9">\\</span> <span style="color:#3daee9">\a</span> <span style="color:#3daee9">\b</span> <span style="color:#3daee9">\f</span> <span style="color:#3daee9">\n</span> <span style="color:#3daee9">\r</span> <span style="color:#3daee9">\s</span> <span style="color:#3daee9">\t</span> <span style="color:#3daee9">\v</span> <span style="color:#3daee9">\x0A</span> <span style="color:#3daee9">\012</span> <span style="color:#3daee9">\u1234</span> <span style="color:#3daee9">\U12abcdef</span>
+
+
+<span style="color:#898887">###### exec prefix</span>
+<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@</span>/some/cmd arg "@-:+!|"
 <span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">-</span>/some/cmd-1 -option arg
 <span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">:</span>/some/cmd arg
 <span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">+</span>/some/cmd arg
 <span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">!</span>/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">!!</span>/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@:-!!</span>/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@!!-:</span>/some/cmd arg
+<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">|</span>/some/cmd arg
+<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@:-!</span>/some/cmd arg
+<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@!-:</span>/some/cmd arg
 <span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@:-+</span>/some/cmd arg
 <span style="color:#898887">## invalid values</span>
 <span style="color:#898887"># invalid prefix</span>
 <span style="color:#0057ae">ExecStart</span> = @ /some/cmd arg
 <span style="color:#0057ae">ExecStart</span> = @ -/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">+</span>!/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">!!</span>!/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@</span>+@/some/cmd arg
-<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">@!!</span>+/some/cmd arg
+<span style="color:#0057ae">ExecStart</span> = <span style="color:#ff5500">+</span>! /some/cmd arg
 
 
 <span style="color:#898887">###### exit status</span>
@@ -1718,7 +1960,6 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">ocfs2</span>
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">overlay</span>
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">proc</span>
-<span style="color:#0057ae">Type</span> = <span style="color:#aa5500">reiserfs</span>
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">tmpfs</span>
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">tracefs</span>
 <span style="color:#0057ae">Type</span> = <span style="color:#aa5500">udf</span>
@@ -2135,6 +2376,7 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">ignore-dependencies</span>
 <span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">ignore-requirements</span>
 <span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">isolate</span>
+<span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">lenient</span>
 <span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">replace</span>
 <span style="color:#0057ae">OnFailureJobMode</span> = <span style="color:#aa5500">replace-irreversibly</span>
 <span style="color:#898887">## invalid values</span>
@@ -2253,6 +2495,7 @@ WantedBy = some.service some.socket
 
 <span style="color:#898887">###### private users</span>
 <span style="font-weight:bold">[Service]</span>
+<span style="color:#0057ae">PrivateUsers</span> = <span style="color:#aa5500">full</span>
 <span style="color:#0057ae">PrivateUsers</span> = <span style="color:#aa5500">identity</span>
 <span style="color:#0057ae">PrivateUsers</span> = <span style="color:#aa5500">self</span>
 <span style="color:#898887">## should accept any boolean value</span>
@@ -2312,6 +2555,18 @@ WantedBy = some.service some.socket
 <span style="color:#0057ae">ProtectHome</span> = <span style="color:#aa5500">tmpfs</span> true
 
 
+<span style="color:#898887">###### protect hostname</span>
+<span style="font-weight:bold">[Service]</span>
+<span style="color:#0057ae">ProtectHostname</span> = <span style="color:#aa5500">private</span>
+<span style="color:#0057ae">ProtectHostname</span> = <span style="color:#aa5500">private</span>:host.example.com
+<span style="color:#0057ae">ProtectHostname</span> = <span style="color:#aa5500">true</span>
+<span style="color:#0057ae">ProtectHostname</span> = <span style="color:#aa5500">yes</span>:somehostname
+<span style="color:#898887">## invalid values</span>
+<span style="color:#0057ae">ProtectHostname</span> = i<span style="color:#aa5500">n</span>valid
+<span style="color:#898887"># multiple values</span>
+<span style="color:#0057ae">ProtectHostname</span> = <span style="color:#aa5500">private</span> true
+
+
 <span style="color:#898887">###### protect system</span>
 <span style="font-weight:bold">[Service]</span>
 <span style="color:#0057ae">ProtectSystem</span> = <span style="color:#aa5500">full</span>
diff -pruN 6.18.0-1/autotests/html/test.opsiscript.dark.html 6.19.0-0ubuntu1/autotests/html/test.opsiscript.dark.html
--- 6.18.0-1/autotests/html/test.opsiscript.dark.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.opsiscript.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -8,7 +8,7 @@
 <span style="color:#7a7c7d">;</span>
 <span style="color:#7a7c7d">;    SPDX-FileCopyrightText: 2024 Stefan Staeglich &lt;sstaeglich@kdemail.net></span>
 <span style="color:#7a7c7d">;</span>
-<span style="color:#7a7c7d">;    SPDX-License-Identifier: LGPL</span>
+<span style="color:#7a7c7d">;    SPDX-License-Identifier: LGPL-2.1-or-later</span>
 
 
 
diff -pruN 6.18.0-1/autotests/html/test.opsiscript.html 6.19.0-0ubuntu1/autotests/html/test.opsiscript.html
--- 6.18.0-1/autotests/html/test.opsiscript.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.opsiscript.html	2025-10-05 12:41:31.000000000 +0000
@@ -8,7 +8,7 @@
 <span style="color:#898887">;</span>
 <span style="color:#898887">;    SPDX-FileCopyrightText: 2024 Stefan Staeglich &lt;sstaeglich@kdemail.net></span>
 <span style="color:#898887">;</span>
-<span style="color:#898887">;    SPDX-License-Identifier: LGPL</span>
+<span style="color:#898887">;    SPDX-License-Identifier: LGPL-2.1-or-later</span>
 
 
 
diff -pruN 6.18.0-1/autotests/html/test.rq.dark.html 6.19.0-0ubuntu1/autotests/html/test.rq.dark.html
--- 6.18.0-1/autotests/html/test.rq.dark.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.rq.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.rq</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (SPARQL) - Theme (Breeze Dark)"/>
+</head><body style="background-color:#232629;color:#cfcfc2"><pre>
+<span style="color:#7a7c7d"># SPARQL Query for Syntax Highlighting Test</span>
+<span style="color:#7a7c7d"># This query includes a wide range of features to test a highlighter's capabilities.</span>
+
+<span style="color:#7a7c7d"># == 1. Prologue: Base URI and Prefixes</span>
+<span style="font-weight:bold">BASE</span>          <span style="color:#f44f4f">&lt;http://example.org/book-data/></span>
+<span style="font-weight:bold">PREFIX</span> ex:    <span style="color:#f44f4f">&lt;http://example.org/vocab#></span>
+<span style="font-weight:bold">PREFIX</span> foaf:  <span style="color:#f44f4f">&lt;http://xmlns.com/foaf/0.1/></span>
+<span style="font-weight:bold">PREFIX</span> rdf:   <span style="color:#f44f4f">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#></span>
+<span style="font-weight:bold">PREFIX</span> rdfs:  <span style="color:#f44f4f">&lt;http://www.w3.org/2000/01/rdf-schema#></span>
+<span style="font-weight:bold">PREFIX</span> xsd:   <span style="color:#f44f4f">&lt;http://www.w3.org/2001/XMLSchema#></span>
+<span style="font-weight:bold">PREFIX</span> dc:    <span style="color:#f44f4f">&lt;http://purl.org/dc/elements/1.1/></span>
+
+<span style="color:#7a7c7d"># == 2. Query Form: SELECT with Expressions and Aggregates</span>
+<span style="font-weight:bold">SELECT</span> <span style="font-weight:bold">DISTINCT</span>
+    ?authorName
+    <span style="color:#3f8058">(</span><span style="color:#8e44ad">UCASE</span><span style="color:#3f8058">(</span>?title<span style="color:#3f8058">)</span> <span style="font-weight:bold">AS</span> ?upperCaseTitle<span style="color:#3f8058">)</span>
+    ?publicationDate
+    <span style="color:#7a7c7d"># Aggregate functions</span>
+    <span style="color:#3f8058">(</span><span style="color:#8e44ad">COUNT</span><span style="color:#3f8058">(</span>?character<span style="color:#3f8058">)</span> <span style="font-weight:bold">AS</span> ?characterCount<span style="color:#3f8058">)</span>
+    <span style="color:#3f8058">(</span><span style="color:#8e44ad">GROUP_CONCAT</span><span style="color:#3f8058">(</span><span style="font-weight:bold">DISTINCT</span> ?genre<span style="color:#3f8058">;</span> SEPARATOR<span style="color:#3f8058">=</span><span style="color:#f44f4f">", "</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">AS</span> ?genres<span style="color:#3f8058">)</span>
+    <span style="color:#3f8058">(</span><span style="color:#8e44ad">AVG</span><span style="color:#3f8058">(</span>?rating<span style="color:#3f8058">)</span> <span style="font-weight:bold">AS</span> ?averageRating<span style="color:#3f8058">)</span>
+
+<span style="color:#7a7c7d"># == 3. Dataset Clause: Defining the Query Target</span>
+<span style="font-weight:bold">FROM</span> <span style="color:#f44f4f">&lt;http://example.org/library-main-graph></span>
+<span style="font-weight:bold">FROM</span> <span style="font-weight:bold">NAMED</span> <span style="color:#f44f4f">&lt;http://example.org/library-metadata-graph></span>
+
+<span style="color:#7a7c7d"># == 4. Query Pattern: The Core Logic</span>
+<span style="font-weight:bold">WHERE</span> <span style="color:#3f8058">{</span>
+    <span style="color:#7a7c7d"># Inline data with VALUES</span>
+    <span style="font-weight:bold">VALUES</span> ?authorType <span style="color:#3f8058">{</span> foaf:Person ex:FictionalEntity <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># Basic Graph Pattern with various term types</span>
+    ?author a foaf:person <span style="color:#3f8058">;</span>
+            rdf:type ?authorType <span style="color:#3f8058">;</span>
+            foaf:name ?authorName <span style="color:#3f8058">;</span>
+            foaf:birthday ?birthDate <span style="color:#3f8058">.</span> <span style="color:#7a7c7d"># Semicolon for predicate-object lists</span>
+
+    ?author foaf:smoker true <span style="color:#3f8058">.</span>
+    ?author foaf:child false <span style="color:#3f8058">.</span>
+
+    <span style="color:#7a7c7d"># Property path: one or more 'knows' relationships</span>
+    ?author foaf:knows<span style="color:#3f8058">+</span> ?colleague <span style="color:#3f8058">.</span>
+
+    <span style="color:#7a7c7d"># Nested blank node syntax</span>
+    ?book dc:creator <span style="color:#3f8058">[</span> foaf:name ?authorName <span style="color:#3f8058">]</span> <span style="color:#3f8058">;</span>
+          dc:title ?title <span style="color:#3f8058">;</span>
+          ex:rating ?rating <span style="color:#3f8058">.</span> <span style="color:#7a7c7d"># Period to end the triple block.</span>
+
+    <span style="color:#7a7c7d"># OPTIONAL block for data that may not exist</span>
+    <span style="font-weight:bold">OPTIONAL</span> <span style="color:#3f8058">{</span>
+        ?book ex:hasCharacter ?character <span style="color:#3f8058">.</span>
+        ?character foaf:name ?characterName <span style="color:#3f8058">.</span>
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># UNION to combine results from alternative patterns</span>
+    <span style="color:#3f8058">{</span>
+        ?book ex:genre <span style="color:#f44f4f">"Science Fiction"</span>@en <span style="color:#3f8058">.</span>
+    <span style="color:#3f8058">}</span>
+    <span style="font-weight:bold">UNION</span>
+    <span style="color:#3f8058">{</span>
+        ?book ex:genre <span style="color:#f44f4f">"Fantasy"</span><span style="color:#3f8058">^^</span>xsd:string <span style="color:#3f8058">.</span>
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># BIND to compute and assign a new variable</span>
+    <span style="font-weight:bold">BIND</span><span style="color:#3f8058">(</span><span style="color:#8e44ad">YEAR</span><span style="color:#3f8058">(</span>?birthDate<span style="color:#3f8058">)</span> <span style="font-weight:bold">AS</span> ?birthYear<span style="color:#3f8058">)</span>
+
+    <span style="color:#7a7c7d"># Subquery to pre-filter books</span>
+    <span style="color:#3f8058">{</span>
+      <span style="font-weight:bold">SELECT</span> ?book ?publicationDate <span style="font-weight:bold">WHERE</span> <span style="color:#3f8058">{</span>
+        ?book dc:date ?publicationDate <span style="color:#3f8058">.</span>
+        <span style="font-weight:bold">FILTER</span><span style="color:#3f8058">(</span>?publicationDate <span style="color:#3f8058">></span> <span style="color:#f44f4f">"2000-01-01T00:00:00"</span><span style="color:#3f8058">^^</span>xsd:dateTime <span style="color:#3f8058">&amp;&amp;</span> ?publicationDate <span style="color:#3f8058">&lt;</span> <span style="color:#f44f4f">"2010-01-01T00:00:00"</span><span style="color:#3f8058">^^</span>xsd:dateTime<span style="color:#3f8058">)</span>
+      <span style="color:#3f8058">}</span>
+      <span style="font-weight:bold">LIMIT</span> <span style="color:#f67400">100</span>
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># GRAPH clause to query a specific named graph</span>
+    <span style="font-weight:bold">GRAPH</span> <span style="color:#f44f4f">&lt;http://example.org/library-metadata-graph></span> <span style="color:#3f8058">{</span>
+        ?book ex:reviewedBy _:reviewer <span style="color:#3f8058">.</span> <span style="color:#7a7c7d"># Blank node label</span>
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># SERVICE clause for federated queries</span>
+    <span style="font-weight:bold">SERVICE</span> <span style="color:#f44f4f">&lt;http://dbpedia.org/sparql></span> <span style="color:#3f8058">{</span>
+        ?colleague rdfs:label ?colleagueLabel <span style="color:#3f8058">.</span>
+        <span style="font-weight:bold">FILTER</span><span style="color:#3f8058">(</span><span style="color:#8e44ad">LANG</span><span style="color:#3f8058">(</span>?colleagueLabel<span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"en"</span><span style="color:#3f8058">)</span>
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#7a7c7d"># FILTER clause with a variety of functions and operators</span>
+    <span style="font-weight:bold">FILTER</span> <span style="color:#3f8058">(</span>
+        <span style="color:#7a7c7d"># Logical, comparison, and arithmetic</span>
+        <span style="color:#3f8058">(</span>?rating <span style="color:#3f8058">></span> <span style="color:#f67400">3.5</span> <span style="color:#3f8058">&amp;&amp;</span> ?birthYear <span style="color:#3f8058">&lt;</span> <span style="color:#f67400">1980</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">||</span>
+        <span style="color:#7a7c7d"># Regular expression</span>
+        <span style="color:#8e44ad">REGEX</span><span style="color:#3f8058">(</span>?authorName<span style="color:#3f8058">,</span> <span style="color:#f44f4f">"^J</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">.</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">s?K</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">."</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"i"</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">&amp;&amp;</span>
+        <span style="color:#7a7c7d"># Check for existence of a value</span>
+        <span style="color:#8e44ad">BOUND</span><span style="color:#3f8058">(</span>?characterName<span style="color:#3f8058">)</span> <span style="color:#3f8058">&amp;&amp;</span>
+        <span style="color:#7a7c7d"># String and numeric functions</span>
+        <span style="color:#3f8058">(</span><span style="color:#8e44ad">STRLEN</span><span style="color:#3f8058">(</span>?title<span style="color:#3f8058">)</span> <span style="color:#3f8058">-</span> <span style="color:#f67400">5</span> <span style="color:#3f8058">></span> <span style="color:#f67400">10</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">&amp;&amp;</span>
+        <span style="color:#7a7c7d"># IN operator</span>
+        ?genre <span style="font-weight:bold">IN</span> <span style="color:#3f8058">(</span><span style="color:#f44f4f">"Fantasy"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"Sci-Fi"</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">&amp;&amp;</span>
+        <span style="color:#7a7c7d"># Datatype and language checks</span>
+        <span style="color:#8e44ad">LANGMATCHES</span><span style="color:#3f8058">(</span><span style="color:#8e44ad">LANG</span><span style="color:#3f8058">(</span>?title<span style="color:#3f8058">),</span> <span style="color:#f44f4f">"en-US"</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">&amp;&amp;</span>
+        <span style="color:#8e44ad">DATATYPE</span><span style="color:#3f8058">(</span>?rating<span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> xsd:decimal
+    <span style="color:#3f8058">)</span>
+
+    <span style="font-weight:bold">FILTER</span> <span style="font-weight:bold">NOT</span> <span style="font-weight:bold">EXISTS</span> <span style="color:#3f8058">{</span>
+        ?colleague schema:memberOf ?organization <span style="color:#3f8058">.</span>
+    <span style="color:#3f8058">}</span>
+<span style="color:#3f8058">}</span>
+
+<span style="color:#7a7c7d"># == 5. Solution Modifiers: Ordering, Grouping, and Slicing</span>
+<span style="font-weight:bold">GROUP</span> <span style="font-weight:bold">BY</span> ?authorName ?title ?publicationDate
+<span style="font-weight:bold">HAVING</span> <span style="color:#3f8058">(</span><span style="color:#8e44ad">COUNT</span><span style="color:#3f8058">(</span>?character<span style="color:#3f8058">)</span> <span style="color:#3f8058">>=</span> <span style="color:#f67400">2</span><span style="color:#3f8058">)</span> <span style="color:#7a7c7d"># Filter on aggregate results</span>
+<span style="font-weight:bold">ORDER</span> <span style="font-weight:bold">BY</span> <span style="font-weight:bold">DESC</span><span style="color:#3f8058">(</span>?averageRating<span style="color:#3f8058">)</span> <span style="font-weight:bold">ASC</span><span style="color:#3f8058">(</span>?authorName<span style="color:#3f8058">)</span>
+<span style="font-weight:bold">LIMIT</span> <span style="color:#f67400">10</span>
+<span style="font-weight:bold">OFFSET</span> <span style="color:#f67400">20</span>
+
+<span style="color:#7a7c7d"># == Other SPARQL Keywords (for syntax highlighting completeness)</span>
+<span style="color:#7a7c7d"># CONSTRUCT, DESCRIBE, ASK (alternative query forms)</span>
+<span style="color:#7a7c7d"># INSERT DATA, DELETE DATA, LOAD, CLEAR, CREATE, DROP (update operations)</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.rq.html 6.19.0-0ubuntu1/autotests/html/test.rq.html
--- 6.18.0-1/autotests/html/test.rq.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.rq.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.rq</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (SPARQL) - Theme (Breeze Light)"/>
+</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
+<span style="color:#898887"># SPARQL Query for Syntax Highlighting Test</span>
+<span style="color:#898887"># This query includes a wide range of features to test a highlighter's capabilities.</span>
+
+<span style="color:#898887"># == 1. Prologue: Base URI and Prefixes</span>
+<span style="font-weight:bold">BASE</span>          <span style="color:#bf0303">&lt;http://example.org/book-data/></span>
+<span style="font-weight:bold">PREFIX</span> ex:    <span style="color:#bf0303">&lt;http://example.org/vocab#></span>
+<span style="font-weight:bold">PREFIX</span> foaf:  <span style="color:#bf0303">&lt;http://xmlns.com/foaf/0.1/></span>
+<span style="font-weight:bold">PREFIX</span> rdf:   <span style="color:#bf0303">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#></span>
+<span style="font-weight:bold">PREFIX</span> rdfs:  <span style="color:#bf0303">&lt;http://www.w3.org/2000/01/rdf-schema#></span>
+<span style="font-weight:bold">PREFIX</span> xsd:   <span style="color:#bf0303">&lt;http://www.w3.org/2001/XMLSchema#></span>
+<span style="font-weight:bold">PREFIX</span> dc:    <span style="color:#bf0303">&lt;http://purl.org/dc/elements/1.1/></span>
+
+<span style="color:#898887"># == 2. Query Form: SELECT with Expressions and Aggregates</span>
+<span style="font-weight:bold">SELECT</span> <span style="font-weight:bold">DISTINCT</span>
+    ?authorName
+    <span style="color:#ca60ca">(</span><span style="color:#644a9b">UCASE</span><span style="color:#ca60ca">(</span>?title<span style="color:#ca60ca">)</span> <span style="font-weight:bold">AS</span> ?upperCaseTitle<span style="color:#ca60ca">)</span>
+    ?publicationDate
+    <span style="color:#898887"># Aggregate functions</span>
+    <span style="color:#ca60ca">(</span><span style="color:#644a9b">COUNT</span><span style="color:#ca60ca">(</span>?character<span style="color:#ca60ca">)</span> <span style="font-weight:bold">AS</span> ?characterCount<span style="color:#ca60ca">)</span>
+    <span style="color:#ca60ca">(</span><span style="color:#644a9b">GROUP_CONCAT</span><span style="color:#ca60ca">(</span><span style="font-weight:bold">DISTINCT</span> ?genre<span style="color:#ca60ca">;</span> SEPARATOR<span style="color:#ca60ca">=</span><span style="color:#bf0303">", "</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">AS</span> ?genres<span style="color:#ca60ca">)</span>
+    <span style="color:#ca60ca">(</span><span style="color:#644a9b">AVG</span><span style="color:#ca60ca">(</span>?rating<span style="color:#ca60ca">)</span> <span style="font-weight:bold">AS</span> ?averageRating<span style="color:#ca60ca">)</span>
+
+<span style="color:#898887"># == 3. Dataset Clause: Defining the Query Target</span>
+<span style="font-weight:bold">FROM</span> <span style="color:#bf0303">&lt;http://example.org/library-main-graph></span>
+<span style="font-weight:bold">FROM</span> <span style="font-weight:bold">NAMED</span> <span style="color:#bf0303">&lt;http://example.org/library-metadata-graph></span>
+
+<span style="color:#898887"># == 4. Query Pattern: The Core Logic</span>
+<span style="font-weight:bold">WHERE</span> <span style="color:#ca60ca">{</span>
+    <span style="color:#898887"># Inline data with VALUES</span>
+    <span style="font-weight:bold">VALUES</span> ?authorType <span style="color:#ca60ca">{</span> foaf:Person ex:FictionalEntity <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># Basic Graph Pattern with various term types</span>
+    ?author a foaf:person <span style="color:#ca60ca">;</span>
+            rdf:type ?authorType <span style="color:#ca60ca">;</span>
+            foaf:name ?authorName <span style="color:#ca60ca">;</span>
+            foaf:birthday ?birthDate <span style="color:#ca60ca">.</span> <span style="color:#898887"># Semicolon for predicate-object lists</span>
+
+    ?author foaf:smoker true <span style="color:#ca60ca">.</span>
+    ?author foaf:child false <span style="color:#ca60ca">.</span>
+
+    <span style="color:#898887"># Property path: one or more 'knows' relationships</span>
+    ?author foaf:knows<span style="color:#ca60ca">+</span> ?colleague <span style="color:#ca60ca">.</span>
+
+    <span style="color:#898887"># Nested blank node syntax</span>
+    ?book dc:creator <span style="color:#ca60ca">[</span> foaf:name ?authorName <span style="color:#ca60ca">]</span> <span style="color:#ca60ca">;</span>
+          dc:title ?title <span style="color:#ca60ca">;</span>
+          ex:rating ?rating <span style="color:#ca60ca">.</span> <span style="color:#898887"># Period to end the triple block.</span>
+
+    <span style="color:#898887"># OPTIONAL block for data that may not exist</span>
+    <span style="font-weight:bold">OPTIONAL</span> <span style="color:#ca60ca">{</span>
+        ?book ex:hasCharacter ?character <span style="color:#ca60ca">.</span>
+        ?character foaf:name ?characterName <span style="color:#ca60ca">.</span>
+    <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># UNION to combine results from alternative patterns</span>
+    <span style="color:#ca60ca">{</span>
+        ?book ex:genre <span style="color:#bf0303">"Science Fiction"</span>@en <span style="color:#ca60ca">.</span>
+    <span style="color:#ca60ca">}</span>
+    <span style="font-weight:bold">UNION</span>
+    <span style="color:#ca60ca">{</span>
+        ?book ex:genre <span style="color:#bf0303">"Fantasy"</span><span style="color:#ca60ca">^^</span>xsd:string <span style="color:#ca60ca">.</span>
+    <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># BIND to compute and assign a new variable</span>
+    <span style="font-weight:bold">BIND</span><span style="color:#ca60ca">(</span><span style="color:#644a9b">YEAR</span><span style="color:#ca60ca">(</span>?birthDate<span style="color:#ca60ca">)</span> <span style="font-weight:bold">AS</span> ?birthYear<span style="color:#ca60ca">)</span>
+
+    <span style="color:#898887"># Subquery to pre-filter books</span>
+    <span style="color:#ca60ca">{</span>
+      <span style="font-weight:bold">SELECT</span> ?book ?publicationDate <span style="font-weight:bold">WHERE</span> <span style="color:#ca60ca">{</span>
+        ?book dc:date ?publicationDate <span style="color:#ca60ca">.</span>
+        <span style="font-weight:bold">FILTER</span><span style="color:#ca60ca">(</span>?publicationDate <span style="color:#ca60ca">></span> <span style="color:#bf0303">"2000-01-01T00:00:00"</span><span style="color:#ca60ca">^^</span>xsd:dateTime <span style="color:#ca60ca">&amp;&amp;</span> ?publicationDate <span style="color:#ca60ca">&lt;</span> <span style="color:#bf0303">"2010-01-01T00:00:00"</span><span style="color:#ca60ca">^^</span>xsd:dateTime<span style="color:#ca60ca">)</span>
+      <span style="color:#ca60ca">}</span>
+      <span style="font-weight:bold">LIMIT</span> <span style="color:#b08000">100</span>
+    <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># GRAPH clause to query a specific named graph</span>
+    <span style="font-weight:bold">GRAPH</span> <span style="color:#bf0303">&lt;http://example.org/library-metadata-graph></span> <span style="color:#ca60ca">{</span>
+        ?book ex:reviewedBy _:reviewer <span style="color:#ca60ca">.</span> <span style="color:#898887"># Blank node label</span>
+    <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># SERVICE clause for federated queries</span>
+    <span style="font-weight:bold">SERVICE</span> <span style="color:#bf0303">&lt;http://dbpedia.org/sparql></span> <span style="color:#ca60ca">{</span>
+        ?colleague rdfs:label ?colleagueLabel <span style="color:#ca60ca">.</span>
+        <span style="font-weight:bold">FILTER</span><span style="color:#ca60ca">(</span><span style="color:#644a9b">LANG</span><span style="color:#ca60ca">(</span>?colleagueLabel<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"en"</span><span style="color:#ca60ca">)</span>
+    <span style="color:#ca60ca">}</span>
+
+    <span style="color:#898887"># FILTER clause with a variety of functions and operators</span>
+    <span style="font-weight:bold">FILTER</span> <span style="color:#ca60ca">(</span>
+        <span style="color:#898887"># Logical, comparison, and arithmetic</span>
+        <span style="color:#ca60ca">(</span>?rating <span style="color:#ca60ca">></span> <span style="color:#b08000">3.5</span> <span style="color:#ca60ca">&amp;&amp;</span> ?birthYear <span style="color:#ca60ca">&lt;</span> <span style="color:#b08000">1980</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">||</span>
+        <span style="color:#898887"># Regular expression</span>
+        <span style="color:#644a9b">REGEX</span><span style="color:#ca60ca">(</span>?authorName<span style="color:#ca60ca">,</span> <span style="color:#bf0303">"^J</span><span style="color:#924c9d">\\</span><span style="color:#bf0303">.</span><span style="color:#924c9d">\\</span><span style="color:#bf0303">s?K</span><span style="color:#924c9d">\\</span><span style="color:#bf0303">."</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"i"</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&amp;&amp;</span>
+        <span style="color:#898887"># Check for existence of a value</span>
+        <span style="color:#644a9b">BOUND</span><span style="color:#ca60ca">(</span>?characterName<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&amp;&amp;</span>
+        <span style="color:#898887"># String and numeric functions</span>
+        <span style="color:#ca60ca">(</span><span style="color:#644a9b">STRLEN</span><span style="color:#ca60ca">(</span>?title<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">-</span> <span style="color:#b08000">5</span> <span style="color:#ca60ca">></span> <span style="color:#b08000">10</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&amp;&amp;</span>
+        <span style="color:#898887"># IN operator</span>
+        ?genre <span style="font-weight:bold">IN</span> <span style="color:#ca60ca">(</span><span style="color:#bf0303">"Fantasy"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"Sci-Fi"</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&amp;&amp;</span>
+        <span style="color:#898887"># Datatype and language checks</span>
+        <span style="color:#644a9b">LANGMATCHES</span><span style="color:#ca60ca">(</span><span style="color:#644a9b">LANG</span><span style="color:#ca60ca">(</span>?title<span style="color:#ca60ca">),</span> <span style="color:#bf0303">"en-US"</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&amp;&amp;</span>
+        <span style="color:#644a9b">DATATYPE</span><span style="color:#ca60ca">(</span>?rating<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> xsd:decimal
+    <span style="color:#ca60ca">)</span>
+
+    <span style="font-weight:bold">FILTER</span> <span style="font-weight:bold">NOT</span> <span style="font-weight:bold">EXISTS</span> <span style="color:#ca60ca">{</span>
+        ?colleague schema:memberOf ?organization <span style="color:#ca60ca">.</span>
+    <span style="color:#ca60ca">}</span>
+<span style="color:#ca60ca">}</span>
+
+<span style="color:#898887"># == 5. Solution Modifiers: Ordering, Grouping, and Slicing</span>
+<span style="font-weight:bold">GROUP</span> <span style="font-weight:bold">BY</span> ?authorName ?title ?publicationDate
+<span style="font-weight:bold">HAVING</span> <span style="color:#ca60ca">(</span><span style="color:#644a9b">COUNT</span><span style="color:#ca60ca">(</span>?character<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">>=</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">)</span> <span style="color:#898887"># Filter on aggregate results</span>
+<span style="font-weight:bold">ORDER</span> <span style="font-weight:bold">BY</span> <span style="font-weight:bold">DESC</span><span style="color:#ca60ca">(</span>?averageRating<span style="color:#ca60ca">)</span> <span style="font-weight:bold">ASC</span><span style="color:#ca60ca">(</span>?authorName<span style="color:#ca60ca">)</span>
+<span style="font-weight:bold">LIMIT</span> <span style="color:#b08000">10</span>
+<span style="font-weight:bold">OFFSET</span> <span style="color:#b08000">20</span>
+
+<span style="color:#898887"># == Other SPARQL Keywords (for syntax highlighting completeness)</span>
+<span style="color:#898887"># CONSTRUCT, DESCRIBE, ASK (alternative query forms)</span>
+<span style="color:#898887"># INSERT DATA, DELETE DATA, LOAD, CLEAR, CREATE, DROP (update operations)</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.smk.dark.html 6.19.0-0ubuntu1/autotests/html/test.smk.dark.html
--- 6.18.0-1/autotests/html/test.smk.dark.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.smk.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,286 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.smk</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Snakemake) - Theme (Breeze Dark)"/>
+</head><body style="background-color:#232629;color:#cfcfc2"><pre>
+<span style="color:#7a7c7d"># =============================================================================</span>
+<span style="color:#7a7c7d"># Snakefile — comprehensive feature test for Snakemake highlighting</span>
+<span style="color:#7a7c7d"># Minimal comments; lines marked `# ERROR:` are intentionally invalid.</span>
+<span style="color:#7a7c7d"># =============================================================================</span>
+
+<span style="color:#7a7c7d"># ---------- Top-level Python ----------</span>
+
+<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#27aeae;font-weight:bold">True</span>: <span style="color:#da4453;text-decoration:underline">forbidden</span> <span style="color:#7a7c7d"># ERROR: no text allowed after block opener</span>
+    <span style="color:#27aeae">a</span> = <span style="color:#f67400">1</span>
+<span style="color:#fdbc4b;font-weight:bold">else</span>: <span style="color:#da4453;text-decoration:underline">forbidden</span> <span style="color:#7a7c7d"># ERROR: same</span>
+    <span style="color:#27aeae">a</span> = <span style="color:#f67400">0</span>
+
+<span style="color:#27aeae">config</span> = <span style="color:#3f8058">{</span>
+    <span style="color:#f44f4f">"method"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"B"</span><span style="color:#3f8058">,</span>
+    <span style="color:#f44f4f">"samples"</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">[</span><span style="color:#f44f4f">"S1"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"S2"</span><span style="color:#3f8058">],</span>
+    <span style="color:#f44f4f">"ref"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"ref/genome.fa"</span><span style="color:#3f8058">,</span>
+    <span style="color:#f44f4f">"gtf"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"ref/genes.gtf"</span><span style="color:#3f8058">,</span>
+    <span style="color:#f44f4f">"threads_default"</span><span style="color:#3f8058">:</span> <span style="color:#f67400">4</span><span style="color:#3f8058">,</span>
+    <span style="color:#f44f4f">"work"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"work"</span><span style="color:#3f8058">,</span>
+    <span style="color:#f44f4f">"adapters"</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">{</span><span style="color:#f44f4f">"fwd"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"AGATCGGAAGAGC"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"rev"</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"AGATCGGAAGAGC"</span><span style="color:#3f8058">}</span>
+<span style="color:#3f8058">}</span>
+<span style="color:#27aeae">SAMPLES</span> = <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"samples"</span><span style="color:#3f8058">]</span>
+
+<span style="color:#fdbc4b;font-weight:bold">def</span> <span style="color:#8e44ad">fq</span><span style="color:#3f8058">(</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span> <span style="color:#27aeae">mate</span><span style="color:#3f8058">)</span>:
+    <span style="font-weight:bold">return</span> <span style="color:#f44f4f">f"raw/</span><span style="color:#3daee9">{</span><span style="color:#27aeae">sample</span><span style="color:#3daee9">}</span><span style="color:#f44f4f">_R</span><span style="color:#3daee9">{</span><span style="color:#27aeae">mate</span><span style="color:#3daee9">}</span><span style="color:#f44f4f">.fastq.gz"</span>
+
+<span style="color:#7a7c7d"># ---------- Global Snakemake directives ----------</span>
+<span style="color:#fdbc4b;font-weight:bold">workdir</span>: <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"work"</span><span style="color:#3f8058">]</span>
+<span style="color:#fdbc4b;font-weight:bold">localrules</span>: <span style="color:#27aeae">all</span><span style="color:#3f8058">,</span> <span style="color:#27aeae">qc_fastqc</span>
+<span style="color:#fdbc4b;font-weight:bold">ruleorder</span>: <span style="color:#27aeae">sort_index</span> > <span style="color:#27aeae">align</span>
+<span style="color:#fdbc4b;font-weight:bold">report</span>: <span style="color:#f44f4f">"report/report.html"</span>
+<span style="color:#fdbc4b;font-weight:bold">envvars</span>: <span style="color:#f44f4f">"LD_LIBRARY_PATH"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"OMP_NUM_THREADS"</span>
+<span style="color:#fdbc4b;font-weight:bold">wildcard_constraints</span>:
+    <span style="color:#27aeae">sample</span> = <span style="color:#f44f4f">r"[A-Za-z0-9_]+"</span>
+
+<span style="color:#fdbc4b;font-weight:bold">include</span>: <span style="color:#f44f4f">"extras.smk"</span>
+<span style="color:#fdbc4b;font-weight:bold">container</span>: <span style="color:#f44f4f">"docker://ubuntu:22.04"</span>
+<span style="color:#fdbc4b;font-weight:bold">conda</span>: <span style="color:#f44f4f">"envs/global.yml"</span>
+<span style="color:#fdbc4b;font-weight:bold">containerized</span>:
+
+<span style="color:#7a7c7d"># Legacy/compat directives still recognized in old workflows</span>
+<span style="color:#fdbc4b;font-weight:bold">moduleinclude</span>: <span style="color:#f44f4f">"legacy/tools.smk"</span>   <span style="color:#7a7c7d"># legacy include for modules</span>
+<span style="color:#7a7c7d"># deprecated (kept for legacy)</span>
+<span style="color:#fdbc4b;font-weight:bold">subworkflow</span> <span style="color:#8e44ad">oldwf</span>:  <span style="color:#da4453;text-decoration:underline">something </span><span style="color:#7a7c7d">#ERROR: nothing allowed after colon</span>
+    <span style="color:#609ca0">workdir</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"oldwf"</span>
+    <span style="color:#609ca0">snakefile</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"workflow/Snakefile"</span>
+    <span style="color:#da4453;text-decoration:underline">input:</span> <span style="color:#7a7c7d"># ERROR: `input` directive not allowed in subworkflows</span>
+
+<span style="color:#7a7c7d"># ---------- Modules and use rule ----------</span>
+<span style="color:#fdbc4b;font-weight:bold">module</span> <span style="color:#8e44ad">asm</span>: <span style="color:#da4453;text-decoration:underline">something </span><span style="color:#7a7c7d">#ERROR: nothing allowed after colon</span>
+    <span style="color:#609ca0">snakefile</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"modules/assembly.smk"</span>
+    <span style="color:#609ca0">config</span><span style="color:#3f8058">:</span> <span style="color:#f44f4f">"modules/assembly.yaml"</span>
+    <span style="color:#da4453;text-decoration:underline">input:</span> <span style="color:#f44f4f">"test"</span> <span style="color:#7a7c7d"># ERROR: `input` directive not allowed in modules</span>
+
+<span style="color:#7a7c7d"># Reuse a rule from the module; inside `with:` we use regular rule directives</span>
+<span style="color:#fdbc4b;font-weight:bold">use rule</span> <span style="color:#8e44ad">assemble</span> <span style="font-weight:bold">as</span> <span style="color:#8e44ad">assemble_mod</span> <span style="font-weight:bold">with</span>: <span style="color:#da4453;text-decoration:underline">something </span><span style="color:#7a7c7d">#ERROR: nothing allowed after colon</span>
+    <span style="color:#da4453;text-decoration:underline">snakefile:</span> <span style="color:#7a7c7d"># ERROR `snakefile` directive not allowed in rules</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">8</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#27aeae">mode</span> = <span style="color:#f44f4f">"quick"</span>
+    <span style="color:#609ca0">message</span>:
+        <span style="color:#f44f4f">"Assembling </span><span style="color:#0099ff;font-weight:bold">{wildcards.sample}</span><span style="color:#f44f4f"> (module override)"</span>
+    <span style="color:#7a7c7d"># wrong directive (kept to test error handling inside a use-body)</span>
+    <span style="color:#da4453;text-decoration:underline">outpt:</span> <span style="color:#f44f4f">"SHOULD-NOT-BE-HERE"</span>   <span style="color:#7a7c7d"># ERROR: typo</span>
+
+<span style="color:#7a7c7d"># ---------- INTENTIONAL TOP-LEVEL ERRORS ----------</span>
+<span style="color:#da4453;text-decoration:underline">workdirr:</span> <span style="color:#f44f4f">"typo/dir"</span>              <span style="color:#7a7c7d"># ERROR: unknown top-level keyword</span>
+<span style="color:#da4453;text-decoration:underline">snakefile:</span> <span style="color:#f44f4f">"top/level.smk"</span>        <span style="color:#7a7c7d"># ERROR: only valid inside module/subworkflow</span>
+
+<span style="color:#7a7c7d"># ---------- Pipeline ----------</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">all</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#8e44ad">expand</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"results/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">/summary.txt"</span><span style="color:#3f8058">,</span> <span style="color:#27aeae">sample</span>=<span style="color:#27aeae">SAMPLES</span><span style="color:#3f8058">)</span>
+
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">qc_fastqc</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#27aeae">r1</span> = <span style="font-weight:bold">lambda</span> <span style="color:#27aeae">wc</span><span style="color:#3f8058">:</span> <span style="color:#8e44ad">fq</span><span style="color:#3f8058">(</span><span style="color:#27aeae">wc</span><span style="color:#3f8058">.</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span> <span style="color:#f67400">1</span><span style="color:#3f8058">),</span>
+        <span style="color:#27aeae">r2</span> = <span style="font-weight:bold">lambda</span> <span style="color:#27aeae">wc</span><span style="color:#3f8058">:</span> <span style="color:#8e44ad">fq</span><span style="color:#3f8058">(</span><span style="color:#27aeae">wc</span><span style="color:#3f8058">.</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2</span><span style="color:#3f8058">),</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">html</span> = <span style="color:#f44f4f">"qc/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_fastqc.html"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">zip</span>  = <span style="color:#f44f4f">"qc/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_fastqc.zip"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">2</span>
+    <span style="color:#609ca0">resources</span>:
+        <span style="color:#27aeae">mem_mb</span> = <span style="color:#f67400">1024</span>
+    <span style="color:#609ca0">log</span>:
+        <span style="color:#f44f4f">"log/fastqc_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.log"</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#27aeae">extra</span> = <span style="color:#f44f4f">"--nogroup"</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"""</span>
+<span style="color:#f44f4f">        fastqc -t </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{params.extra}</span><span style="color:#f44f4f"> -o qc </span><span style="color:#0099ff;font-weight:bold">{input.r1}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.r2}</span><span style="color:#f44f4f"> > </span><span style="color:#0099ff;font-weight:bold">{log}</span><span style="color:#f44f4f"> 2>&amp;1</span>
+<span style="color:#f44f4f">        """</span>
+
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">trim_cutadapt</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#27aeae">r1</span> = <span style="font-weight:bold">lambda</span> <span style="color:#27aeae">wc</span><span style="color:#3f8058">:</span> <span style="color:#8e44ad">fq</span><span style="color:#3f8058">(</span><span style="color:#27aeae">wc</span><span style="color:#3f8058">.</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span> <span style="color:#f67400">1</span><span style="color:#3f8058">),</span>
+        <span style="color:#27aeae">r2</span> = <span style="font-weight:bold">lambda</span> <span style="color:#27aeae">wc</span><span style="color:#3f8058">:</span> <span style="color:#8e44ad">fq</span><span style="color:#3f8058">(</span><span style="color:#27aeae">wc</span><span style="color:#3f8058">.</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2</span><span style="color:#3f8058">),</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">r1</span> = <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R1.fastq.gz"</span><span style="color:#3f8058">,</span> <span style="color:#7a7c7d"># `sample`: wildcard</span>
+        <span style="color:#27aeae">r2</span> = <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R2.fastq.gz"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">report</span> = <span style="color:#f44f4f">f"</span><span style="color:#3daee9">{</span><span style="color:#27aeae">report_dir</span><span style="color:#3daee9">}</span><span style="color:#f44f4f">/</span><span style="color:#27ae60">{{sample}}</span><span style="color:#f44f4f">"</span> <span style="color:#7a7c7d"># `report_dir`: f-string interpolation, `sample`: wildcard</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#27aeae">a</span> = <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"adapters"</span><span style="color:#3f8058">][</span><span style="color:#f44f4f">"fwd"</span><span style="color:#3f8058">],</span>
+        <span style="color:#27aeae">A</span> = <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"adapters"</span><span style="color:#3f8058">][</span><span style="color:#f44f4f">"rev"</span><span style="color:#3f8058">],</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">8</span>
+    <span style="color:#609ca0">conda</span>:
+        <span style="color:#f44f4f">"envs/cutadapt.yml"</span>
+    <span style="color:#609ca0">log</span>:
+        <span style="color:#f44f4f">"log/cutadapt_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.log"</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"""</span>
+<span style="color:#f44f4f">        cutadapt -j </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> -a </span><span style="color:#0099ff;font-weight:bold">{params.a}</span><span style="color:#f44f4f"> -A </span><span style="color:#0099ff;font-weight:bold">{params.A}</span><span style="color:#f44f4f"> \</span>
+<span style="color:#f44f4f">            -o </span><span style="color:#0099ff;font-weight:bold">{output.r1}</span><span style="color:#f44f4f"> -p </span><span style="color:#0099ff;font-weight:bold">{output.r2}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.r1}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.r2}</span><span style="color:#f44f4f"> > </span><span style="color:#0099ff;font-weight:bold">{log}</span><span style="color:#f44f4f"> 2>&amp;1</span>
+<span style="color:#f44f4f">        """</span>
+
+<span style="color:#7a7c7d"># Example of wrapper usage (version string illustrative)</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">align</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#27aeae">r1</span> = <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R1.fastq.gz"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">r2</span> = <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R2.fastq.gz"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">ref</span> = <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"ref"</span><span style="color:#3f8058">],</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">bam</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.unsorted.bam"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">12</span>
+    <span style="color:#609ca0">resources</span>:
+        <span style="color:#27aeae">mem_mb</span> = <span style="color:#f67400">8000</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#7a7c7d"># BWA-MEM2 example options</span>
+        <span style="color:#27aeae">extra</span> = <span style="color:#f44f4f">"-M"</span>
+    <span style="color:#609ca0">log</span>:
+        <span style="color:#f44f4f">"log/align_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.log"</span>
+    <span style="color:#609ca0">wrapper</span>:
+        <span style="color:#f44f4f">"0.90.0/bio/bwa/mem2"</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"bwa-mem2 mem -t </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{params.extra}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.ref}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.r1}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.r2}</span><span style="color:#f44f4f"> | samtools view -bS - > </span><span style="color:#0099ff;font-weight:bold">{output.bam}</span><span style="color:#f44f4f"> 2> </span><span style="color:#0099ff;font-weight:bold">{log}</span><span style="color:#f44f4f">"</span>
+
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">sort_index</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.unsorted.bam"</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">bam</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">bai</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam.bai"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">6</span>
+    <span style="color:#609ca0">resources</span>:
+        <span style="color:#27aeae">mem_mb</span> = <span style="color:#f67400">4000</span>
+    <span style="color:#609ca0">envmodules</span>:
+        <span style="color:#f44f4f">"samtools/1.16"</span>
+    <span style="color:#609ca0">shadow</span>:
+        <span style="color:#f44f4f">"minimal"</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"""</span>
+<span style="color:#f44f4f">        samtools sort -@ </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> -o </span><span style="color:#0099ff;font-weight:bold">{output.bam}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input}</span>
+<span style="color:#f44f4f">        samtools index -@ </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{output.bam}</span>
+<span style="color:#f44f4f">        """</span>
+
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">quantify</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#27aeae">bam</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">bai</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam.bai"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">gtf</span> = <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"gtf"</span><span style="color:#3f8058">],</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">counts</span> = <span style="color:#f44f4f">"counts/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.txt"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">4</span>
+    <span style="color:#609ca0">group</span>:
+        <span style="color:#f44f4f">"counting"</span>
+    <span style="color:#609ca0">priority</span>:
+        <span style="color:#f67400">50</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#27aeae">feature_type</span> = <span style="color:#f44f4f">"exon"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">id_attr</span> = <span style="color:#f44f4f">"gene_id"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"""</span>
+<span style="color:#f44f4f">        featureCounts -T </span><span style="color:#0099ff;font-weight:bold">{threads}</span><span style="color:#f44f4f"> -a </span><span style="color:#0099ff;font-weight:bold">{input.gtf}</span><span style="color:#f44f4f"> -t </span><span style="color:#0099ff;font-weight:bold">{params.feature_type}</span><span style="color:#f44f4f"> -g </span><span style="color:#0099ff;font-weight:bold">{params.id_attr}</span><span style="color:#f44f4f"> \</span>
+<span style="color:#f44f4f">            -o </span><span style="color:#0099ff;font-weight:bold">{output.counts}</span><span style="color:#f44f4f"> </span><span style="color:#0099ff;font-weight:bold">{input.bam}</span>
+<span style="color:#f44f4f">        """</span>
+
+<span style="color:#7a7c7d"># Example of script &amp; notebook directives</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">plot_qc</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#f44f4f">"qc/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_fastqc.zip"</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#f44f4f">"plots/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_qc.png"</span>
+    <span style="color:#609ca0">script</span>:
+        <span style="color:#f44f4f">"scripts/plot_qc.py"</span>    <span style="color:#7a7c7d"># not executed; present to test directive</span>
+
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">explore_notebook</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#f44f4f">"counts/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.txt"</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#f44f4f">"notebooks/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_eda.ipynb"</span>
+    <span style="color:#609ca0">notebook</span>:
+        <span style="color:#f44f4f">"notebooks/template.ipynb"</span>
+
+<span style="color:#7a7c7d"># Example of per-rule container / cache / benchmark / message / name / version (legacy)</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">summarize</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#27aeae">bam</span> = <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam"</span><span style="color:#3f8058">,</span>
+        <span style="color:#27aeae">counts</span> = <span style="color:#f44f4f">"counts/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.txt"</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#27aeae">txt</span> = <span style="color:#f44f4f">"results/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">/summary.txt"</span>
+    <span style="color:#609ca0">params</span>:
+        <span style="color:#27aeae">tag</span> = <span style="color:#f44f4f">"</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">"</span>        <span style="color:#7a7c7d"># wildcard should highlight distinctly</span>
+    <span style="color:#609ca0">message</span>:
+        <span style="color:#f44f4f">"Summarizing </span><span style="color:#0099ff;font-weight:bold">{wildcards.sample}</span><span style="color:#f44f4f">"</span>
+    <span style="color:#609ca0">name</span>:
+        <span style="color:#f44f4f">"summarize_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">"</span>
+    <span style="color:#609ca0">benchmark</span>:
+        <span style="color:#f44f4f">"benchmark/summarize_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.tsv"</span>
+    <span style="color:#609ca0">cache</span>:
+        <span style="color:#f44f4f">"permissive"</span>
+    <span style="color:#609ca0">container</span>:
+        <span style="color:#f44f4f">"docker://python:3.11"</span>
+    <span style="color:#609ca0">version</span>: <span style="color:#f44f4f">"1.0"</span>            <span style="color:#7a7c7d"># legacy directive</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">2</span>
+    <span style="color:#609ca0">resources</span>:
+        <span style="color:#27aeae">mem_mb</span> = <span style="color:#f67400">512</span>
+    <span style="color:#609ca0">log</span>:
+        <span style="color:#f44f4f">"log/summarize_</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.log"</span>
+    <span style="color:#609ca0">run:</span>
+        <span style="color:#7a7c7d"># simple Python run block</span>
+        <span style="font-weight:bold">import</span> <span style="color:#27aeae">json</span>
+        <span style="color:#27aeae">meta</span> = <span style="color:#3f8058">{</span>
+            <span style="color:#f44f4f">"sample"</span><span style="color:#3f8058">:</span> <span style="color:#27aeae">wildcards</span><span style="color:#3f8058">.</span><span style="color:#27aeae">sample</span><span style="color:#3f8058">,</span>
+            <span style="color:#f44f4f">"bam"</span><span style="color:#3f8058">:</span> <span style="color:#27aeae">input</span><span style="color:#3f8058">.</span><span style="color:#27aeae">bam</span><span style="color:#3f8058">,</span>
+            <span style="color:#f44f4f">"counts"</span><span style="color:#3f8058">:</span> <span style="color:#27aeae">input</span><span style="color:#3f8058">.</span><span style="color:#27aeae">counts</span><span style="color:#3f8058">,</span>
+            <span style="color:#f44f4f">"tag"</span><span style="color:#3f8058">:</span> <span style="color:#27aeae">params</span><span style="color:#3f8058">.</span><span style="color:#27aeae">tag</span><span style="color:#3f8058">,</span>
+        <span style="color:#3f8058">}</span>
+        <span style="color:#7a7c7d"># write a tiny summary</span>
+        <span style="font-weight:bold">import</span> <span style="color:#27aeae">os</span>
+        <span style="color:#27aeae">os</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">makedirs</span><span style="color:#3f8058">(</span><span style="color:#27aeae">os</span><span style="color:#3f8058">.</span><span style="color:#27aeae">path</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">dirname</span><span style="color:#3f8058">(</span><span style="color:#27aeae">output</span><span style="color:#3f8058">.</span><span style="color:#27aeae">txt</span><span style="color:#3f8058">),</span> <span style="color:#27aeae">exist_ok</span>=<span style="color:#27aeae;font-weight:bold">True</span><span style="color:#3f8058">)</span>
+        <span style="font-weight:bold">with</span> <span style="color:#8e44ad">open</span><span style="color:#3f8058">(</span><span style="color:#27aeae">output</span><span style="color:#3f8058">.</span><span style="color:#27aeae">txt</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"w"</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">as</span> <span style="color:#27aeae">fh</span><span style="color:#3f8058">:</span>
+            <span style="color:#27aeae">fh</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">write</span><span style="color:#3f8058">(</span><span style="color:#27aeae">json</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">dumps</span><span style="color:#3f8058">(</span><span style="color:#27aeae">meta</span><span style="color:#3f8058">,</span> <span style="color:#27aeae">indent</span>=<span style="color:#f67400">2</span><span style="color:#3f8058">)</span> + <span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">)</span>
+
+<span style="color:#7a7c7d"># ---------- More intentional errors inside a rule body ----------</span>
+
+<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#27aeae">config</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"method"</span><span style="color:#3f8058">]</span> <span style="color:#3f8058">==</span> <span style="color:#f44f4f">"A"</span>:
+    
+    <span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">bad_header_examples_A</span>:
+        <span style="color:#609ca0">input</span>:
+            <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam"</span>
+        <span style="color:#da4453;text-decoration:underline">outpt:</span>      <span style="color:#7a7c7d"># ERROR: unknown directive</span>
+            <span style="color:#f44f4f">"nowhere.txt"</span>
+        <span style="color:#da4453;text-decoration:underline">foo:</span>        <span style="color:#7a7c7d"># ERROR: unknown directive</span>
+            <span style="color:#f44f4f">"bar"</span>
+        <span style="color:#609ca0">shell</span>:
+            <span style="color:#f44f4f">"true"</span>
+<span style="color:#fdbc4b;font-weight:bold">else</span>:
+    <span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">bad_header_examples_B</span>:
+        <span style="color:#609ca0">input</span>:
+            <span style="color:#f44f4f">"map/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">.bam"</span>
+        <span style="color:#609ca0">output</span>:      <span style="color:#7a7c7d"># ERROR: unknown directive</span>
+            <span style="color:#f44f4f">"nowhere.txt"</span>
+        <span style="color:#da4453;text-decoration:underline">foo:</span>        <span style="color:#7a7c7d"># ERROR: unknown directive</span>
+            <span style="color:#f44f4f">"bar"</span>
+        <span style="color:#609ca0">shell</span>:
+            <span style="color:#f44f4f">"true"</span>
+
+<span style="color:#7a7c7d"># ---------- Using the module rule  ----------</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">assemble_via_module</span>:
+    <span style="color:#609ca0">input</span>:
+        <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R1.fastq.gz"</span><span style="color:#3f8058">,</span>
+        <span style="color:#f44f4f">"trim/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">_R2.fastq.gz"</span><span style="color:#3f8058">,</span>
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#f44f4f">"assembly/</span><span style="color:#27ae60">{sample}</span><span style="color:#f44f4f">/contigs.fa"</span>
+    <span style="color:#609ca0">threads</span>: <span style="color:#f67400">8</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"echo assembly > </span><span style="color:#0099ff;font-weight:bold">{output}</span><span style="color:#f44f4f">"</span>
+
+<span style="color:#7a7c7d"># ---------- Default target redirection ----------</span>
+<span style="color:#fdbc4b;font-weight:bold">rule</span> <span style="color:#8e44ad">final_default</span>:
+    <span style="color:#609ca0">output</span>:
+        <span style="color:#f44f4f">"FINAL.marker"</span>
+    <span style="color:#609ca0">default_target</span>:
+        <span style="color:#27aeae;font-weight:bold">True</span>
+    <span style="color:#609ca0">shell</span>:
+        <span style="color:#f44f4f">"touch </span><span style="color:#0099ff;font-weight:bold">{output}</span><span style="color:#f44f4f">"</span>
+        
+<span style="color:#fdbc4b;font-weight:bold">rule</span>: <span style="color:#da4453;text-decoration:underline">no text</span> <span style="color:#da4453;text-decoration:underline">allowed</span> <span style="color:#da4453;text-decoration:underline">here</span>  <span style="color:#7a7c7d"># ERROR: no text allowed after block opener</span>
+    <span style="color:#609ca0">input</span>: <span style="color:#f44f4f">"back_to_normal.txt"</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.smk.html 6.19.0-0ubuntu1/autotests/html/test.smk.html
--- 6.18.0-1/autotests/html/test.smk.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.smk.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,286 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.smk</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Snakemake) - Theme (Breeze Light)"/>
+</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
+<span style="color:#898887"># =============================================================================</span>
+<span style="color:#898887"># Snakefile — comprehensive feature test for Snakemake highlighting</span>
+<span style="color:#898887"># Minimal comments; lines marked `# ERROR:` are intentionally invalid.</span>
+<span style="color:#898887"># =============================================================================</span>
+
+<span style="color:#898887"># ---------- Top-level Python ----------</span>
+
+<span style="font-weight:bold">if</span> <span style="color:#aa5500">True</span>: <span style="color:#bf0303;text-decoration:underline">forbidden</span> <span style="color:#898887"># ERROR: no text allowed after block opener</span>
+    <span style="color:#0057ae">a</span> = <span style="color:#b08000">1</span>
+<span style="font-weight:bold">else</span>: <span style="color:#bf0303;text-decoration:underline">forbidden</span> <span style="color:#898887"># ERROR: same</span>
+    <span style="color:#0057ae">a</span> = <span style="color:#b08000">0</span>
+
+<span style="color:#0057ae">config</span> = <span style="color:#ca60ca">{</span>
+    <span style="color:#bf0303">"method"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"B"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#bf0303">"samples"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span><span style="color:#bf0303">"S1"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"S2"</span><span style="color:#ca60ca">],</span>
+    <span style="color:#bf0303">"ref"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"ref/genome.fa"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#bf0303">"gtf"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"ref/genes.gtf"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#bf0303">"threads_default"</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">4</span><span style="color:#ca60ca">,</span>
+    <span style="color:#bf0303">"work"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"work"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#bf0303">"adapters"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span><span style="color:#bf0303">"fwd"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"AGATCGGAAGAGC"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"rev"</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"AGATCGGAAGAGC"</span><span style="color:#ca60ca">}</span>
+<span style="color:#ca60ca">}</span>
+<span style="color:#0057ae">SAMPLES</span> = <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"samples"</span><span style="color:#ca60ca">]</span>
+
+<span style="font-weight:bold">def</span> <span style="color:#644a9b">fq</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">mate</span><span style="color:#ca60ca">)</span>:
+    <span style="font-weight:bold">return</span> <span style="color:#bf0303">f"raw/</span><span style="color:#3daee9">{</span><span style="color:#0057ae">sample</span><span style="color:#3daee9">}</span><span style="color:#bf0303">_R</span><span style="color:#3daee9">{</span><span style="color:#0057ae">mate</span><span style="color:#3daee9">}</span><span style="color:#bf0303">.fastq.gz"</span>
+
+<span style="color:#898887"># ---------- Global Snakemake directives ----------</span>
+<span style="font-weight:bold">workdir</span>: <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"work"</span><span style="color:#ca60ca">]</span>
+<span style="font-weight:bold">localrules</span>: <span style="color:#0057ae">all</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">qc_fastqc</span>
+<span style="font-weight:bold">ruleorder</span>: <span style="color:#0057ae">sort_index</span> > <span style="color:#0057ae">align</span>
+<span style="font-weight:bold">report</span>: <span style="color:#bf0303">"report/report.html"</span>
+<span style="font-weight:bold">envvars</span>: <span style="color:#bf0303">"LD_LIBRARY_PATH"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"OMP_NUM_THREADS"</span>
+<span style="font-weight:bold">wildcard_constraints</span>:
+    <span style="color:#0057ae">sample</span> = <span style="color:#bf0303">r"[A-Za-z0-9_]+"</span>
+
+<span style="font-weight:bold">include</span>: <span style="color:#bf0303">"extras.smk"</span>
+<span style="font-weight:bold">container</span>: <span style="color:#bf0303">"docker://ubuntu:22.04"</span>
+<span style="font-weight:bold">conda</span>: <span style="color:#bf0303">"envs/global.yml"</span>
+<span style="font-weight:bold">containerized</span>:
+
+<span style="color:#898887"># Legacy/compat directives still recognized in old workflows</span>
+<span style="font-weight:bold">moduleinclude</span>: <span style="color:#bf0303">"legacy/tools.smk"</span>   <span style="color:#898887"># legacy include for modules</span>
+<span style="color:#898887"># deprecated (kept for legacy)</span>
+<span style="font-weight:bold">subworkflow</span> <span style="color:#644a9b">oldwf</span>:  <span style="color:#bf0303;text-decoration:underline">something </span><span style="color:#898887">#ERROR: nothing allowed after colon</span>
+    <span style="color:#644a9b;font-weight:bold">workdir</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"oldwf"</span>
+    <span style="color:#644a9b;font-weight:bold">snakefile</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"workflow/Snakefile"</span>
+    <span style="color:#bf0303;text-decoration:underline">input:</span> <span style="color:#898887"># ERROR: `input` directive not allowed in subworkflows</span>
+
+<span style="color:#898887"># ---------- Modules and use rule ----------</span>
+<span style="font-weight:bold">module</span> <span style="color:#644a9b">asm</span>: <span style="color:#bf0303;text-decoration:underline">something </span><span style="color:#898887">#ERROR: nothing allowed after colon</span>
+    <span style="color:#644a9b;font-weight:bold">snakefile</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"modules/assembly.smk"</span>
+    <span style="color:#644a9b;font-weight:bold">config</span><span style="color:#ca60ca">:</span> <span style="color:#bf0303">"modules/assembly.yaml"</span>
+    <span style="color:#bf0303;text-decoration:underline">input:</span> <span style="color:#bf0303">"test"</span> <span style="color:#898887"># ERROR: `input` directive not allowed in modules</span>
+
+<span style="color:#898887"># Reuse a rule from the module; inside `with:` we use regular rule directives</span>
+<span style="font-weight:bold">use rule</span> <span style="color:#644a9b">assemble</span> <span style="font-weight:bold">as</span> <span style="color:#644a9b">assemble_mod</span> <span style="font-weight:bold">with</span>: <span style="color:#bf0303;text-decoration:underline">something </span><span style="color:#898887">#ERROR: nothing allowed after colon</span>
+    <span style="color:#bf0303;text-decoration:underline">snakefile:</span> <span style="color:#898887"># ERROR `snakefile` directive not allowed in rules</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">8</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#0057ae">mode</span> = <span style="color:#bf0303">"quick"</span>
+    <span style="color:#644a9b;font-weight:bold">message</span>:
+        <span style="color:#bf0303">"Assembling </span><span style="color:#0095ff;font-weight:bold">{wildcards.sample}</span><span style="color:#bf0303"> (module override)"</span>
+    <span style="color:#898887"># wrong directive (kept to test error handling inside a use-body)</span>
+    <span style="color:#bf0303;text-decoration:underline">outpt:</span> <span style="color:#bf0303">"SHOULD-NOT-BE-HERE"</span>   <span style="color:#898887"># ERROR: typo</span>
+
+<span style="color:#898887"># ---------- INTENTIONAL TOP-LEVEL ERRORS ----------</span>
+<span style="color:#bf0303;text-decoration:underline">workdirr:</span> <span style="color:#bf0303">"typo/dir"</span>              <span style="color:#898887"># ERROR: unknown top-level keyword</span>
+<span style="color:#bf0303;text-decoration:underline">snakefile:</span> <span style="color:#bf0303">"top/level.smk"</span>        <span style="color:#898887"># ERROR: only valid inside module/subworkflow</span>
+
+<span style="color:#898887"># ---------- Pipeline ----------</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">all</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#644a9b">expand</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"results/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">/summary.txt"</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">sample</span>=<span style="color:#0057ae">SAMPLES</span><span style="color:#ca60ca">)</span>
+
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">qc_fastqc</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#0057ae">r1</span> = <span style="font-weight:bold">lambda</span> <span style="color:#0057ae">wc</span><span style="color:#ca60ca">:</span> <span style="color:#644a9b">fq</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">wc</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">),</span>
+        <span style="color:#0057ae">r2</span> = <span style="font-weight:bold">lambda</span> <span style="color:#0057ae">wc</span><span style="color:#ca60ca">:</span> <span style="color:#644a9b">fq</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">wc</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">),</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">html</span> = <span style="color:#bf0303">"qc/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_fastqc.html"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">zip</span>  = <span style="color:#bf0303">"qc/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_fastqc.zip"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">2</span>
+    <span style="color:#644a9b;font-weight:bold">resources</span>:
+        <span style="color:#0057ae">mem_mb</span> = <span style="color:#b08000">1024</span>
+    <span style="color:#644a9b;font-weight:bold">log</span>:
+        <span style="color:#bf0303">"log/fastqc_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.log"</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#0057ae">extra</span> = <span style="color:#bf0303">"--nogroup"</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"""</span>
+<span style="color:#bf0303">        fastqc -t </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{params.extra}</span><span style="color:#bf0303"> -o qc </span><span style="color:#0095ff;font-weight:bold">{input.r1}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.r2}</span><span style="color:#bf0303"> > </span><span style="color:#0095ff;font-weight:bold">{log}</span><span style="color:#bf0303"> 2>&amp;1</span>
+<span style="color:#bf0303">        """</span>
+
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">trim_cutadapt</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#0057ae">r1</span> = <span style="font-weight:bold">lambda</span> <span style="color:#0057ae">wc</span><span style="color:#ca60ca">:</span> <span style="color:#644a9b">fq</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">wc</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">),</span>
+        <span style="color:#0057ae">r2</span> = <span style="font-weight:bold">lambda</span> <span style="color:#0057ae">wc</span><span style="color:#ca60ca">:</span> <span style="color:#644a9b">fq</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">wc</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">),</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">r1</span> = <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R1.fastq.gz"</span><span style="color:#ca60ca">,</span> <span style="color:#898887"># `sample`: wildcard</span>
+        <span style="color:#0057ae">r2</span> = <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R2.fastq.gz"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">report</span> = <span style="color:#bf0303">f"</span><span style="color:#3daee9">{</span><span style="color:#0057ae">report_dir</span><span style="color:#3daee9">}</span><span style="color:#bf0303">/</span><span style="color:#006e28">{{sample}}</span><span style="color:#bf0303">"</span> <span style="color:#898887"># `report_dir`: f-string interpolation, `sample`: wildcard</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#0057ae">a</span> = <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"adapters"</span><span style="color:#ca60ca">][</span><span style="color:#bf0303">"fwd"</span><span style="color:#ca60ca">],</span>
+        <span style="color:#0057ae">A</span> = <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"adapters"</span><span style="color:#ca60ca">][</span><span style="color:#bf0303">"rev"</span><span style="color:#ca60ca">],</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">8</span>
+    <span style="color:#644a9b;font-weight:bold">conda</span>:
+        <span style="color:#bf0303">"envs/cutadapt.yml"</span>
+    <span style="color:#644a9b;font-weight:bold">log</span>:
+        <span style="color:#bf0303">"log/cutadapt_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.log"</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"""</span>
+<span style="color:#bf0303">        cutadapt -j </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> -a </span><span style="color:#0095ff;font-weight:bold">{params.a}</span><span style="color:#bf0303"> -A </span><span style="color:#0095ff;font-weight:bold">{params.A}</span><span style="color:#bf0303"> \</span>
+<span style="color:#bf0303">            -o </span><span style="color:#0095ff;font-weight:bold">{output.r1}</span><span style="color:#bf0303"> -p </span><span style="color:#0095ff;font-weight:bold">{output.r2}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.r1}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.r2}</span><span style="color:#bf0303"> > </span><span style="color:#0095ff;font-weight:bold">{log}</span><span style="color:#bf0303"> 2>&amp;1</span>
+<span style="color:#bf0303">        """</span>
+
+<span style="color:#898887"># Example of wrapper usage (version string illustrative)</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">align</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#0057ae">r1</span> = <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R1.fastq.gz"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">r2</span> = <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R2.fastq.gz"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">ref</span> = <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"ref"</span><span style="color:#ca60ca">],</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">bam</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.unsorted.bam"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">12</span>
+    <span style="color:#644a9b;font-weight:bold">resources</span>:
+        <span style="color:#0057ae">mem_mb</span> = <span style="color:#b08000">8000</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#898887"># BWA-MEM2 example options</span>
+        <span style="color:#0057ae">extra</span> = <span style="color:#bf0303">"-M"</span>
+    <span style="color:#644a9b;font-weight:bold">log</span>:
+        <span style="color:#bf0303">"log/align_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.log"</span>
+    <span style="color:#644a9b;font-weight:bold">wrapper</span>:
+        <span style="color:#bf0303">"0.90.0/bio/bwa/mem2"</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"bwa-mem2 mem -t </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{params.extra}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.ref}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.r1}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.r2}</span><span style="color:#bf0303"> | samtools view -bS - > </span><span style="color:#0095ff;font-weight:bold">{output.bam}</span><span style="color:#bf0303"> 2> </span><span style="color:#0095ff;font-weight:bold">{log}</span><span style="color:#bf0303">"</span>
+
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">sort_index</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.unsorted.bam"</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">bam</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">bai</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam.bai"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">6</span>
+    <span style="color:#644a9b;font-weight:bold">resources</span>:
+        <span style="color:#0057ae">mem_mb</span> = <span style="color:#b08000">4000</span>
+    <span style="color:#644a9b;font-weight:bold">envmodules</span>:
+        <span style="color:#bf0303">"samtools/1.16"</span>
+    <span style="color:#644a9b;font-weight:bold">shadow</span>:
+        <span style="color:#bf0303">"minimal"</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"""</span>
+<span style="color:#bf0303">        samtools sort -@ </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> -o </span><span style="color:#0095ff;font-weight:bold">{output.bam}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input}</span>
+<span style="color:#bf0303">        samtools index -@ </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{output.bam}</span>
+<span style="color:#bf0303">        """</span>
+
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">quantify</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#0057ae">bam</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">bai</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam.bai"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">gtf</span> = <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"gtf"</span><span style="color:#ca60ca">],</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">counts</span> = <span style="color:#bf0303">"counts/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.txt"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">4</span>
+    <span style="color:#644a9b;font-weight:bold">group</span>:
+        <span style="color:#bf0303">"counting"</span>
+    <span style="color:#644a9b;font-weight:bold">priority</span>:
+        <span style="color:#b08000">50</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#0057ae">feature_type</span> = <span style="color:#bf0303">"exon"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">id_attr</span> = <span style="color:#bf0303">"gene_id"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"""</span>
+<span style="color:#bf0303">        featureCounts -T </span><span style="color:#0095ff;font-weight:bold">{threads}</span><span style="color:#bf0303"> -a </span><span style="color:#0095ff;font-weight:bold">{input.gtf}</span><span style="color:#bf0303"> -t </span><span style="color:#0095ff;font-weight:bold">{params.feature_type}</span><span style="color:#bf0303"> -g </span><span style="color:#0095ff;font-weight:bold">{params.id_attr}</span><span style="color:#bf0303"> \</span>
+<span style="color:#bf0303">            -o </span><span style="color:#0095ff;font-weight:bold">{output.counts}</span><span style="color:#bf0303"> </span><span style="color:#0095ff;font-weight:bold">{input.bam}</span>
+<span style="color:#bf0303">        """</span>
+
+<span style="color:#898887"># Example of script &amp; notebook directives</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">plot_qc</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#bf0303">"qc/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_fastqc.zip"</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#bf0303">"plots/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_qc.png"</span>
+    <span style="color:#644a9b;font-weight:bold">script</span>:
+        <span style="color:#bf0303">"scripts/plot_qc.py"</span>    <span style="color:#898887"># not executed; present to test directive</span>
+
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">explore_notebook</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#bf0303">"counts/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.txt"</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#bf0303">"notebooks/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_eda.ipynb"</span>
+    <span style="color:#644a9b;font-weight:bold">notebook</span>:
+        <span style="color:#bf0303">"notebooks/template.ipynb"</span>
+
+<span style="color:#898887"># Example of per-rule container / cache / benchmark / message / name / version (legacy)</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">summarize</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#0057ae">bam</span> = <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#0057ae">counts</span> = <span style="color:#bf0303">"counts/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.txt"</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#0057ae">txt</span> = <span style="color:#bf0303">"results/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">/summary.txt"</span>
+    <span style="color:#644a9b;font-weight:bold">params</span>:
+        <span style="color:#0057ae">tag</span> = <span style="color:#bf0303">"</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">"</span>        <span style="color:#898887"># wildcard should highlight distinctly</span>
+    <span style="color:#644a9b;font-weight:bold">message</span>:
+        <span style="color:#bf0303">"Summarizing </span><span style="color:#0095ff;font-weight:bold">{wildcards.sample}</span><span style="color:#bf0303">"</span>
+    <span style="color:#644a9b;font-weight:bold">name</span>:
+        <span style="color:#bf0303">"summarize_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">"</span>
+    <span style="color:#644a9b;font-weight:bold">benchmark</span>:
+        <span style="color:#bf0303">"benchmark/summarize_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.tsv"</span>
+    <span style="color:#644a9b;font-weight:bold">cache</span>:
+        <span style="color:#bf0303">"permissive"</span>
+    <span style="color:#644a9b;font-weight:bold">container</span>:
+        <span style="color:#bf0303">"docker://python:3.11"</span>
+    <span style="color:#644a9b;font-weight:bold">version</span>: <span style="color:#bf0303">"1.0"</span>            <span style="color:#898887"># legacy directive</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">2</span>
+    <span style="color:#644a9b;font-weight:bold">resources</span>:
+        <span style="color:#0057ae">mem_mb</span> = <span style="color:#b08000">512</span>
+    <span style="color:#644a9b;font-weight:bold">log</span>:
+        <span style="color:#bf0303">"log/summarize_</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.log"</span>
+    <span style="color:#644a9b;font-weight:bold">run:</span>
+        <span style="color:#898887"># simple Python run block</span>
+        <span style="font-weight:bold">import</span> <span style="color:#0057ae">json</span>
+        <span style="color:#0057ae">meta</span> = <span style="color:#ca60ca">{</span>
+            <span style="color:#bf0303">"sample"</span><span style="color:#ca60ca">:</span> <span style="color:#0057ae">wildcards</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">sample</span><span style="color:#ca60ca">,</span>
+            <span style="color:#bf0303">"bam"</span><span style="color:#ca60ca">:</span> <span style="color:#0057ae">input</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">bam</span><span style="color:#ca60ca">,</span>
+            <span style="color:#bf0303">"counts"</span><span style="color:#ca60ca">:</span> <span style="color:#0057ae">input</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">counts</span><span style="color:#ca60ca">,</span>
+            <span style="color:#bf0303">"tag"</span><span style="color:#ca60ca">:</span> <span style="color:#0057ae">params</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">tag</span><span style="color:#ca60ca">,</span>
+        <span style="color:#ca60ca">}</span>
+        <span style="color:#898887"># write a tiny summary</span>
+        <span style="font-weight:bold">import</span> <span style="color:#0057ae">os</span>
+        <span style="color:#0057ae">os</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">makedirs</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">os</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">path</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">dirname</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">output</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">txt</span><span style="color:#ca60ca">),</span> <span style="color:#0057ae">exist_ok</span>=<span style="color:#aa5500">True</span><span style="color:#ca60ca">)</span>
+        <span style="font-weight:bold">with</span> <span style="color:#644a9b">open</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">output</span><span style="color:#ca60ca">.</span><span style="color:#0057ae">txt</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"w"</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">as</span> <span style="color:#0057ae">fh</span><span style="color:#ca60ca">:</span>
+            <span style="color:#0057ae">fh</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">write</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">json</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">dumps</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">meta</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">indent</span>=<span style="color:#b08000">2</span><span style="color:#ca60ca">)</span> + <span style="color:#bf0303">"</span><span style="color:#924c9d">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">)</span>
+
+<span style="color:#898887"># ---------- More intentional errors inside a rule body ----------</span>
+
+<span style="font-weight:bold">if</span> <span style="color:#0057ae">config</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"method"</span><span style="color:#ca60ca">]</span> <span style="color:#ca60ca">==</span> <span style="color:#bf0303">"A"</span>:
+    
+    <span style="font-weight:bold">rule</span> <span style="color:#644a9b">bad_header_examples_A</span>:
+        <span style="color:#644a9b;font-weight:bold">input</span>:
+            <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam"</span>
+        <span style="color:#bf0303;text-decoration:underline">outpt:</span>      <span style="color:#898887"># ERROR: unknown directive</span>
+            <span style="color:#bf0303">"nowhere.txt"</span>
+        <span style="color:#bf0303;text-decoration:underline">foo:</span>        <span style="color:#898887"># ERROR: unknown directive</span>
+            <span style="color:#bf0303">"bar"</span>
+        <span style="color:#644a9b;font-weight:bold">shell</span>:
+            <span style="color:#bf0303">"true"</span>
+<span style="font-weight:bold">else</span>:
+    <span style="font-weight:bold">rule</span> <span style="color:#644a9b">bad_header_examples_B</span>:
+        <span style="color:#644a9b;font-weight:bold">input</span>:
+            <span style="color:#bf0303">"map/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">.bam"</span>
+        <span style="color:#644a9b;font-weight:bold">output</span>:      <span style="color:#898887"># ERROR: unknown directive</span>
+            <span style="color:#bf0303">"nowhere.txt"</span>
+        <span style="color:#bf0303;text-decoration:underline">foo:</span>        <span style="color:#898887"># ERROR: unknown directive</span>
+            <span style="color:#bf0303">"bar"</span>
+        <span style="color:#644a9b;font-weight:bold">shell</span>:
+            <span style="color:#bf0303">"true"</span>
+
+<span style="color:#898887"># ---------- Using the module rule  ----------</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">assemble_via_module</span>:
+    <span style="color:#644a9b;font-weight:bold">input</span>:
+        <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R1.fastq.gz"</span><span style="color:#ca60ca">,</span>
+        <span style="color:#bf0303">"trim/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">_R2.fastq.gz"</span><span style="color:#ca60ca">,</span>
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#bf0303">"assembly/</span><span style="color:#006e28">{sample}</span><span style="color:#bf0303">/contigs.fa"</span>
+    <span style="color:#644a9b;font-weight:bold">threads</span>: <span style="color:#b08000">8</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"echo assembly > </span><span style="color:#0095ff;font-weight:bold">{output}</span><span style="color:#bf0303">"</span>
+
+<span style="color:#898887"># ---------- Default target redirection ----------</span>
+<span style="font-weight:bold">rule</span> <span style="color:#644a9b">final_default</span>:
+    <span style="color:#644a9b;font-weight:bold">output</span>:
+        <span style="color:#bf0303">"FINAL.marker"</span>
+    <span style="color:#644a9b;font-weight:bold">default_target</span>:
+        <span style="color:#aa5500">True</span>
+    <span style="color:#644a9b;font-weight:bold">shell</span>:
+        <span style="color:#bf0303">"touch </span><span style="color:#0095ff;font-weight:bold">{output}</span><span style="color:#bf0303">"</span>
+        
+<span style="font-weight:bold">rule</span>: <span style="color:#bf0303;text-decoration:underline">no text</span> <span style="color:#bf0303;text-decoration:underline">allowed</span> <span style="color:#bf0303;text-decoration:underline">here</span>  <span style="color:#898887"># ERROR: no text allowed after block opener</span>
+    <span style="color:#644a9b;font-weight:bold">input</span>: <span style="color:#bf0303">"back_to_normal.txt"</span>
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.xkb.dark.html 6.19.0-0ubuntu1/autotests/html/test.xkb.dark.html
--- 6.18.0-1/autotests/html/test.xkb.dark.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.xkb.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.xkb</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (XKeyboardConfig) - Theme (Breeze Dark)"/>
+</head><body style="background-color:#232629;color:#cfcfc2"><pre>
+<span style="color:#8e44ad">xkb_keymap</span><span style="color:#f44f4f"> </span>{
+    <span style="color:#8e44ad">xkb_keycodes</span><span style="color:#f44f4f">  </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "evdev</span><span style="color:#27ae60">+</span><span style="color:#f44f4f">aliases(qwerty)"</span> };
+    <span style="color:#8e44ad">xkb_types</span><span style="color:#f44f4f">     </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "complete"</span>  };
+    <span style="color:#8e44ad">xkb_compat</span><span style="color:#f44f4f">    </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "complete"</span>  };
+    <span style="color:#8e44ad">xkb_symbols</span><span style="color:#f44f4f">   </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "pc</span><span style="color:#27ae60">+</span><span style="color:#f44f4f">us(dvorak)</span><span style="color:#27ae60">+</span><span style="color:#f44f4f">inet(evdev)</span><span style="color:#27ae60">+</span><span style="color:#f44f4f">terminate(ctrl_alt_bksp)"</span>    };
+    <span style="color:#8e44ad">xkb_geometry</span><span style="color:#f44f4f">  </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "pc(pc105)"</span> };
+};
+
+<span style="font-weight:bold">default</span> <span style="font-weight:bold">partial</span> <span style="font-weight:bold">alphanumeric_keys</span> <span style="font-weight:bold">modifier_keys</span>
+<span style="color:#8e44ad">xkb_symbols</span><span style="color:#f44f4f"> "basic"</span> {
+    <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "us(basic)"</span>
+    <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "/usr/share/X11/xkb/symbols/it"</span>
+    <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "B(S1)</span><span style="color:#27ae60">|</span><span style="color:#f44f4f">B(S2)"</span>
+    <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "</span><span style="color:#3daee9">%S</span><span style="color:#f44f4f">/de(basic)"</span>
+    <span style="color:#27ae60">override</span><span style="color:#f44f4f"> "B(S1)</span><span style="color:#27ae60">|</span><span style="color:#f44f4f">B(S2)"</span>
+
+    <span style="font-weight:bold">name</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#8e44ad">Group1</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Banana (US)"</span>;
+ 
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AE01></span> { [ exclam,          <span style="color:#f67400">1</span>]     };
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AE12></span> { [ plus,            equal] };
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;A></span> { [Greek_alpha, Greek_ALPHA, ae, AE] };
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AD05></span> { [t, T, tslash, Tslash] };       <span style="color:#7a7c7d">// Type: FOUR_LEVEL_ALPHABETIC</span>
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AD01></span> { [], [], [ q, Q ] };
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AD05></span> { [ b, B, <span style="color:#27aeae;font-weight:bold">U</span><span style="color:#27aeae">1F966</span> ]};
+    <span style="font-weight:bold">key</span> &lt;> { [NoSymbol, a, b, {a, b}] };
+
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;LALT></span> { <span style="font-weight:bold">virtualModifier</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Alt</span>   }; <span style="color:#7a7c7d">// Alt is bound to &lt;LALT></span>
+
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;LALT></span> {
+        <span style="font-weight:bold">symbols</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#8e44ad">Group1</span><span style="color:#8e44ad;font-weight:bold">]</span><span style="color:#3f8058">=</span>[<span style="color:#27ae60">Alt_L</span>],
+        <span style="font-weight:bold">actions</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#8e44ad">Group1</span><span style="color:#8e44ad;font-weight:bold">]</span><span style="color:#3f8058">=</span>[<span style="color:#8e44ad">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#3f8058">=</span><span style="color:#27ae60">modMapMods</span>)]
+
+        <span style="font-weight:bold">repeat</span> <span style="color:#3f8058">=</span> <span style="color:#609ca0">False</span>,
+        [ <span style="color:#27ae60">Alt_L</span> ]
+    };
+
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AD01></span> {
+        <span style="font-weight:bold">type</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#8e44ad">Group1</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"TWO_LEVEL"</span>, <span style="color:#7a7c7d">// Type</span>
+        [q, Q]                      <span style="color:#7a7c7d">// Symbols</span>
+    };
+
+    <span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;LCTL></span> {
+        <span style="font-weight:bold">symbols</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#f67400">1</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> [ <span style="color:#27ae60">Control_L</span>                                          ],
+        <span style="font-weight:bold">actions</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#f67400">1</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> [ { <span style="color:#8e44ad">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#3f8058">=</span><span style="color:#27ae60">Control</span>), <span style="color:#8e44ad">SetGroup</span>(<span style="font-weight:bold">group</span><span style="color:#3f8058">=</span><span style="color:#3f8058">+</span><span style="color:#f67400">1</span>) } ]
+    };
+
+    <span style="color:#27ae60">override</span><span style="color:#f44f4f"> </span><span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;AC11></span> {[ agrave,      adiaeresis,     braceleft       ]};
+    <span style="color:#27ae60">replace</span><span style="color:#f44f4f"> </span><span style="font-weight:bold">key</span> <span style="color:#2980b9">&lt;PRSC></span> {[  <span style="color:#27ae60">Super_R</span>,  <span style="color:#27ae60">Super_R</span>  ]};
+    <span style="font-weight:bold">modifier_map</span> <span style="color:#27ae60">Mod4</span> { <span style="color:#2980b9">&lt;PRSC></span>, <span style="color:#2980b9">&lt;RWIN></span> };
+    <span style="font-weight:bold">modifier_map</span> <span style="color:#27ae60">Mod1</span> { <span style="color:#2980b9">&lt;LALT></span>,<span style="color:#2980b9">&lt;RALT></span> };
+};
+ 
+<span style="color:#7a7c7d">// Mandatory to extend the</span>
+<span style="color:#0099ff;font-weight:bold">!</span> <span style="color:#27ae60">include</span><span style="color:#f44f4f"> </span>%S/evdev
+ 
+<span style="color:#0099ff;font-weight:bold">!</span> option     <span style="color:#3f8058">=</span> <span style="font-weight:bold">symbols</span>
+  custom:foo <span style="color:#3f8058">=</span> <span style="color:#3f8058">+</span>custom(bar)
+  custom:baz <span style="color:#3f8058">=</span> <span style="color:#3f8058">+</span>other(baz)
+
+<span style="color:#7a7c7d">// Explicit default section with no name required</span>
+<span style="font-weight:bold">partial</span> <span style="font-weight:bold">alphanumeric_keys</span>
+<span style="color:#8e44ad">xkb_symbols</span><span style="color:#f44f4f"> </span>{ <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "us(basic)"</span> };
+
+<span style="color:#8e44ad">xkb_keycodes</span><span style="color:#f44f4f"> "jp106"</span> {
+    <span style="color:#27ae60">include</span><span style="color:#f44f4f"> "sgi_vndr/indigo(pc101)"</span>
+    <span style="color:#2980b9">&lt;VOL-></span> <span style="color:#3f8058">=</span> <span style="color:#f67400">122</span>;
+    <span style="color:#2980b9">&lt;HZTG></span> <span style="color:#3f8058">=</span> <span style="color:#f67400">22</span>;
+    <span style="font-weight:bold">alias</span> <span style="color:#2980b9">&lt;AE13></span> <span style="color:#3f8058">=</span> <span style="color:#2980b9">&lt;BKSL></span>;
+    <span style="color:#27ae60">augment</span><span style="color:#f44f4f"> "sgi_vndr/indy(pc101)"</span>
+    <span style="color:#27ae60">alternate</span><span style="color:#f44f4f"> </span><span style="color:#2980b9">&lt;BKSL></span> <span style="color:#3f8058">=</span> <span style="color:#f67400">100</span>;
+    <span style="font-weight:bold">minimum</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">8</span>;
+    <span style="font-weight:bold">maximum</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">255</span>;
+};
+
+<span style="color:#8e44ad">xkb_types</span><span style="color:#f44f4f"> </span>{
+    <span style="color:#7a7c7d">// ...</span>
+    <span style="font-weight:bold">type</span> <span style="color:#f44f4f">"TWO_LEVEL_PLUS_CONTROL"</span> {
+        <span style="font-weight:bold">modifiers</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Shift</span> <span style="color:#3f8058">+</span> <span style="color:#27ae60">Control</span>;
+        <span style="font-weight:bold">map</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">None</span><span style="color:#8e44ad;font-weight:bold">]</span>          <span style="color:#3f8058">=</span> <span style="color:#27ae60">Level1</span>;
+        <span style="font-weight:bold">map</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Shift</span><span style="color:#8e44ad;font-weight:bold">]</span>         <span style="color:#3f8058">=</span> <span style="color:#27ae60">Level2</span>;
+        <span style="font-weight:bold">map</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Control</span><span style="color:#8e44ad;font-weight:bold">]</span>       <span style="color:#3f8058">=</span> <span style="color:#27ae60">Level3</span>;
+        <span style="font-weight:bold">map</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Control</span><span style="color:#3f8058">+</span><span style="color:#27ae60">Shift</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Level4</span>;
+        <span style="color:#7a7c7d">// Using preserve will make Control not consumed and allow</span>
+        <span style="color:#7a7c7d">// applications to detect keyboard shortcuts with alternative</span>
+        <span style="color:#7a7c7d">// keysyms in levels 3 and 4 rather than the levels 1 and 2.</span>
+        <span style="font-weight:bold">preserve</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Control</span><span style="color:#8e44ad;font-weight:bold">]</span>       <span style="color:#3f8058">=</span> <span style="color:#27ae60">Control</span>;
+        <span style="font-weight:bold">preserve</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Control</span><span style="color:#3f8058">+</span><span style="color:#27ae60">Shift</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Control</span>;
+        <span style="font-weight:bold">preserve</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Shift</span><span style="color:#3f8058">+</span><span style="color:#27ae60">Lock</span><span style="color:#3f8058">+</span><span style="color:#27ae60">LevelThree</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Lock</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Level1</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Base"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Level2</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Shift"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Level3</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Tweaked Control"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#8e44ad;font-weight:bold">[</span><span style="color:#27ae60">Level4</span><span style="color:#8e44ad;font-weight:bold">]</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"Tweaked Control + Shift"</span>;
+    };
+};
+
+<span style="font-weight:bold">default</span> <span style="font-weight:bold">partial</span> <span style="color:#8e44ad">xkb_compatibility</span><span style="color:#f44f4f"> "basic"</span> {
+    <span style="font-weight:bold">interpret</span> AccessX_Enable {
+        <span style="font-weight:bold">action</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">LockControls</span>(<span style="font-weight:bold">controls</span><span style="color:#3f8058">=</span>AccessXKeys);
+    };
+};
+
+<span style="font-weight:bold">default</span> <span style="color:#8e44ad">xkb_compatibility</span><span style="color:#f44f4f"> "basic"</span> {
+    <span style="font-weight:bold">virtual_modifiers</span>  <span style="color:#27ae60">NumLock</span>;
+
+    <span style="font-weight:bold">interpret</span>.<span style="font-weight:bold">repeat</span> <span style="color:#3f8058">=</span> <span style="color:#609ca0">False</span>;
+    <span style="color:#8e44ad">setMods</span>.clearLocks <span style="color:#3f8058">=</span> <span style="color:#609ca0">True</span>;
+    <span style="color:#8e44ad">latchMods</span>.clearLocks <span style="color:#3f8058">=</span> <span style="color:#609ca0">True</span>;
+
+    <span style="font-weight:bold">interpret</span> Shift_Lock<span style="color:#3f8058">+</span><span style="color:#8e44ad">AnyOf</span>(<span style="color:#27ae60">Shift</span><span style="color:#3f8058">+</span><span style="color:#27ae60">Lock</span>) {
+        <span style="font-weight:bold">action</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">LockMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#3f8058">=</span><span style="color:#27ae60">Shift</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> <span style="color:#27ae60">Num_Lock</span><span style="color:#3f8058">+</span><span style="color:#8e44ad">Any</span> {
+        <span style="font-weight:bold">virtualModifier</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">NumLock</span>;
+        <span style="font-weight:bold">action</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">LockMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#3f8058">=</span><span style="color:#27ae60">NumLock</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> Mode_switch {
+        <span style="font-weight:bold">action</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">SetGroup</span>(<span style="font-weight:bold">group</span><span style="color:#3f8058">=</span><span style="color:#3f8058">+</span><span style="color:#f67400">1</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> <span style="color:#8e44ad">Any</span> <span style="color:#3f8058">+</span> <span style="color:#8e44ad">Any</span> {
+        <span style="font-weight:bold">action</span> <span style="color:#3f8058">=</span> <span style="color:#8e44ad">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#3f8058">=</span><span style="color:#27ae60">modMapMods</span>);
+    };
+
+    <span style="font-weight:bold">group</span> <span style="color:#f67400">2</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Mod5</span>;
+
+    <span style="font-weight:bold">indicator</span> <span style="color:#f44f4f">"Shift Lock"</span> {
+        <span style="color:#0099ff;font-weight:bold">!</span><span style="font-weight:bold">allowExplicit</span>;
+        <span style="font-weight:bold">whichModState</span> <span style="color:#3f8058">=</span> Locked;
+        <span style="font-weight:bold">modifiers</span> <span style="color:#3f8058">=</span> <span style="color:#27ae60">Shift</span>;
+    };
+};
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.xkb.html 6.19.0-0ubuntu1/autotests/html/test.xkb.html
--- 6.18.0-1/autotests/html/test.xkb.html	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.xkb.html	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>test.xkb</title>
+<meta name="generator" content="KF5::SyntaxHighlighting - Definition (XKeyboardConfig) - Theme (Breeze Light)"/>
+</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
+<span style="color:#644a9b">xkb_keymap</span><span style="color:#bf0303"> </span>{
+    <span style="color:#644a9b">xkb_keycodes</span><span style="color:#bf0303">  </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "evdev</span><span style="color:#ff5500">+</span><span style="color:#bf0303">aliases(qwerty)"</span> };
+    <span style="color:#644a9b">xkb_types</span><span style="color:#bf0303">     </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "complete"</span>  };
+    <span style="color:#644a9b">xkb_compat</span><span style="color:#bf0303">    </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "complete"</span>  };
+    <span style="color:#644a9b">xkb_symbols</span><span style="color:#bf0303">   </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "pc</span><span style="color:#ff5500">+</span><span style="color:#bf0303">us(dvorak)</span><span style="color:#ff5500">+</span><span style="color:#bf0303">inet(evdev)</span><span style="color:#ff5500">+</span><span style="color:#bf0303">terminate(ctrl_alt_bksp)"</span>    };
+    <span style="color:#644a9b">xkb_geometry</span><span style="color:#bf0303">  </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "pc(pc105)"</span> };
+};
+
+<span style="font-weight:bold">default</span> <span style="font-weight:bold">partial</span> <span style="font-weight:bold">alphanumeric_keys</span> <span style="font-weight:bold">modifier_keys</span>
+<span style="color:#644a9b">xkb_symbols</span><span style="color:#bf0303"> "basic"</span> {
+    <span style="color:#ff5500">include</span><span style="color:#bf0303"> "us(basic)"</span>
+    <span style="color:#ff5500">include</span><span style="color:#bf0303"> "/usr/share/X11/xkb/symbols/it"</span>
+    <span style="color:#ff5500">include</span><span style="color:#bf0303"> "B(S1)</span><span style="color:#ff5500">|</span><span style="color:#bf0303">B(S2)"</span>
+    <span style="color:#ff5500">include</span><span style="color:#bf0303"> "</span><span style="color:#3daee9">%S</span><span style="color:#bf0303">/de(basic)"</span>
+    <span style="color:#ff5500">override</span><span style="color:#bf0303"> "B(S1)</span><span style="color:#ff5500">|</span><span style="color:#bf0303">B(S2)"</span>
+
+    <span style="font-weight:bold">name</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#644a9b">Group1</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"Banana (US)"</span>;
+ 
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AE01></span> { [ exclam,          <span style="color:#b08000">1</span>]     };
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AE12></span> { [ plus,            equal] };
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;A></span> { [Greek_alpha, Greek_ALPHA, ae, AE] };
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AD05></span> { [t, T, tslash, Tslash] };       <span style="color:#898887">// Type: FOUR_LEVEL_ALPHABETIC</span>
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AD01></span> { [], [], [ q, Q ] };
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AD05></span> { [ b, B, <span style="color:#0057ae;font-weight:bold">U</span><span style="color:#0057ae">1F966</span> ]};
+    <span style="font-weight:bold">key</span> &lt;> { [NoSymbol, a, b, {a, b}] };
+
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;LALT></span> { <span style="font-weight:bold">virtualModifier</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Alt</span>   }; <span style="color:#898887">// Alt is bound to &lt;LALT></span>
+
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;LALT></span> {
+        <span style="font-weight:bold">symbols</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#644a9b">Group1</span><span style="color:#644a9b;font-weight:bold">]</span><span style="color:#ca60ca">=</span>[<span style="color:#006e28">Alt_L</span>],
+        <span style="font-weight:bold">actions</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#644a9b">Group1</span><span style="color:#644a9b;font-weight:bold">]</span><span style="color:#ca60ca">=</span>[<span style="color:#644a9b">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#ca60ca">=</span><span style="color:#006e28">modMapMods</span>)]
+
+        <span style="font-weight:bold">repeat</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">False</span>,
+        [ <span style="color:#006e28">Alt_L</span> ]
+    };
+
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AD01></span> {
+        <span style="font-weight:bold">type</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#644a9b">Group1</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"TWO_LEVEL"</span>, <span style="color:#898887">// Type</span>
+        [q, Q]                      <span style="color:#898887">// Symbols</span>
+    };
+
+    <span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;LCTL></span> {
+        <span style="font-weight:bold">symbols</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#b08000">1</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> [ <span style="color:#006e28">Control_L</span>                                          ],
+        <span style="font-weight:bold">actions</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#b08000">1</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> [ { <span style="color:#644a9b">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#ca60ca">=</span><span style="color:#006e28">Control</span>), <span style="color:#644a9b">SetGroup</span>(<span style="font-weight:bold">group</span><span style="color:#ca60ca">=</span><span style="color:#ca60ca">+</span><span style="color:#b08000">1</span>) } ]
+    };
+
+    <span style="color:#ff5500">override</span><span style="color:#bf0303"> </span><span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;AC11></span> {[ agrave,      adiaeresis,     braceleft       ]};
+    <span style="color:#ff5500">replace</span><span style="color:#bf0303"> </span><span style="font-weight:bold">key</span> <span style="color:#0057ae">&lt;PRSC></span> {[  <span style="color:#006e28">Super_R</span>,  <span style="color:#006e28">Super_R</span>  ]};
+    <span style="font-weight:bold">modifier_map</span> <span style="color:#006e28">Mod4</span> { <span style="color:#0057ae">&lt;PRSC></span>, <span style="color:#0057ae">&lt;RWIN></span> };
+    <span style="font-weight:bold">modifier_map</span> <span style="color:#006e28">Mod1</span> { <span style="color:#0057ae">&lt;LALT></span>,<span style="color:#0057ae">&lt;RALT></span> };
+};
+ 
+<span style="color:#898887">// Mandatory to extend the</span>
+<span style="color:#0095ff;font-weight:bold">!</span> <span style="color:#ff5500">include</span><span style="color:#bf0303"> </span>%S/evdev
+ 
+<span style="color:#0095ff;font-weight:bold">!</span> option     <span style="color:#ca60ca">=</span> <span style="font-weight:bold">symbols</span>
+  custom:foo <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">+</span>custom(bar)
+  custom:baz <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">+</span>other(baz)
+
+<span style="color:#898887">// Explicit default section with no name required</span>
+<span style="font-weight:bold">partial</span> <span style="font-weight:bold">alphanumeric_keys</span>
+<span style="color:#644a9b">xkb_symbols</span><span style="color:#bf0303"> </span>{ <span style="color:#ff5500">include</span><span style="color:#bf0303"> "us(basic)"</span> };
+
+<span style="color:#644a9b">xkb_keycodes</span><span style="color:#bf0303"> "jp106"</span> {
+    <span style="color:#ff5500">include</span><span style="color:#bf0303"> "sgi_vndr/indigo(pc101)"</span>
+    <span style="color:#0057ae">&lt;VOL-></span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">122</span>;
+    <span style="color:#0057ae">&lt;HZTG></span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">22</span>;
+    <span style="font-weight:bold">alias</span> <span style="color:#0057ae">&lt;AE13></span> <span style="color:#ca60ca">=</span> <span style="color:#0057ae">&lt;BKSL></span>;
+    <span style="color:#ff5500">augment</span><span style="color:#bf0303"> "sgi_vndr/indy(pc101)"</span>
+    <span style="color:#ff5500">alternate</span><span style="color:#bf0303"> </span><span style="color:#0057ae">&lt;BKSL></span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">100</span>;
+    <span style="font-weight:bold">minimum</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">8</span>;
+    <span style="font-weight:bold">maximum</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">255</span>;
+};
+
+<span style="color:#644a9b">xkb_types</span><span style="color:#bf0303"> </span>{
+    <span style="color:#898887">// ...</span>
+    <span style="font-weight:bold">type</span> <span style="color:#bf0303">"TWO_LEVEL_PLUS_CONTROL"</span> {
+        <span style="font-weight:bold">modifiers</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Shift</span> <span style="color:#ca60ca">+</span> <span style="color:#006e28">Control</span>;
+        <span style="font-weight:bold">map</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">None</span><span style="color:#644a9b;font-weight:bold">]</span>          <span style="color:#ca60ca">=</span> <span style="color:#006e28">Level1</span>;
+        <span style="font-weight:bold">map</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Shift</span><span style="color:#644a9b;font-weight:bold">]</span>         <span style="color:#ca60ca">=</span> <span style="color:#006e28">Level2</span>;
+        <span style="font-weight:bold">map</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Control</span><span style="color:#644a9b;font-weight:bold">]</span>       <span style="color:#ca60ca">=</span> <span style="color:#006e28">Level3</span>;
+        <span style="font-weight:bold">map</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Control</span><span style="color:#ca60ca">+</span><span style="color:#006e28">Shift</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Level4</span>;
+        <span style="color:#898887">// Using preserve will make Control not consumed and allow</span>
+        <span style="color:#898887">// applications to detect keyboard shortcuts with alternative</span>
+        <span style="color:#898887">// keysyms in levels 3 and 4 rather than the levels 1 and 2.</span>
+        <span style="font-weight:bold">preserve</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Control</span><span style="color:#644a9b;font-weight:bold">]</span>       <span style="color:#ca60ca">=</span> <span style="color:#006e28">Control</span>;
+        <span style="font-weight:bold">preserve</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Control</span><span style="color:#ca60ca">+</span><span style="color:#006e28">Shift</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Control</span>;
+        <span style="font-weight:bold">preserve</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Shift</span><span style="color:#ca60ca">+</span><span style="color:#006e28">Lock</span><span style="color:#ca60ca">+</span><span style="color:#006e28">LevelThree</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Lock</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Level1</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"Base"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Level2</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"Shift"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Level3</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"Tweaked Control"</span>;
+        <span style="font-weight:bold">level_name</span><span style="color:#644a9b;font-weight:bold">[</span><span style="color:#006e28">Level4</span><span style="color:#644a9b;font-weight:bold">]</span> <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"Tweaked Control + Shift"</span>;
+    };
+};
+
+<span style="font-weight:bold">default</span> <span style="font-weight:bold">partial</span> <span style="color:#644a9b">xkb_compatibility</span><span style="color:#bf0303"> "basic"</span> {
+    <span style="font-weight:bold">interpret</span> AccessX_Enable {
+        <span style="font-weight:bold">action</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b">LockControls</span>(<span style="font-weight:bold">controls</span><span style="color:#ca60ca">=</span>AccessXKeys);
+    };
+};
+
+<span style="font-weight:bold">default</span> <span style="color:#644a9b">xkb_compatibility</span><span style="color:#bf0303"> "basic"</span> {
+    <span style="font-weight:bold">virtual_modifiers</span>  <span style="color:#006e28">NumLock</span>;
+
+    <span style="font-weight:bold">interpret</span>.<span style="font-weight:bold">repeat</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">False</span>;
+    <span style="color:#644a9b">setMods</span>.clearLocks <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">True</span>;
+    <span style="color:#644a9b">latchMods</span>.clearLocks <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">True</span>;
+
+    <span style="font-weight:bold">interpret</span> Shift_Lock<span style="color:#ca60ca">+</span><span style="color:#644a9b">AnyOf</span>(<span style="color:#006e28">Shift</span><span style="color:#ca60ca">+</span><span style="color:#006e28">Lock</span>) {
+        <span style="font-weight:bold">action</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b">LockMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#ca60ca">=</span><span style="color:#006e28">Shift</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> <span style="color:#006e28">Num_Lock</span><span style="color:#ca60ca">+</span><span style="color:#644a9b">Any</span> {
+        <span style="font-weight:bold">virtualModifier</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">NumLock</span>;
+        <span style="font-weight:bold">action</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b">LockMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#ca60ca">=</span><span style="color:#006e28">NumLock</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> Mode_switch {
+        <span style="font-weight:bold">action</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b">SetGroup</span>(<span style="font-weight:bold">group</span><span style="color:#ca60ca">=</span><span style="color:#ca60ca">+</span><span style="color:#b08000">1</span>);
+    };
+
+    <span style="font-weight:bold">interpret</span> <span style="color:#644a9b">Any</span> <span style="color:#ca60ca">+</span> <span style="color:#644a9b">Any</span> {
+        <span style="font-weight:bold">action</span> <span style="color:#ca60ca">=</span> <span style="color:#644a9b">SetMods</span>(<span style="font-weight:bold">modifiers</span><span style="color:#ca60ca">=</span><span style="color:#006e28">modMapMods</span>);
+    };
+
+    <span style="font-weight:bold">group</span> <span style="color:#b08000">2</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Mod5</span>;
+
+    <span style="font-weight:bold">indicator</span> <span style="color:#bf0303">"Shift Lock"</span> {
+        <span style="color:#0095ff;font-weight:bold">!</span><span style="font-weight:bold">allowExplicit</span>;
+        <span style="font-weight:bold">whichModState</span> <span style="color:#ca60ca">=</span> Locked;
+        <span style="font-weight:bold">modifiers</span> <span style="color:#ca60ca">=</span> <span style="color:#006e28">Shift</span>;
+    };
+};
+</pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.zig.dark.html 6.19.0-0ubuntu1/autotests/html/test.zig.dark.html
--- 6.18.0-1/autotests/html/test.zig.dark.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.zig.dark.html	2025-10-05 12:41:31.000000000 +0000
@@ -8,9 +8,9 @@
 
 <span style="color:#7a7c7d">/// This is a doc comment</span>
 <span style="color:#7a7c7d">// This is a comment</span>
-<span style="font-weight:bold">fn</span> getData() <span style="color:#3f8058">!</span><span style="color:#2980b9">u32</span> {
+<span style="font-weight:bold">fn</span> getData() <span style="color:#3f8058">!</span><span style="color:#2980b9">u32</span> <span style="color:#3f8058">{</span>
     <span style="color:#fdbc4b;font-weight:bold">return</span> <span style="color:#f67400">666</span>;
-}
+<span style="color:#3f8058">}</span>
 
 <span style="color:#7a7c7d">// multiline string</span>
 <span style="color:#2980b9">const</span> hello_world_in_c <span style="color:#3f8058">=</span>
@@ -25,66 +25,66 @@
 <span style="color:#7a7c7d">// Top-level declarations are order-independent:</span>
 <span style="color:#2980b9">const</span> print <span style="color:#3f8058">=</span> <span style="color:#609ca0">@import</span>(<span style="color:#f44f4f">"std"</span>)<span style="color:#3f8058">.</span>debug<span style="color:#3f8058">.</span>print;
 
-<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> main() <span style="color:#3f8058">!</span><span style="color:#2980b9">void</span> {
-    <span style="font-weight:bold">inline</span> <span style="color:#fdbc4b;font-weight:bold">for</span> (values) <span style="color:#3f8058">|</span>v<span style="color:#3f8058">,</span> i<span style="color:#3f8058">|</span> {
+<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> main() <span style="color:#3f8058">!</span><span style="color:#2980b9">void</span> <span style="color:#3f8058">{</span>
+    <span style="font-weight:bold">inline</span> <span style="color:#fdbc4b;font-weight:bold">for</span> (values) <span style="color:#3f8058">|</span>v<span style="color:#3f8058">,</span> i<span style="color:#3f8058">|</span> <span style="color:#3f8058">{</span>
         <span style="color:#fdbc4b;font-weight:bold">if</span> (i <span style="color:#3f8058">!=</span> <span style="color:#f67400">2</span>) <span style="color:#fdbc4b;font-weight:bold">continue</span>;
         <span style="color:#fdbc4b;font-weight:bold">try</span> expect(v);
-    }
+    <span style="color:#3f8058">}</span>
 
     <span style="color:#7a7c7d">// error union</span>
     <span style="color:#2980b9">var</span> number_or_error<span style="color:#3f8058">:</span> <span style="color:#2980b9">anyerror</span><span style="color:#3f8058">!</span><span style="color:#2980b9">i32</span> <span style="color:#3f8058">=</span> <span style="font-weight:bold">error</span><span style="color:#3f8058">.</span>ArgNotFound;
 
-    print(<span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">error union 2</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">type: {}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">value: {!}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{
+    print(<span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">error union 2</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">type: {}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">value: {!}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span>
         <span style="color:#609ca0">@TypeOf</span>(number_or_error)<span style="color:#3f8058">,</span> number_or_error<span style="color:#3f8058">,</span>
-    });
+    <span style="color:#3f8058">}</span>);
 
     <span style="color:#2980b9">const</span> stdout <span style="color:#3f8058">=</span> std<span style="color:#3f8058">.</span>io<span style="color:#3f8058">.</span>getStdOut()<span style="color:#3f8058">.</span>writer();
-    <span style="color:#fdbc4b;font-weight:bold">try</span> stdout<span style="color:#3f8058">.</span>print(<span style="color:#f44f4f">"Hello, {s}!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#f44f4f">"world"</span>});
+    <span style="color:#fdbc4b;font-weight:bold">try</span> stdout<span style="color:#3f8058">.</span>print(<span style="color:#f44f4f">"Hello, {s}!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#f44f4f">"world"</span><span style="color:#3f8058">}</span>);
     <span style="color:#2980b9">const</span> bytes <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"hello"</span>;
-    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#609ca0">@TypeOf</span>(bytes)}); <span style="color:#7a7c7d">// *const [5:0]u8</span>
-    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{bytes[<span style="color:#f67400">5</span>]}); <span style="color:#7a7c7d">// 0</span>
-    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#3daee9">'e'</span> <span style="color:#3f8058">==</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\x65</span><span style="color:#3daee9">'</span>}); <span style="color:#7a7c7d">// true</span>
-    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#3daee9">'</span><span style="color:#3daee9">\u{1f4a9}</span><span style="color:#3daee9">'</span>});                     <span style="color:#7a7c7d">// 128169</span>
-    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#3daee9">'💯'</span>});                            <span style="color:#7a7c7d">// 128175</span>
-    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{mem<span style="color:#3f8058">.</span>eql(<span style="color:#2980b9">u8</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"hello"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"h</span><span style="color:#3daee9">\x65</span><span style="color:#f44f4f">llo"</span>)}); <span style="color:#7a7c7d">// true</span>
-    print(<span style="color:#f44f4f">"0x{x}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#f44f4f">"</span><span style="color:#3daee9">\xff</span><span style="color:#f44f4f">"</span>[<span style="color:#f67400">0</span>]}); <span style="color:#7a7c7d">// non-UTF-8 strings are possible with \xNN notation.</span>
-    print(<span style="color:#f44f4f">"{u}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{<span style="color:#3daee9">'⚡'</span>});
+    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#609ca0">@TypeOf</span>(bytes)<span style="color:#3f8058">}</span>); <span style="color:#7a7c7d">// *const [5:0]u8</span>
+    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span>bytes[<span style="color:#f67400">5</span>]<span style="color:#3f8058">}</span>); <span style="color:#7a7c7d">// 0</span>
+    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#3daee9">'e'</span> <span style="color:#3f8058">==</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\x65</span><span style="color:#3daee9">'</span><span style="color:#3f8058">}</span>); <span style="color:#7a7c7d">// true</span>
+    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\u{1f4a9}</span><span style="color:#3daee9">'</span><span style="color:#3f8058">}</span>);                     <span style="color:#7a7c7d">// 128169</span>
+    print(<span style="color:#f44f4f">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#3daee9">'💯'</span><span style="color:#3f8058">}</span>);                            <span style="color:#7a7c7d">// 128175</span>
+    print(<span style="color:#f44f4f">"{}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span>mem<span style="color:#3f8058">.</span>eql(<span style="color:#2980b9">u8</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"hello"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"h</span><span style="color:#3daee9">\x65</span><span style="color:#f44f4f">llo"</span>)<span style="color:#3f8058">}</span>); <span style="color:#7a7c7d">// true</span>
+    print(<span style="color:#f44f4f">"0x{x}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#f44f4f">"</span><span style="color:#3daee9">\xff</span><span style="color:#f44f4f">"</span>[<span style="color:#f67400">0</span>]<span style="color:#3f8058">}</span>); <span style="color:#7a7c7d">// non-UTF-8 strings are possible with \xNN notation.</span>
+    print(<span style="color:#f44f4f">"{u}</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{</span><span style="color:#3daee9">'⚡'</span><span style="color:#3f8058">}</span>);
 
     _ <span style="color:#3f8058">=</span> <span style="color:#609ca0">@import</span>(<span style="color:#f44f4f">"introducing_zig_test.zig"</span>);
-}
+<span style="color:#3f8058">}</span>
 
 <span style="color:#7a7c7d">// Declare an enum.</span>
-<span style="color:#2980b9">const</span> Type <span style="color:#3f8058">=</span> <span style="font-weight:bold">enum</span> {
+<span style="color:#2980b9">const</span> Type <span style="color:#3f8058">=</span> <span style="font-weight:bold">enum</span> <span style="color:#3f8058">{</span>
     ok<span style="color:#3f8058">,</span>
     not_ok<span style="color:#3f8058">,</span>
-};
+<span style="color:#3f8058">}</span>;
 
-<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"async skip test"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"async skip test"</span> <span style="color:#3f8058">{</span>
     <span style="color:#2980b9">var</span> frame <span style="color:#3f8058">=</span> <span style="color:#2980b9">async</span> func();
     <span style="color:#2980b9">const</span> result <span style="color:#3f8058">=</span> <span style="color:#2980b9">await</span> frame;
     <span style="color:#fdbc4b;font-weight:bold">try</span> std<span style="color:#3f8058">.</span>testing<span style="color:#3f8058">.</span>expect(result <span style="color:#3f8058">==</span> <span style="color:#f67400">1</span>);
-}
+<span style="color:#3f8058">}</span>
 
-<span style="font-weight:bold">fn</span> func() <span style="color:#2980b9">i32</span> {
-    <span style="font-weight:bold">suspend</span> {
+<span style="font-weight:bold">fn</span> func() <span style="color:#2980b9">i32</span> <span style="color:#3f8058">{</span>
+    <span style="font-weight:bold">suspend</span> <span style="color:#3f8058">{</span>
         <span style="font-weight:bold">resume</span> @frame();
-    }
+    <span style="color:#3f8058">}</span>
     <span style="color:#fdbc4b;font-weight:bold">return</span> <span style="color:#f67400">1</span>;
-}
+<span style="color:#3f8058">}</span>
 
 <span style="font-weight:bold">pub</span> <span style="color:#2980b9">extern</span> <span style="color:#f44f4f">"c"</span> <span style="font-weight:bold">fn</span> @<span style="color:#f44f4f">"error"</span>() <span style="color:#2980b9">void</span>;
 <span style="font-weight:bold">pub</span> <span style="color:#2980b9">extern</span> <span style="color:#f44f4f">"c"</span> <span style="font-weight:bold">fn</span> @<span style="color:#f44f4f">"fstat$INODE64"</span>(fd<span style="color:#3f8058">:</span> c<span style="color:#3f8058">.</span>fd_t<span style="color:#3f8058">,</span> buf<span style="color:#3f8058">:</span> <span style="color:#3f8058">*</span>c<span style="color:#3f8058">.</span>Stat) <span style="color:#2980b9">c_int</span>;
 
-<span style="color:#2980b9">const</span> Color <span style="color:#3f8058">=</span> <span style="font-weight:bold">enum</span> {
+<span style="color:#2980b9">const</span> Color <span style="color:#3f8058">=</span> <span style="font-weight:bold">enum</span> <span style="color:#3f8058">{</span>
   red<span style="color:#3f8058">,</span>
   @<span style="color:#f44f4f">"really red"</span><span style="color:#3f8058">,</span>
-};
+<span style="color:#3f8058">}</span>;
 <span style="color:#2980b9">const</span> color<span style="color:#3f8058">:</span> Color <span style="color:#3f8058">=</span> <span style="color:#3f8058">.</span>@<span style="color:#f44f4f">"really red"</span>;
 
 <span style="color:#2980b9">var</span> y<span style="color:#3f8058">:</span> <span style="color:#2980b9">i32</span> <span style="color:#3f8058">=</span> add(<span style="color:#f67400">10</span><span style="color:#3f8058">,</span> x);
 <span style="color:#2980b9">const</span> x<span style="color:#3f8058">:</span> <span style="color:#2980b9">i32</span> <span style="color:#3f8058">=</span> add(<span style="color:#f67400">12</span><span style="color:#3f8058">,</span> <span style="color:#f67400">34</span>);
 
-<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"comptime vars"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"comptime vars"</span> <span style="color:#3f8058">{</span>
     <span style="color:#2980b9">var</span> x<span style="color:#3f8058">:</span> <span style="color:#2980b9">i32</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">1</span>;
     <span style="color:#2980b9">comptime</span> <span style="color:#2980b9">var</span> y<span style="color:#3f8058">:</span> <span style="color:#2980b9">i32</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">1</span>;
 
@@ -94,12 +94,12 @@
     <span style="color:#fdbc4b;font-weight:bold">try</span> expect(x <span style="color:#3f8058">==</span> <span style="color:#f67400">2</span>);
     <span style="color:#fdbc4b;font-weight:bold">try</span> expect(y <span style="color:#3f8058">==</span> <span style="color:#f67400">2</span>);
 
-    <span style="color:#fdbc4b;font-weight:bold">if</span> (y <span style="color:#3f8058">!=</span> <span style="color:#f67400">2</span>) {
+    <span style="color:#fdbc4b;font-weight:bold">if</span> (y <span style="color:#3f8058">!=</span> <span style="color:#f67400">2</span>) <span style="color:#3f8058">{</span>
         <span style="color:#7a7c7d">// This compile error never triggers because y is a comptime variable,</span>
         <span style="color:#7a7c7d">// and so `y != 2` is a comptime value, and this if is statically evaluated.</span>
         <span style="color:#609ca0">@compileError</span>(<span style="color:#f44f4f">"wrong y value"</span>);
-    }
-}
+    <span style="color:#3f8058">}</span>
+<span style="color:#3f8058">}</span>
 
 <span style="color:#2980b9">const</span> decimal_int <span style="color:#3f8058">=</span> <span style="color:#f67400">98222</span>;
 <span style="color:#2980b9">const</span> hex_int <span style="color:#3f8058">=</span> <span style="color:#f67400">0xff</span>;
@@ -126,72 +126,72 @@
 <span style="color:#2980b9">const</span> nanosecond <span style="color:#3f8058">=</span> <span style="color:#f67400">0.000_000_001</span>;
 <span style="color:#2980b9">const</span> more_hex <span style="color:#3f8058">=</span> <span style="color:#f67400">0x1234_5678.9ABC_CDEFp-10</span>;
 
-<span style="color:#2980b9">const</span> A <span style="color:#3f8058">=</span> <span style="font-weight:bold">error</span>{One};
-<span style="color:#2980b9">const</span> B <span style="color:#3f8058">=</span> <span style="font-weight:bold">error</span>{Two};
-(A <span style="color:#3f8058">||</span> B) <span style="color:#3f8058">==</span> <span style="font-weight:bold">error</span>{One<span style="color:#3f8058">,</span> Two}
+<span style="color:#2980b9">const</span> A <span style="color:#3f8058">=</span> <span style="font-weight:bold">error</span><span style="color:#3f8058">{</span>One<span style="color:#3f8058">}</span>;
+<span style="color:#2980b9">const</span> B <span style="color:#3f8058">=</span> <span style="font-weight:bold">error</span><span style="color:#3f8058">{</span>Two<span style="color:#3f8058">}</span>;
+(A <span style="color:#3f8058">||</span> B) <span style="color:#3f8058">==</span> <span style="font-weight:bold">error</span><span style="color:#3f8058">{</span>One<span style="color:#3f8058">,</span> Two<span style="color:#3f8058">}</span>
 
 <span style="color:#2980b9">const</span> x<span style="color:#3f8058">:</span> <span style="color:#2980b9">u32</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">1234</span>;
 <span style="color:#2980b9">const</span> ptr <span style="color:#3f8058">=</span> <span style="color:#3f8058">&amp;</span>x;
 ptr<span style="color:#3f8058">.*</span> <span style="color:#3f8058">==</span> <span style="color:#f67400">1234</span>
 
 <span style="color:#7a7c7d">// get the size of an array</span>
-<span style="color:#2980b9">comptime</span> {
+<span style="color:#2980b9">comptime</span> <span style="color:#3f8058">{</span>
     assert(message<span style="color:#3f8058">.</span>len <span style="color:#3f8058">==</span> <span style="color:#f67400">5</span>);
-}
+<span style="color:#3f8058">}</span>
 
-<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"iterate over an array"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"iterate over an array"</span> <span style="color:#3f8058">{</span>
     <span style="color:#2980b9">var</span> sum<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span> <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span>;
-    <span style="color:#fdbc4b;font-weight:bold">for</span> (message) <span style="color:#3f8058">|</span>byte<span style="color:#3f8058">|</span> {
+    <span style="color:#fdbc4b;font-weight:bold">for</span> (message) <span style="color:#3f8058">|</span>byte<span style="color:#3f8058">|</span> <span style="color:#3f8058">{</span>
         sum <span style="color:#3f8058">+=</span> byte;
-    }
+    <span style="color:#3f8058">}</span>
     <span style="color:#fdbc4b;font-weight:bold">try</span> expect(sum <span style="color:#3f8058">==</span> <span style="color:#3daee9">'h'</span> <span style="color:#3f8058">+</span> <span style="color:#3daee9">'e'</span> <span style="color:#3f8058">+</span> <span style="color:#3daee9">'l'</span> <span style="color:#3f8058">*</span> <span style="color:#f67400">2</span> <span style="color:#3f8058">+</span> <span style="color:#3daee9">'o'</span>);
-}
+<span style="color:#3f8058">}</span>
 
 <span style="color:#7a7c7d">// use compile-time code to initialize an array</span>
-<span style="color:#2980b9">var</span> fancy_array <span style="color:#3f8058">=</span> init<span style="color:#3f8058">:</span> {
+<span style="color:#2980b9">var</span> fancy_array <span style="color:#3f8058">=</span> init<span style="color:#3f8058">:</span> <span style="color:#3f8058">{</span>
     <span style="color:#2980b9">var</span> initial_value<span style="color:#3f8058">:</span> [<span style="color:#f67400">10</span>]Point <span style="color:#3f8058">=</span> <span style="color:#27aeae;font-weight:bold">undefined</span>;
-    <span style="color:#fdbc4b;font-weight:bold">for</span> (initial_value) <span style="color:#3f8058">|*</span>pt<span style="color:#3f8058">,</span> i<span style="color:#3f8058">|</span> {
-        pt<span style="color:#3f8058">.*</span> <span style="color:#3f8058">=</span> Point{
+    <span style="color:#fdbc4b;font-weight:bold">for</span> (initial_value) <span style="color:#3f8058">|*</span>pt<span style="color:#3f8058">,</span> i<span style="color:#3f8058">|</span> <span style="color:#3f8058">{</span>
+        pt<span style="color:#3f8058">.*</span> <span style="color:#3f8058">=</span> Point<span style="color:#3f8058">{</span>
             <span style="color:#3f8058">.</span>x <span style="color:#3f8058">=</span> <span style="color:#609ca0">@intCast</span>(<span style="color:#2980b9">i32</span><span style="color:#3f8058">,</span> i)<span style="color:#3f8058">,</span>
             <span style="color:#3f8058">.</span>y <span style="color:#3f8058">=</span> <span style="color:#609ca0">@intCast</span>(<span style="color:#2980b9">i32</span><span style="color:#3f8058">,</span> i) <span style="color:#3f8058">*</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span>
-        };
-    }
+        <span style="color:#3f8058">}</span>;
+    <span style="color:#3f8058">}</span>
     <span style="color:#fdbc4b;font-weight:bold">break</span> <span style="color:#3f8058">:</span>init initial_value;
-};
+<span style="color:#3f8058">}</span>;
 
-<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"switch on non-exhaustive enum"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#f44f4f">"switch on non-exhaustive enum"</span> <span style="color:#3f8058">{</span>
     <span style="color:#fdbc4b;font-weight:bold">try</span> expect(result);
-    <span style="color:#2980b9">const</span> is_one <span style="color:#3f8058">=</span> <span style="color:#fdbc4b;font-weight:bold">switch</span> (number) {
+    <span style="color:#2980b9">const</span> is_one <span style="color:#3f8058">=</span> <span style="color:#fdbc4b;font-weight:bold">switch</span> (number) <span style="color:#3f8058">{</span>
         <span style="color:#3f8058">.</span>one <span style="color:#3f8058">=></span> <span style="color:#27aeae;font-weight:bold">true</span><span style="color:#3f8058">,</span>
         <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#3f8058">=></span> <span style="color:#27aeae;font-weight:bold">false</span><span style="color:#3f8058">,</span>
-    };
+    <span style="color:#3f8058">}</span>;
     <span style="color:#fdbc4b;font-weight:bold">try</span> expect(is_one);
 
     <span style="color:#2980b9">const</span> array_ptr <span style="color:#3f8058">=</span> array[<span style="color:#f67400">0</span><span style="color:#3f8058">..</span>array<span style="color:#3f8058">.</span>len];
 
-    <span style="color:#fdbc4b;font-weight:bold">if</span> (a <span style="color:#3f8058">!=</span> b) {
+    <span style="color:#fdbc4b;font-weight:bold">if</span> (a <span style="color:#3f8058">!=</span> b) <span style="color:#3f8058">{</span>
         <span style="color:#fdbc4b;font-weight:bold">try</span> expect(<span style="color:#27aeae;font-weight:bold">true</span>);
-    } <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> (a <span style="color:#3f8058">==</span> <span style="color:#f67400">9</span>) {
+    <span style="color:#3f8058">}</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> (a <span style="color:#3f8058">==</span> <span style="color:#f67400">9</span>) <span style="color:#3f8058">{</span>
         <span style="font-weight:bold">unreachable</span>;
-    } <span style="color:#fdbc4b;font-weight:bold">else</span> {
+    <span style="color:#3f8058">}</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#3f8058">{</span>
         <span style="font-weight:bold">unreachable</span>;
-    }
-}
+    <span style="color:#3f8058">}</span>
+<span style="color:#3f8058">}</span>
 
-<span style="font-weight:bold">fn</span> deferErrorExample(is_error<span style="color:#3f8058">:</span> <span style="color:#2980b9">bool</span>) <span style="color:#3f8058">!</span><span style="color:#2980b9">void</span> {
-    print(<span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">start of function</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{});
+<span style="font-weight:bold">fn</span> deferErrorExample(is_error<span style="color:#3f8058">:</span> <span style="color:#2980b9">bool</span>) <span style="color:#3f8058">!</span><span style="color:#2980b9">void</span> <span style="color:#3f8058">{</span>
+    print(<span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">start of function</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{}</span>);
 
     <span style="color:#7a7c7d">// This will always be executed on exit</span>
-    <span style="color:#fdbc4b;font-weight:bold">defer</span> {
-        print(<span style="color:#f44f4f">"end of function</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{});
-    }
-
-    <span style="color:#fdbc4b;font-weight:bold">errdefer</span> {
-        print(<span style="color:#f44f4f">"encountered an error!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.</span>{});
-    }
-}
+    <span style="color:#fdbc4b;font-weight:bold">defer</span> <span style="color:#3f8058">{</span>
+        print(<span style="color:#f44f4f">"end of function</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{}</span>);
+    <span style="color:#3f8058">}</span>
+
+    <span style="color:#fdbc4b;font-weight:bold">errdefer</span> <span style="color:#3f8058">{</span>
+        print(<span style="color:#f44f4f">"encountered an error!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">.{}</span>);
+    <span style="color:#3f8058">}</span>
+<span style="color:#3f8058">}</span>
 
-<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> syscall3(number<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg1<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg2<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg3<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span>) <span style="color:#2980b9">usize</span> {
+<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> syscall3(number<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg1<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg2<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span><span style="color:#3f8058">,</span> arg3<span style="color:#3f8058">:</span> <span style="color:#2980b9">usize</span>) <span style="color:#2980b9">usize</span> <span style="color:#3f8058">{</span>
     <span style="color:#fdbc4b;font-weight:bold">return</span> <span style="font-weight:bold">asm</span> <span style="color:#2980b9">volatile</span> (<span style="color:#f44f4f">"syscall"</span>
         <span style="color:#3f8058">:</span> [ret] <span style="color:#f44f4f">"={rax}"</span> (<span style="color:#3f8058">-></span> <span style="color:#2980b9">usize</span>)
         <span style="color:#3f8058">:</span> [number] <span style="color:#f44f4f">"{rax}"</span> (number)<span style="color:#3f8058">,</span>
@@ -200,5 +200,5 @@ ptr<span style="color:#3f8058">.*</span>
           [arg3] <span style="color:#f44f4f">"{rdx}"</span> (arg3)
         <span style="color:#3f8058">:</span> <span style="color:#f44f4f">"rcx"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">"r11"</span>
     );
-}
+<span style="color:#3f8058">}</span>
 </pre></body></html>
diff -pruN 6.18.0-1/autotests/html/test.zig.html 6.19.0-0ubuntu1/autotests/html/test.zig.html
--- 6.18.0-1/autotests/html/test.zig.html	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/html/test.zig.html	2025-10-05 12:41:31.000000000 +0000
@@ -8,9 +8,9 @@
 
 <span style="color:#898887">/// This is a doc comment</span>
 <span style="color:#898887">// This is a comment</span>
-<span style="font-weight:bold">fn</span> getData() <span style="color:#ca60ca">!</span><span style="color:#0057ae">u32</span> {
+<span style="font-weight:bold">fn</span> getData() <span style="color:#ca60ca">!</span><span style="color:#0057ae">u32</span> <span style="color:#ca60ca">{</span>
     <span style="font-weight:bold">return</span> <span style="color:#b08000">666</span>;
-}
+<span style="color:#ca60ca">}</span>
 
 <span style="color:#898887">// multiline string</span>
 <span style="color:#0057ae">const</span> hello_world_in_c <span style="color:#ca60ca">=</span>
@@ -25,66 +25,66 @@
 <span style="color:#898887">// Top-level declarations are order-independent:</span>
 <span style="color:#0057ae">const</span> print <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">@import</span>(<span style="color:#bf0303">"std"</span>)<span style="color:#ca60ca">.</span>debug<span style="color:#ca60ca">.</span>print;
 
-<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> main() <span style="color:#ca60ca">!</span><span style="color:#0057ae">void</span> {
-    <span style="font-weight:bold">inline</span> <span style="font-weight:bold">for</span> (values) <span style="color:#ca60ca">|</span>v<span style="color:#ca60ca">,</span> i<span style="color:#ca60ca">|</span> {
+<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> main() <span style="color:#ca60ca">!</span><span style="color:#0057ae">void</span> <span style="color:#ca60ca">{</span>
+    <span style="font-weight:bold">inline</span> <span style="font-weight:bold">for</span> (values) <span style="color:#ca60ca">|</span>v<span style="color:#ca60ca">,</span> i<span style="color:#ca60ca">|</span> <span style="color:#ca60ca">{</span>
         <span style="font-weight:bold">if</span> (i <span style="color:#ca60ca">!=</span> <span style="color:#b08000">2</span>) <span style="font-weight:bold">continue</span>;
         <span style="font-weight:bold">try</span> expect(v);
-    }
+    <span style="color:#ca60ca">}</span>
 
     <span style="color:#898887">// error union</span>
     <span style="color:#0057ae">var</span> number_or_error<span style="color:#ca60ca">:</span> <span style="color:#0057ae">anyerror</span><span style="color:#ca60ca">!</span><span style="color:#0057ae">i32</span> <span style="color:#ca60ca">=</span> <span style="font-weight:bold">error</span><span style="color:#ca60ca">.</span>ArgNotFound;
 
-    print(<span style="color:#bf0303">"</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">error union 2</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">type: {}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">value: {!}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{
+    print(<span style="color:#bf0303">"</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">error union 2</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">type: {}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">value: {!}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span>
         <span style="color:#644a9b;font-weight:bold">@TypeOf</span>(number_or_error)<span style="color:#ca60ca">,</span> number_or_error<span style="color:#ca60ca">,</span>
-    });
+    <span style="color:#ca60ca">}</span>);
 
     <span style="color:#0057ae">const</span> stdout <span style="color:#ca60ca">=</span> std<span style="color:#ca60ca">.</span>io<span style="color:#ca60ca">.</span>getStdOut()<span style="color:#ca60ca">.</span>writer();
-    <span style="font-weight:bold">try</span> stdout<span style="color:#ca60ca">.</span>print(<span style="color:#bf0303">"Hello, {s}!</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#bf0303">"world"</span>});
+    <span style="font-weight:bold">try</span> stdout<span style="color:#ca60ca">.</span>print(<span style="color:#bf0303">"Hello, {s}!</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#bf0303">"world"</span><span style="color:#ca60ca">}</span>);
     <span style="color:#0057ae">const</span> bytes <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"hello"</span>;
-    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#644a9b;font-weight:bold">@TypeOf</span>(bytes)}); <span style="color:#898887">// *const [5:0]u8</span>
-    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{bytes[<span style="color:#b08000">5</span>]}); <span style="color:#898887">// 0</span>
-    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#924c9d">'e'</span> <span style="color:#ca60ca">==</span> <span style="color:#924c9d">'</span><span style="color:#3daee9">\x65</span><span style="color:#924c9d">'</span>}); <span style="color:#898887">// true</span>
-    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#924c9d">'</span><span style="color:#3daee9">\u{1f4a9}</span><span style="color:#924c9d">'</span>});                     <span style="color:#898887">// 128169</span>
-    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#924c9d">'💯'</span>});                            <span style="color:#898887">// 128175</span>
-    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{mem<span style="color:#ca60ca">.</span>eql(<span style="color:#0057ae">u8</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"hello"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"h</span><span style="color:#3daee9">\x65</span><span style="color:#bf0303">llo"</span>)}); <span style="color:#898887">// true</span>
-    print(<span style="color:#bf0303">"0x{x}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#bf0303">"</span><span style="color:#3daee9">\xff</span><span style="color:#bf0303">"</span>[<span style="color:#b08000">0</span>]}); <span style="color:#898887">// non-UTF-8 strings are possible with \xNN notation.</span>
-    print(<span style="color:#bf0303">"{u}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{<span style="color:#924c9d">'⚡'</span>});
+    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#644a9b;font-weight:bold">@TypeOf</span>(bytes)<span style="color:#ca60ca">}</span>); <span style="color:#898887">// *const [5:0]u8</span>
+    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span>bytes[<span style="color:#b08000">5</span>]<span style="color:#ca60ca">}</span>); <span style="color:#898887">// 0</span>
+    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#924c9d">'e'</span> <span style="color:#ca60ca">==</span> <span style="color:#924c9d">'</span><span style="color:#3daee9">\x65</span><span style="color:#924c9d">'</span><span style="color:#ca60ca">}</span>); <span style="color:#898887">// true</span>
+    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#924c9d">'</span><span style="color:#3daee9">\u{1f4a9}</span><span style="color:#924c9d">'</span><span style="color:#ca60ca">}</span>);                     <span style="color:#898887">// 128169</span>
+    print(<span style="color:#bf0303">"{d}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#924c9d">'💯'</span><span style="color:#ca60ca">}</span>);                            <span style="color:#898887">// 128175</span>
+    print(<span style="color:#bf0303">"{}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span>mem<span style="color:#ca60ca">.</span>eql(<span style="color:#0057ae">u8</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"hello"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"h</span><span style="color:#3daee9">\x65</span><span style="color:#bf0303">llo"</span>)<span style="color:#ca60ca">}</span>); <span style="color:#898887">// true</span>
+    print(<span style="color:#bf0303">"0x{x}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#bf0303">"</span><span style="color:#3daee9">\xff</span><span style="color:#bf0303">"</span>[<span style="color:#b08000">0</span>]<span style="color:#ca60ca">}</span>); <span style="color:#898887">// non-UTF-8 strings are possible with \xNN notation.</span>
+    print(<span style="color:#bf0303">"{u}</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{</span><span style="color:#924c9d">'⚡'</span><span style="color:#ca60ca">}</span>);
 
     _ <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">@import</span>(<span style="color:#bf0303">"introducing_zig_test.zig"</span>);
-}
+<span style="color:#ca60ca">}</span>
 
 <span style="color:#898887">// Declare an enum.</span>
-<span style="color:#0057ae">const</span> Type <span style="color:#ca60ca">=</span> <span style="font-weight:bold">enum</span> {
+<span style="color:#0057ae">const</span> Type <span style="color:#ca60ca">=</span> <span style="font-weight:bold">enum</span> <span style="color:#ca60ca">{</span>
     ok<span style="color:#ca60ca">,</span>
     not_ok<span style="color:#ca60ca">,</span>
-};
+<span style="color:#ca60ca">}</span>;
 
-<span style="font-weight:bold">test</span> <span style="color:#bf0303">"async skip test"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#bf0303">"async skip test"</span> <span style="color:#ca60ca">{</span>
     <span style="color:#0057ae">var</span> frame <span style="color:#ca60ca">=</span> <span style="color:#0057ae">async</span> func();
     <span style="color:#0057ae">const</span> result <span style="color:#ca60ca">=</span> <span style="color:#0057ae">await</span> frame;
     <span style="font-weight:bold">try</span> std<span style="color:#ca60ca">.</span>testing<span style="color:#ca60ca">.</span>expect(result <span style="color:#ca60ca">==</span> <span style="color:#b08000">1</span>);
-}
+<span style="color:#ca60ca">}</span>
 
-<span style="font-weight:bold">fn</span> func() <span style="color:#0057ae">i32</span> {
-    <span style="font-weight:bold">suspend</span> {
+<span style="font-weight:bold">fn</span> func() <span style="color:#0057ae">i32</span> <span style="color:#ca60ca">{</span>
+    <span style="font-weight:bold">suspend</span> <span style="color:#ca60ca">{</span>
         <span style="font-weight:bold">resume</span> @frame();
-    }
+    <span style="color:#ca60ca">}</span>
     <span style="font-weight:bold">return</span> <span style="color:#b08000">1</span>;
-}
+<span style="color:#ca60ca">}</span>
 
 <span style="font-weight:bold">pub</span> <span style="color:#0057ae">extern</span> <span style="color:#bf0303">"c"</span> <span style="font-weight:bold">fn</span> @<span style="color:#bf0303">"error"</span>() <span style="color:#0057ae">void</span>;
 <span style="font-weight:bold">pub</span> <span style="color:#0057ae">extern</span> <span style="color:#bf0303">"c"</span> <span style="font-weight:bold">fn</span> @<span style="color:#bf0303">"fstat$INODE64"</span>(fd<span style="color:#ca60ca">:</span> c<span style="color:#ca60ca">.</span>fd_t<span style="color:#ca60ca">,</span> buf<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">*</span>c<span style="color:#ca60ca">.</span>Stat) <span style="color:#0057ae">c_int</span>;
 
-<span style="color:#0057ae">const</span> Color <span style="color:#ca60ca">=</span> <span style="font-weight:bold">enum</span> {
+<span style="color:#0057ae">const</span> Color <span style="color:#ca60ca">=</span> <span style="font-weight:bold">enum</span> <span style="color:#ca60ca">{</span>
   red<span style="color:#ca60ca">,</span>
   @<span style="color:#bf0303">"really red"</span><span style="color:#ca60ca">,</span>
-};
+<span style="color:#ca60ca">}</span>;
 <span style="color:#0057ae">const</span> color<span style="color:#ca60ca">:</span> Color <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">.</span>@<span style="color:#bf0303">"really red"</span>;
 
 <span style="color:#0057ae">var</span> y<span style="color:#ca60ca">:</span> <span style="color:#0057ae">i32</span> <span style="color:#ca60ca">=</span> add(<span style="color:#b08000">10</span><span style="color:#ca60ca">,</span> x);
 <span style="color:#0057ae">const</span> x<span style="color:#ca60ca">:</span> <span style="color:#0057ae">i32</span> <span style="color:#ca60ca">=</span> add(<span style="color:#b08000">12</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">34</span>);
 
-<span style="font-weight:bold">test</span> <span style="color:#bf0303">"comptime vars"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#bf0303">"comptime vars"</span> <span style="color:#ca60ca">{</span>
     <span style="color:#0057ae">var</span> x<span style="color:#ca60ca">:</span> <span style="color:#0057ae">i32</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">1</span>;
     <span style="color:#0057ae">comptime</span> <span style="color:#0057ae">var</span> y<span style="color:#ca60ca">:</span> <span style="color:#0057ae">i32</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">1</span>;
 
@@ -94,12 +94,12 @@
     <span style="font-weight:bold">try</span> expect(x <span style="color:#ca60ca">==</span> <span style="color:#b08000">2</span>);
     <span style="font-weight:bold">try</span> expect(y <span style="color:#ca60ca">==</span> <span style="color:#b08000">2</span>);
 
-    <span style="font-weight:bold">if</span> (y <span style="color:#ca60ca">!=</span> <span style="color:#b08000">2</span>) {
+    <span style="font-weight:bold">if</span> (y <span style="color:#ca60ca">!=</span> <span style="color:#b08000">2</span>) <span style="color:#ca60ca">{</span>
         <span style="color:#898887">// This compile error never triggers because y is a comptime variable,</span>
         <span style="color:#898887">// and so `y != 2` is a comptime value, and this if is statically evaluated.</span>
         <span style="color:#644a9b;font-weight:bold">@compileError</span>(<span style="color:#bf0303">"wrong y value"</span>);
-    }
-}
+    <span style="color:#ca60ca">}</span>
+<span style="color:#ca60ca">}</span>
 
 <span style="color:#0057ae">const</span> decimal_int <span style="color:#ca60ca">=</span> <span style="color:#b08000">98222</span>;
 <span style="color:#0057ae">const</span> hex_int <span style="color:#ca60ca">=</span> <span style="color:#b08000">0xff</span>;
@@ -126,72 +126,72 @@
 <span style="color:#0057ae">const</span> nanosecond <span style="color:#ca60ca">=</span> <span style="color:#b08000">0.000_000_001</span>;
 <span style="color:#0057ae">const</span> more_hex <span style="color:#ca60ca">=</span> <span style="color:#b08000">0x1234_5678.9ABC_CDEFp-10</span>;
 
-<span style="color:#0057ae">const</span> A <span style="color:#ca60ca">=</span> <span style="font-weight:bold">error</span>{One};
-<span style="color:#0057ae">const</span> B <span style="color:#ca60ca">=</span> <span style="font-weight:bold">error</span>{Two};
-(A <span style="color:#ca60ca">||</span> B) <span style="color:#ca60ca">==</span> <span style="font-weight:bold">error</span>{One<span style="color:#ca60ca">,</span> Two}
+<span style="color:#0057ae">const</span> A <span style="color:#ca60ca">=</span> <span style="font-weight:bold">error</span><span style="color:#ca60ca">{</span>One<span style="color:#ca60ca">}</span>;
+<span style="color:#0057ae">const</span> B <span style="color:#ca60ca">=</span> <span style="font-weight:bold">error</span><span style="color:#ca60ca">{</span>Two<span style="color:#ca60ca">}</span>;
+(A <span style="color:#ca60ca">||</span> B) <span style="color:#ca60ca">==</span> <span style="font-weight:bold">error</span><span style="color:#ca60ca">{</span>One<span style="color:#ca60ca">,</span> Two<span style="color:#ca60ca">}</span>
 
 <span style="color:#0057ae">const</span> x<span style="color:#ca60ca">:</span> <span style="color:#0057ae">u32</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">1234</span>;
 <span style="color:#0057ae">const</span> ptr <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">&amp;</span>x;
 ptr<span style="color:#ca60ca">.*</span> <span style="color:#ca60ca">==</span> <span style="color:#b08000">1234</span>
 
 <span style="color:#898887">// get the size of an array</span>
-<span style="color:#0057ae">comptime</span> {
+<span style="color:#0057ae">comptime</span> <span style="color:#ca60ca">{</span>
     assert(message<span style="color:#ca60ca">.</span>len <span style="color:#ca60ca">==</span> <span style="color:#b08000">5</span>);
-}
+<span style="color:#ca60ca">}</span>
 
-<span style="font-weight:bold">test</span> <span style="color:#bf0303">"iterate over an array"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#bf0303">"iterate over an array"</span> <span style="color:#ca60ca">{</span>
     <span style="color:#0057ae">var</span> sum<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span> <span style="color:#ca60ca">=</span> <span style="color:#b08000">0</span>;
-    <span style="font-weight:bold">for</span> (message) <span style="color:#ca60ca">|</span>byte<span style="color:#ca60ca">|</span> {
+    <span style="font-weight:bold">for</span> (message) <span style="color:#ca60ca">|</span>byte<span style="color:#ca60ca">|</span> <span style="color:#ca60ca">{</span>
         sum <span style="color:#ca60ca">+=</span> byte;
-    }
+    <span style="color:#ca60ca">}</span>
     <span style="font-weight:bold">try</span> expect(sum <span style="color:#ca60ca">==</span> <span style="color:#924c9d">'h'</span> <span style="color:#ca60ca">+</span> <span style="color:#924c9d">'e'</span> <span style="color:#ca60ca">+</span> <span style="color:#924c9d">'l'</span> <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span> <span style="color:#ca60ca">+</span> <span style="color:#924c9d">'o'</span>);
-}
+<span style="color:#ca60ca">}</span>
 
 <span style="color:#898887">// use compile-time code to initialize an array</span>
-<span style="color:#0057ae">var</span> fancy_array <span style="color:#ca60ca">=</span> init<span style="color:#ca60ca">:</span> {
+<span style="color:#0057ae">var</span> fancy_array <span style="color:#ca60ca">=</span> init<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span>
     <span style="color:#0057ae">var</span> initial_value<span style="color:#ca60ca">:</span> [<span style="color:#b08000">10</span>]Point <span style="color:#ca60ca">=</span> <span style="color:#aa5500">undefined</span>;
-    <span style="font-weight:bold">for</span> (initial_value) <span style="color:#ca60ca">|*</span>pt<span style="color:#ca60ca">,</span> i<span style="color:#ca60ca">|</span> {
-        pt<span style="color:#ca60ca">.*</span> <span style="color:#ca60ca">=</span> Point{
+    <span style="font-weight:bold">for</span> (initial_value) <span style="color:#ca60ca">|*</span>pt<span style="color:#ca60ca">,</span> i<span style="color:#ca60ca">|</span> <span style="color:#ca60ca">{</span>
+        pt<span style="color:#ca60ca">.*</span> <span style="color:#ca60ca">=</span> Point<span style="color:#ca60ca">{</span>
             <span style="color:#ca60ca">.</span>x <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">@intCast</span>(<span style="color:#0057ae">i32</span><span style="color:#ca60ca">,</span> i)<span style="color:#ca60ca">,</span>
             <span style="color:#ca60ca">.</span>y <span style="color:#ca60ca">=</span> <span style="color:#644a9b;font-weight:bold">@intCast</span>(<span style="color:#0057ae">i32</span><span style="color:#ca60ca">,</span> i) <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span>
-        };
-    }
+        <span style="color:#ca60ca">}</span>;
+    <span style="color:#ca60ca">}</span>
     <span style="font-weight:bold">break</span> <span style="color:#ca60ca">:</span>init initial_value;
-};
+<span style="color:#ca60ca">}</span>;
 
-<span style="font-weight:bold">test</span> <span style="color:#bf0303">"switch on non-exhaustive enum"</span> {
+<span style="font-weight:bold">test</span> <span style="color:#bf0303">"switch on non-exhaustive enum"</span> <span style="color:#ca60ca">{</span>
     <span style="font-weight:bold">try</span> expect(result);
-    <span style="color:#0057ae">const</span> is_one <span style="color:#ca60ca">=</span> <span style="font-weight:bold">switch</span> (number) {
+    <span style="color:#0057ae">const</span> is_one <span style="color:#ca60ca">=</span> <span style="font-weight:bold">switch</span> (number) <span style="color:#ca60ca">{</span>
         <span style="color:#ca60ca">.</span>one <span style="color:#ca60ca">=></span> <span style="color:#aa5500">true</span><span style="color:#ca60ca">,</span>
         <span style="font-weight:bold">else</span> <span style="color:#ca60ca">=></span> <span style="color:#aa5500">false</span><span style="color:#ca60ca">,</span>
-    };
+    <span style="color:#ca60ca">}</span>;
     <span style="font-weight:bold">try</span> expect(is_one);
 
     <span style="color:#0057ae">const</span> array_ptr <span style="color:#ca60ca">=</span> array[<span style="color:#b08000">0</span><span style="color:#ca60ca">..</span>array<span style="color:#ca60ca">.</span>len];
 
-    <span style="font-weight:bold">if</span> (a <span style="color:#ca60ca">!=</span> b) {
+    <span style="font-weight:bold">if</span> (a <span style="color:#ca60ca">!=</span> b) <span style="color:#ca60ca">{</span>
         <span style="font-weight:bold">try</span> expect(<span style="color:#aa5500">true</span>);
-    } <span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span> (a <span style="color:#ca60ca">==</span> <span style="color:#b08000">9</span>) {
+    <span style="color:#ca60ca">}</span> <span style="font-weight:bold">else</span> <span style="font-weight:bold">if</span> (a <span style="color:#ca60ca">==</span> <span style="color:#b08000">9</span>) <span style="color:#ca60ca">{</span>
         <span style="font-weight:bold">unreachable</span>;
-    } <span style="font-weight:bold">else</span> {
+    <span style="color:#ca60ca">}</span> <span style="font-weight:bold">else</span> <span style="color:#ca60ca">{</span>
         <span style="font-weight:bold">unreachable</span>;
-    }
-}
+    <span style="color:#ca60ca">}</span>
+<span style="color:#ca60ca">}</span>
 
-<span style="font-weight:bold">fn</span> deferErrorExample(is_error<span style="color:#ca60ca">:</span> <span style="color:#0057ae">bool</span>) <span style="color:#ca60ca">!</span><span style="color:#0057ae">void</span> {
-    print(<span style="color:#bf0303">"</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">start of function</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{});
+<span style="font-weight:bold">fn</span> deferErrorExample(is_error<span style="color:#ca60ca">:</span> <span style="color:#0057ae">bool</span>) <span style="color:#ca60ca">!</span><span style="color:#0057ae">void</span> <span style="color:#ca60ca">{</span>
+    print(<span style="color:#bf0303">"</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">start of function</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{}</span>);
 
     <span style="color:#898887">// This will always be executed on exit</span>
-    <span style="font-weight:bold">defer</span> {
-        print(<span style="color:#bf0303">"end of function</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{});
-    }
-
-    <span style="font-weight:bold">errdefer</span> {
-        print(<span style="color:#bf0303">"encountered an error!</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.</span>{});
-    }
-}
+    <span style="font-weight:bold">defer</span> <span style="color:#ca60ca">{</span>
+        print(<span style="color:#bf0303">"end of function</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{}</span>);
+    <span style="color:#ca60ca">}</span>
+
+    <span style="font-weight:bold">errdefer</span> <span style="color:#ca60ca">{</span>
+        print(<span style="color:#bf0303">"encountered an error!</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span><span style="color:#ca60ca">,</span> <span style="color:#ca60ca">.{}</span>);
+    <span style="color:#ca60ca">}</span>
+<span style="color:#ca60ca">}</span>
 
-<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> syscall3(number<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg1<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg2<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg3<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span>) <span style="color:#0057ae">usize</span> {
+<span style="font-weight:bold">pub</span> <span style="font-weight:bold">fn</span> syscall3(number<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg1<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg2<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span><span style="color:#ca60ca">,</span> arg3<span style="color:#ca60ca">:</span> <span style="color:#0057ae">usize</span>) <span style="color:#0057ae">usize</span> <span style="color:#ca60ca">{</span>
     <span style="font-weight:bold">return</span> <span style="font-weight:bold">asm</span> <span style="color:#0057ae">volatile</span> (<span style="color:#bf0303">"syscall"</span>
         <span style="color:#ca60ca">:</span> [ret] <span style="color:#bf0303">"={rax}"</span> (<span style="color:#ca60ca">-></span> <span style="color:#0057ae">usize</span>)
         <span style="color:#ca60ca">:</span> [number] <span style="color:#bf0303">"{rax}"</span> (number)<span style="color:#ca60ca">,</span>
@@ -200,5 +200,5 @@ ptr<span style="color:#ca60ca">.*</span>
           [arg3] <span style="color:#bf0303">"{rdx}"</span> (arg3)
         <span style="color:#ca60ca">:</span> <span style="color:#bf0303">"rcx"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">"r11"</span>
     );
-}
+<span style="color:#ca60ca">}</span>
 </pre></body></html>
diff -pruN 6.18.0-1/autotests/input/example.qmd 6.19.0-0ubuntu1/autotests/input/example.qmd
--- 6.18.0-1/autotests/input/example.qmd	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/example.qmd	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,96 @@
+---
+title: "Hello, Quarto"
+format: html
+editor: visual
+---
+
+```{r}
+#| label: load-packages
+#| include: false
+
+library(tidyverse)
+library(palmerpenguins)
+```
+
+## This example
+
+This example code mostly from the Quatro guide: https://quarto.org/docs/guide/ . GPL-2.
+
+Quarto is very similar to R markdown, but also allows (inline) code blocks in Python, Julia, and Observable JS.
+
+## Meet Quarto
+
+Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.
+
+## Meet the penguins
+
+![](https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png){style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}
+
+The `penguins` data from the [**palmerpenguins**](https://allisonhorst.github.io/palmerpenguins "palmerpenguins R package") package contains size measurements for `{r} nrow(penguins)` penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.
+
+The plot below shows the relationship between flipper and bill lengths of these penguins.
+
+```{r}
+#| label: plot-penguins
+#| warning: false
+#| echo: false
+# NOTE: We may want to add some sort of ighlighting for the above rendering options
+
+ggplot(penguins, 
+       aes(x = flipper_length_mm, y = bill_length_mm)) +
+  geom_point(aes(color = species, shape = species)) +
+  scale_color_manual(values = c("darkorange","purple","cyan4")) +
+  labs(
+    title = "Flipper and bill length",
+    subtitle = "Dimensions for penguins at Palmer Station LTER",
+    x = "Flipper length (mm)", y = "Bill length (mm)",
+    color = "Penguin species", shape = "Penguin species"
+  ) +
+  theme_minimal()
+```
+
+
+```{python}
+#| label: fig-polar
+#| fig-cap: "A line plot on a polar axis"
+
+import numpy as np
+import matplotlib.pyplot as plt
+
+r = np.arange(0, 2, 0.01)
+theta = 2 * np.pi * r
+fig, ax = plt.subplots(
+  subplot_kw = {'projection': 'polar'} 
+)
+ax.plot(theta, r)
+ax.set_rticks([0.5, 1, 1.5, 2])
+ax.grid(True)
+plt.show()
+```
+
+```{julia}
+#| label: fig-parametric
+#| fig-cap: "Parametric Plots"
+
+using Plots
+
+plot(sin, 
+     x->sin(2x), 
+     0, 
+     2π, 
+     leg=false, 
+     fill=(0,:lavender))
+```
+
+```{ojs}
+viewof bill_length_min = Inputs.range(
+  [32, 50], 
+  {value: 35, step: 1, label: "Bill length (min):"}
+)
+viewof islands = Inputs.checkbox(
+  ["Torgersen", "Biscoe", "Dream"], 
+  { value: ["Torgersen", "Biscoe"], 
+    label: "Islands:"
+  }
+)
+```
diff -pruN 6.18.0-1/autotests/input/systemd-unit.service 6.19.0-0ubuntu1/autotests/input/systemd-unit.service
--- 6.18.0-1/autotests/input/systemd-unit.service	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/systemd-unit.service	2025-10-05 12:41:31.000000000 +0000
@@ -66,7 +66,7 @@ ExecStartPost = -cmd arg, @cmd2 name -o
 ExecCondition = /bin/exec/condition
 ExecReload = /bin/exec/reload
 ExecStop = /bin/kill -SIGABRT $MAINPID
-ExecStopPost = -:!!/bin/stop/post
+ExecStopPost = -:!/bin/stop/post
 RestartSec = 15
 RestartSteps = 2
 RestartMaxDelaySec = 150ms
@@ -199,6 +199,12 @@ StateDirectory = some/dir
 CacheDirectory = some/dir
 LogsDirectory = some/dir
 ConfigurationDirectory = some/dir
+StateDirectoryQuota = 2G
+CacheDirectoryQuota = off
+LogsDirectoryQuota = 70%
+StateDirectoryAccounting = false
+CacheDirectoryAccounting = false
+LogsDirectoryAccounting = false
 RuntimeDirectoryMode = 0755
 StateDirectoryMode = 0755
 CacheDirectoryMode = 0755
@@ -227,6 +233,16 @@ RestrictFileSystems = ~btrfs ntfs3 \
   @temporary
 RestrictNamespaces = cgroup net \
   ipc
+DelegateNamespaces = pid uts
+PrivateBPF = true
+BPFDelegateAttachments = BPFCgroupInetIngress \
+  BPFCgroupSockOps BPFCgroupSockOps
+BPFDelegateCommands = BPFMapCreate BPFProgLoad \
+  BPFProgTestRun
+BPFDelegateMaps = BPFMapTypeUnspec \
+  BPFMapTypeQueue
+BPFDelegatePrograms = BPFProgTypeXdp \
+  BPFProgTypeXdp
 LockPersonality = yes
 MemoryDenyWriteExecute = true
 RestrictRealtime = true
@@ -286,7 +302,6 @@ FinalKillSignal = SIGABRT
 WatchdogSignal = SIGQUIT
 
 ## from systemd.resource-control
-CPUAccounting = yes
 CPUWeight = 1234
 StartupCPUWeight = 321
 CPUQuota = 123.4%
@@ -343,6 +358,8 @@ NFTSet = cgroup:inet:filter:my_service \
 
 
 [Slice]
+ConcurrencyHardMax = 20
+ConcurrencySoftMax = infinity
 # The Slice section may include options of the resource-control option group.
 # See [Service] for available options of systemd.resource-control.
 
@@ -393,8 +410,10 @@ FreeBind = yes
 Transparent = no
 Broadcast = true
 PassCredentials = yes
+PassPIDFD = true
 PassSecurity = true
 PassPacketInfo = true
+AcceptFileDescriptors = no
 Timestamping = nsec
 TCPCongestion = westwood
 ExecStartPre = +/usr/bin/start/pre
@@ -410,6 +429,8 @@ TriggerLimitIntervalSec = 1s 500ms
 TriggerLimitBurst = 50
 PollLimitIntervalSec = 1s 300ms
 PollLimitBurst = 120
+DeferTrigger = patient
+DeferTriggerMaxSec = infinity
 PassFileDescriptorsToExec = true
 # see [Service] for options from systemd.exec and systemd.kill
 
@@ -433,6 +454,7 @@ OnUnitInactiveSec = 1m 30s
 OnCalendar = daily
 AccuracySec = 1min 10sec
 RandomizedDelaySec = 30s
+RandomizedOffsetSec = 20s
 FixedRandomDelay = yes
 DeferReactivation = true
 OnClockChange = false
@@ -493,6 +515,7 @@ ConditionVirtualization = |vmware
 ConditionHost = !shodan*
 ConditionKernelCommandLine = !kernel_option
 ConditionKernelVersion = | >= 4.*
+ConditionVersion = kernel >= 4.*
 ConditionCredential = name
 ConditionEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value
 ConditionSecurity = | ! selinux
@@ -520,6 +543,7 @@ ConditionOSRelease = ID=some-id
 ConditionMemoryPressure = 20%/5min
 ConditionCPUPressure = 12%/10sec
 ConditionIOPressure = 30% / 1min
+ConditionKernelModuleLoaded = modulename
 AssertArchitecture = x86
 AssertVirtualization = |vmware
 AssertHost = !shodan*
@@ -950,6 +974,7 @@ RestrictNamespaces = ipc
 RestrictNamespaces = mnt
 RestrictNamespaces = net
 RestrictNamespaces = pid
+RestrictNamespaces = time
 RestrictNamespaces = user
 RestrictNamespaces = uts
 RestrictNamespaces = cgroup uts
@@ -1087,6 +1112,214 @@ StopWhenUnneeded = invalid
 StopWhenUnneeded = false true
 
 
+###### bpf delegate attachments
+[Service]
+BPFDelegateAttachments = BPFCgroupInetIngress
+BPFDelegateAttachments = BPFCgroupInetEgress
+BPFDelegateAttachments = BPFCgroupInetSockCreate
+BPFDelegateAttachments = BPFCgroupSockOps
+BPFDelegateAttachments = BPFSkSkbStreamParser
+BPFDelegateAttachments = BPFSkSkbStreamVerdict
+BPFDelegateAttachments = BPFCgroupDevice
+BPFDelegateAttachments = BPFSkMsgVerdict
+BPFDelegateAttachments = BPFCgroupInet4Bind
+BPFDelegateAttachments = BPFCgroupInet6Bind
+BPFDelegateAttachments = BPFCgroupInet4Connect
+BPFDelegateAttachments = BPFCgroupInet6Connect
+BPFDelegateAttachments = BPFCgroupInet4PostBind
+BPFDelegateAttachments = BPFCgroupInet6PostBind
+BPFDelegateAttachments = BPFCgroupUdp4Sendmsg
+BPFDelegateAttachments = BPFCgroupUdp6Sendmsg
+BPFDelegateAttachments = BPFLircMode2
+BPFDelegateAttachments = BPFFlowDissector
+BPFDelegateAttachments = BPFCgroupSysctl
+BPFDelegateAttachments = BPFCgroupUdp4Recvmsg
+BPFDelegateAttachments = BPFCgroupUdp6Recvmsg
+BPFDelegateAttachments = BPFCgroupGetsockopt
+BPFDelegateAttachments = BPFCgroupSetsockopt
+BPFDelegateAttachments = BPFTraceRawTp
+BPFDelegateAttachments = BPFTraceFentry
+BPFDelegateAttachments = BPFTraceFexit
+BPFDelegateAttachments = BPFModifyReturn
+BPFDelegateAttachments = BPFLsmMac
+BPFDelegateAttachments = BPFTraceIter
+BPFDelegateAttachments = BPFCgroupInet4Getpeername
+BPFDelegateAttachments = BPFCgroupInet6Getpeername
+BPFDelegateAttachments = BPFCgroupInet4Getsockname
+BPFDelegateAttachments = BPFCgroupInet6Getsockname
+BPFDelegateAttachments = BPFXdpDevmap
+BPFDelegateAttachments = BPFCgroupInetSockRelease
+BPFDelegateAttachments = BPFXdpCpumap
+BPFDelegateAttachments = BPFSkLookup
+BPFDelegateAttachments = BPFXdp
+BPFDelegateAttachments = BPFSkSkbVerdict
+BPFDelegateAttachments = BPFSkReuseportSelect
+BPFDelegateAttachments = BPFSkReuseportSelectOrMigrate
+BPFDelegateAttachments = BPFPerfEvent
+BPFDelegateAttachments = BPFTraceKprobeMulti
+BPFDelegateAttachments = BPFLsmCgroup
+BPFDelegateAttachments = BPFStructOps
+BPFDelegateAttachments = BPFNetfilter
+BPFDelegateAttachments = BPFTcxIngress
+BPFDelegateAttachments = BPFTcxEgress
+BPFDelegateAttachments = BPFTraceUprobeMulti
+BPFDelegateAttachments = BPFCgroupUnixConnect
+BPFDelegateAttachments = BPFCgroupUnixSendmsg
+BPFDelegateAttachments = BPFCgroupUnixRecvmsg
+BPFDelegateAttachments = BPFCgroupUnixGetpeername
+BPFDelegateAttachments = BPFCgroupUnixGetsockname
+BPFDelegateAttachments = BPFNetkitPrimary
+BPFDelegateAttachments = BPFNetkitPeer
+BPFDelegateAttachments = BPFTraceKprobeSession
+BPFDelegateAttachments = BPFTraceUprobeSession
+## invalid values
+BPFDelegateAttachments = invalid
+
+
+###### bpf delegate commands
+[Service]
+BPFDelegateCommands = BPFTokenCreate
+BPFDelegateCommands = BPFTaskFdQuery
+BPFDelegateCommands = BPFRawTracepointOpen
+BPFDelegateCommands = BPFProgTestRun
+BPFDelegateCommands = BPFProgStreamReadByFd
+BPFDelegateCommands = BPFProgQuery
+BPFDelegateCommands = BPFProgLoad
+BPFDelegateCommands = BPFProgGetNextId
+BPFDelegateCommands = BPFProgGetFdById
+BPFDelegateCommands = BPFProgDetach
+BPFDelegateCommands = BPFProgBindMap
+BPFDelegateCommands = BPFProgAttach
+BPFDelegateCommands = BPFObjPin
+BPFDelegateCommands = BPFObjGetInfoByFd
+BPFDelegateCommands = BPFObjGet
+BPFDelegateCommands = BPFMapUpdateElem
+BPFDelegateCommands = BPFMapUpdateBatch
+BPFDelegateCommands = BPFMapLookupElem
+BPFDelegateCommands = BPFMapLookupBatch
+BPFDelegateCommands = BPFMapLookupAndDeleteElem
+BPFDelegateCommands = BPFMapLookupAndDeleteBatch
+BPFDelegateCommands = BPFMapGetNextKey
+BPFDelegateCommands = BPFMapGetNextId
+BPFDelegateCommands = BPFMapGetFdById
+BPFDelegateCommands = BPFMapFreeze
+BPFDelegateCommands = BPFMapDeleteElem
+BPFDelegateCommands = BPFMapDeleteBatch
+BPFDelegateCommands = BPFMapCreate
+BPFDelegateCommands = BPFLinkUpdate
+BPFDelegateCommands = BPFLinkGetNextId
+BPFDelegateCommands = BPFLinkGetFdById
+BPFDelegateCommands = BPFLinkDetach
+BPFDelegateCommands = BPFLinkCreate
+BPFDelegateCommands = BPFIterCreate
+BPFDelegateCommands = BPFEnableStats
+BPFDelegateCommands = BPFBtfLoad
+BPFDelegateCommands = BPFBtfGetNextId
+BPFDelegateCommands = BPFBtfGetFdById
+## invalid values
+BPFDelegateCommands = invalid
+
+
+###### bpf delegate maps
+BPFDelegateMaps = BPFMapTypeUnspec
+BPFDelegateMaps = BPFMapTypeHash
+BPFDelegateMaps = BPFMapTypeArray
+BPFDelegateMaps = BPFMapTypeProgArray
+BPFDelegateMaps = BPFMapTypePerfEventArray
+BPFDelegateMaps = BPFMapTypePercpuHash
+BPFDelegateMaps = BPFMapTypePercpuArray
+BPFDelegateMaps = BPFMapTypeStackTrace
+BPFDelegateMaps = BPFMapTypeCgroupArray
+BPFDelegateMaps = BPFMapTypeLruHash
+BPFDelegateMaps = BPFMapTypeLruPercpuHash
+BPFDelegateMaps = BPFMapTypeLpmTrie
+BPFDelegateMaps = BPFMapTypeArrayOfMaps
+BPFDelegateMaps = BPFMapTypeHashOfMaps
+BPFDelegateMaps = BPFMapTypeDevmap
+BPFDelegateMaps = BPFMapTypeSockmap
+BPFDelegateMaps = BPFMapTypeCpumap
+BPFDelegateMaps = BPFMapTypeXskmap
+BPFDelegateMaps = BPFMapTypeSockhash
+BPFDelegateMaps = BPFMapTypeCgroupStorageDeprecated
+BPFDelegateMaps = BPFMapTypeReuseportSockarray
+BPFDelegateMaps = BPFMapTypePercpuCgroupStorageDeprecated
+BPFDelegateMaps = BPFMapTypeQueue
+BPFDelegateMaps = BPFMapTypeStack
+BPFDelegateMaps = BPFMapTypeSkStorage
+BPFDelegateMaps = BPFMapTypeDevmapHash
+BPFDelegateMaps = BPFMapTypeStructOps
+BPFDelegateMaps = BPFMapTypeRingbuf
+BPFDelegateMaps = BPFMapTypeInodeStorage
+BPFDelegateMaps = BPFMapTypeTaskStorage
+BPFDelegateMaps = BPFMapTypeBloomFilter
+BPFDelegateMaps = BPFMapTypeUserRingbuf
+BPFDelegateMaps = BPFMapTypeCgrpStorage
+BPFDelegateMaps = BPFMapTypeArena
+## invalid values
+BPFDelegateMaps = invalid
+
+
+###### bpf delegate programs
+BPFDelegatePrograms = BPFProgTypeUnspec
+BPFDelegatePrograms = BPFProgTypeSocketFilter
+BPFDelegatePrograms = BPFProgTypeKprobe
+BPFDelegatePrograms = BPFProgTypeSchedCls
+BPFDelegatePrograms = BPFProgTypeSchedAct
+BPFDelegatePrograms = BPFProgTypeTracepoint
+BPFDelegatePrograms = BPFProgTypeXdp
+BPFDelegatePrograms = BPFProgTypePerfEvent
+BPFDelegatePrograms = BPFProgTypeCgroupSkb
+BPFDelegatePrograms = BPFProgTypeCgroupSock
+BPFDelegatePrograms = BPFProgTypeLwtIn
+BPFDelegatePrograms = BPFProgTypeLwtOut
+BPFDelegatePrograms = BPFProgTypeLwtXmit
+BPFDelegatePrograms = BPFProgTypeSockOps
+BPFDelegatePrograms = BPFProgTypeSkSkb
+BPFDelegatePrograms = BPFProgTypeCgroupDevice
+BPFDelegatePrograms = BPFProgTypeSkMsg
+BPFDelegatePrograms = BPFProgTypeRawTracepoint
+BPFDelegatePrograms = BPFProgTypeCgroupSockAddr
+BPFDelegatePrograms = BPFProgTypeLwtSeg6local
+BPFDelegatePrograms = BPFProgTypeLircMode2
+BPFDelegatePrograms = BPFProgTypeSkReuseport
+BPFDelegatePrograms = BPFProgTypeFlowDissector
+BPFDelegatePrograms = BPFProgTypeCgroupSysctl
+BPFDelegatePrograms = BPFProgTypeRawTracepointWritable
+BPFDelegatePrograms = BPFProgTypeCgroupSockopt
+BPFDelegatePrograms = BPFProgTypeTracing
+BPFDelegatePrograms = BPFProgTypeStructOps
+BPFDelegatePrograms = BPFProgTypeExt
+BPFDelegatePrograms = BPFProgTypeLsm
+BPFDelegatePrograms = BPFProgTypeSkLookup
+BPFDelegatePrograms = BPFProgTypeNetfilter
+## invalid values
+BPFDelegatePrograms = invalid
+
+
+###### bpf program type
+BPFProgram = sysctl
+BPFProgram = sock_ops
+BPFProgram = sock_create
+BPFProgram = setsockopt
+BPFProgram = sendmsg6
+BPFProgram = sendmsg4
+BPFProgram = recvmsg6
+BPFProgram = recvmsg4
+BPFProgram = post_bind6
+BPFProgram = post_bind4
+BPFProgram = ingress
+BPFProgram = getsockopt
+BPFProgram = egress
+BPFProgram = device
+BPFProgram = connect6
+BPFProgram = connect4
+BPFProgram = bind6
+BPFProgram = bind4
+BPFProgram = bind6:/sys/fs/bpf/sock-addr-hook
+## invalid values
+BPFProgram = invalid
+
+
 ###### calendar
 [Timer]
 OnCalendar = daily
@@ -1440,19 +1673,29 @@ CPUWeight = invalid
 CPUWeight = 1 10000
 
 
+###### defer trigger
+[Socket]
+DeferTrigger = patient
+# single boolean
+DeferTrigger = false
+DeferTrigger = true
+## invalid values
+DeferTrigger = invalid
+# multiple values
+DeferTrigger = patient true
+
+
+
 ###### delegate
 [Service]
 # single boolean
 Delegate = false
 Delegate = true
 # single controller
-Delegate = blkio
 Delegate = bpf-devices
 Delegate = bpf-firewall
 Delegate = cpu
-Delegate = cpuacct
 Delegate = cpuset
-Delegate = devices
 Delegate = io
 Delegate = memory
 Delegate = pids
@@ -1514,25 +1757,24 @@ ExecStart = /some/cmd %u arg $var1 insid
 ExecStart = cmd1 %h arg1_1 $var1, cmd2 %u arg2_1 $var2_1\
   $var2_2
 # escapes (not exactly the same as detected by HlCStringChar)
-ExecStart = cmd \, \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef
-# prefix
-ExecStart = @/some/cmd arg "@!+-:"
+ExecStart = cmd \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef
+
+
+###### exec prefix
+ExecStart = @/some/cmd arg "@-:+!|"
 ExecStart = -/some/cmd-1 -option arg
 ExecStart = :/some/cmd arg
 ExecStart = +/some/cmd arg
 ExecStart = !/some/cmd arg
-ExecStart = !!/some/cmd arg
-ExecStart = @:-!!/some/cmd arg
-ExecStart = @!!-:/some/cmd arg
+ExecStart = |/some/cmd arg
+ExecStart = @:-!/some/cmd arg
+ExecStart = @!-:/some/cmd arg
 ExecStart = @:-+/some/cmd arg
 ## invalid values
 # invalid prefix
 ExecStart = @ /some/cmd arg
 ExecStart = @ -/some/cmd arg
-ExecStart = +!/some/cmd arg
-ExecStart = !!!/some/cmd arg
-ExecStart = @+@/some/cmd arg
-ExecStart = @!!+/some/cmd arg
+ExecStart = +! /some/cmd arg
 
 
 ###### exit status
@@ -1712,7 +1954,6 @@ Type = ntfs3
 Type = ocfs2
 Type = overlay
 Type = proc
-Type = reiserfs
 Type = tmpfs
 Type = tracefs
 Type = udf
@@ -2129,6 +2370,7 @@ OnFailureJobMode = flush
 OnFailureJobMode = ignore-dependencies
 OnFailureJobMode = ignore-requirements
 OnFailureJobMode = isolate
+OnFailureJobMode = lenient
 OnFailureJobMode = replace
 OnFailureJobMode = replace-irreversibly
 ## invalid values
@@ -2247,6 +2489,7 @@ PrivateTmp = disconnected true
 
 ###### private users
 [Service]
+PrivateUsers = full
 PrivateUsers = identity
 PrivateUsers = self
 ## should accept any boolean value
@@ -2306,6 +2549,18 @@ ProtectHome = invalid
 ProtectHome = tmpfs true
 
 
+###### protect hostname
+[Service]
+ProtectHostname = private
+ProtectHostname = private:host.example.com
+ProtectHostname = true
+ProtectHostname = yes:somehostname
+## invalid values
+ProtectHostname = invalid
+# multiple values
+ProtectHostname = private true
+
+
 ###### protect system
 [Service]
 ProtectSystem = full
diff -pruN 6.18.0-1/autotests/input/test.opsiscript 6.19.0-0ubuntu1/autotests/input/test.opsiscript
--- 6.18.0-1/autotests/input/test.opsiscript	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/test.opsiscript	2025-10-05 12:41:31.000000000 +0000
@@ -2,7 +2,7 @@
 ;
 ;    SPDX-FileCopyrightText: 2024 Stefan Staeglich <sstaeglich@kdemail.net>
 ;
-;    SPDX-License-Identifier: LGPL
+;    SPDX-License-Identifier: LGPL-2.1-or-later
 
 
 
diff -pruN 6.18.0-1/autotests/input/test.rq 6.19.0-0ubuntu1/autotests/input/test.rq
--- 6.18.0-1/autotests/input/test.rq	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/test.rq	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,118 @@
+# SPARQL Query for Syntax Highlighting Test
+# This query includes a wide range of features to test a highlighter's capabilities.
+
+# == 1. Prologue: Base URI and Prefixes
+BASE          <http://example.org/book-data/>
+PREFIX ex:    <http://example.org/vocab#>
+PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
+PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>
+PREFIX dc:    <http://purl.org/dc/elements/1.1/>
+
+# == 2. Query Form: SELECT with Expressions and Aggregates
+SELECT DISTINCT
+    ?authorName
+    (UCASE(?title) AS ?upperCaseTitle)
+    ?publicationDate
+    # Aggregate functions
+    (COUNT(?character) AS ?characterCount)
+    (GROUP_CONCAT(DISTINCT ?genre; SEPARATOR=", ") AS ?genres)
+    (AVG(?rating) AS ?averageRating)
+
+# == 3. Dataset Clause: Defining the Query Target
+FROM <http://example.org/library-main-graph>
+FROM NAMED <http://example.org/library-metadata-graph>
+
+# == 4. Query Pattern: The Core Logic
+WHERE {
+    # Inline data with VALUES
+    VALUES ?authorType { foaf:Person ex:FictionalEntity }
+
+    # Basic Graph Pattern with various term types
+    ?author a foaf:person ;
+            rdf:type ?authorType ;
+            foaf:name ?authorName ;
+            foaf:birthday ?birthDate . # Semicolon for predicate-object lists
+
+    ?author foaf:smoker true .
+    ?author foaf:child false .
+
+    # Property path: one or more 'knows' relationships
+    ?author foaf:knows+ ?colleague .
+
+    # Nested blank node syntax
+    ?book dc:creator [ foaf:name ?authorName ] ;
+          dc:title ?title ;
+          ex:rating ?rating . # Period to end the triple block.
+
+    # OPTIONAL block for data that may not exist
+    OPTIONAL {
+        ?book ex:hasCharacter ?character .
+        ?character foaf:name ?characterName .
+    }
+
+    # UNION to combine results from alternative patterns
+    {
+        ?book ex:genre "Science Fiction"@en .
+    }
+    UNION
+    {
+        ?book ex:genre "Fantasy"^^xsd:string .
+    }
+
+    # BIND to compute and assign a new variable
+    BIND(YEAR(?birthDate) AS ?birthYear)
+
+    # Subquery to pre-filter books
+    {
+      SELECT ?book ?publicationDate WHERE {
+        ?book dc:date ?publicationDate .
+        FILTER(?publicationDate > "2000-01-01T00:00:00"^^xsd:dateTime && ?publicationDate < "2010-01-01T00:00:00"^^xsd:dateTime)
+      }
+      LIMIT 100
+    }
+
+    # GRAPH clause to query a specific named graph
+    GRAPH <http://example.org/library-metadata-graph> {
+        ?book ex:reviewedBy _:reviewer . # Blank node label
+    }
+
+    # SERVICE clause for federated queries
+    SERVICE <http://dbpedia.org/sparql> {
+        ?colleague rdfs:label ?colleagueLabel .
+        FILTER(LANG(?colleagueLabel) = "en")
+    }
+
+    # FILTER clause with a variety of functions and operators
+    FILTER (
+        # Logical, comparison, and arithmetic
+        (?rating > 3.5 && ?birthYear < 1980) ||
+        # Regular expression
+        REGEX(?authorName, "^J\\.\\s?K\\.", "i") &&
+        # Check for existence of a value
+        BOUND(?characterName) &&
+        # String and numeric functions
+        (STRLEN(?title) - 5 > 10) &&
+        # IN operator
+        ?genre IN ("Fantasy", "Sci-Fi") &&
+        # Datatype and language checks
+        LANGMATCHES(LANG(?title), "en-US") &&
+        DATATYPE(?rating) = xsd:decimal
+    )
+
+    FILTER NOT EXISTS {
+        ?colleague schema:memberOf ?organization .
+    }
+}
+
+# == 5. Solution Modifiers: Ordering, Grouping, and Slicing
+GROUP BY ?authorName ?title ?publicationDate
+HAVING (COUNT(?character) >= 2) # Filter on aggregate results
+ORDER BY DESC(?averageRating) ASC(?authorName)
+LIMIT 10
+OFFSET 20
+
+# == Other SPARQL Keywords (for syntax highlighting completeness)
+# CONSTRUCT, DESCRIBE, ASK (alternative query forms)
+# INSERT DATA, DELETE DATA, LOAD, CLEAR, CREATE, DROP (update operations)
diff -pruN 6.18.0-1/autotests/input/test.smk 6.19.0-0ubuntu1/autotests/input/test.smk
--- 6.18.0-1/autotests/input/test.smk	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/test.smk	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,279 @@
+# =============================================================================
+# Snakefile — comprehensive feature test for Snakemake highlighting
+# Minimal comments; lines marked `# ERROR:` are intentionally invalid.
+# =============================================================================
+
+# ---------- Top-level Python ----------
+
+if True: forbidden # ERROR: no text allowed after block opener
+    a = 1
+else: forbidden # ERROR: same
+    a = 0
+
+config = {
+    "method": "B",
+    "samples": ["S1", "S2"],
+    "ref": "ref/genome.fa",
+    "gtf": "ref/genes.gtf",
+    "threads_default": 4,
+    "work": "work",
+    "adapters": {"fwd": "AGATCGGAAGAGC", "rev": "AGATCGGAAGAGC"}
+}
+SAMPLES = config["samples"]
+
+def fq(sample, mate):
+    return f"raw/{sample}_R{mate}.fastq.gz"
+
+# ---------- Global Snakemake directives ----------
+workdir: config["work"]
+localrules: all, qc_fastqc
+ruleorder: sort_index > align
+report: "report/report.html"
+envvars: "LD_LIBRARY_PATH", "OMP_NUM_THREADS"
+wildcard_constraints:
+    sample = r"[A-Za-z0-9_]+"
+
+include: "extras.smk"
+container: "docker://ubuntu:22.04"
+conda: "envs/global.yml"
+containerized:
+
+# Legacy/compat directives still recognized in old workflows
+moduleinclude: "legacy/tools.smk"   # legacy include for modules
+# deprecated (kept for legacy)
+subworkflow oldwf:  something #ERROR: nothing allowed after colon
+    workdir: "oldwf"
+    snakefile: "workflow/Snakefile"
+    input: # ERROR: `input` directive not allowed in subworkflows
+
+# ---------- Modules and use rule ----------
+module asm: something #ERROR: nothing allowed after colon
+    snakefile: "modules/assembly.smk"
+    config: "modules/assembly.yaml"
+    input: "test" # ERROR: `input` directive not allowed in modules
+
+# Reuse a rule from the module; inside `with:` we use regular rule directives
+use rule assemble as assemble_mod with: something #ERROR: nothing allowed after colon
+    snakefile: # ERROR `snakefile` directive not allowed in rules
+    threads: 8
+    params:
+        mode = "quick"
+    message:
+        "Assembling {wildcards.sample} (module override)"
+    # wrong directive (kept to test error handling inside a use-body)
+    outpt: "SHOULD-NOT-BE-HERE"   # ERROR: typo
+
+# ---------- INTENTIONAL TOP-LEVEL ERRORS ----------
+workdirr: "typo/dir"              # ERROR: unknown top-level keyword
+snakefile: "top/level.smk"        # ERROR: only valid inside module/subworkflow
+
+# ---------- Pipeline ----------
+rule all:
+    input:
+        expand("results/{sample}/summary.txt", sample=SAMPLES)
+
+rule qc_fastqc:
+    input:
+        r1 = lambda wc: fq(wc.sample, 1),
+        r2 = lambda wc: fq(wc.sample, 2),
+    output:
+        html = "qc/{sample}_fastqc.html",
+        zip  = "qc/{sample}_fastqc.zip",
+    threads: 2
+    resources:
+        mem_mb = 1024
+    log:
+        "log/fastqc_{sample}.log"
+    params:
+        extra = "--nogroup"
+    shell:
+        """
+        fastqc -t {threads} {params.extra} -o qc {input.r1} {input.r2} > {log} 2>&1
+        """
+
+rule trim_cutadapt:
+    input:
+        r1 = lambda wc: fq(wc.sample, 1),
+        r2 = lambda wc: fq(wc.sample, 2),
+    output:
+        r1 = "trim/{sample}_R1.fastq.gz", # `sample`: wildcard
+        r2 = "trim/{sample}_R2.fastq.gz",
+        report = f"{report_dir}/{{sample}}" # `report_dir`: f-string interpolation, `sample`: wildcard
+    params:
+        a = config["adapters"]["fwd"],
+        A = config["adapters"]["rev"],
+    threads: 8
+    conda:
+        "envs/cutadapt.yml"
+    log:
+        "log/cutadapt_{sample}.log"
+    shell:
+        """
+        cutadapt -j {threads} -a {params.a} -A {params.A} \
+            -o {output.r1} -p {output.r2} {input.r1} {input.r2} > {log} 2>&1
+        """
+
+# Example of wrapper usage (version string illustrative)
+rule align:
+    input:
+        r1 = "trim/{sample}_R1.fastq.gz",
+        r2 = "trim/{sample}_R2.fastq.gz",
+        ref = config["ref"],
+    output:
+        bam = "map/{sample}.unsorted.bam",
+    threads: 12
+    resources:
+        mem_mb = 8000
+    params:
+        # BWA-MEM2 example options
+        extra = "-M"
+    log:
+        "log/align_{sample}.log"
+    wrapper:
+        "0.90.0/bio/bwa/mem2"
+    shell:
+        "bwa-mem2 mem -t {threads} {params.extra} {input.ref} {input.r1} {input.r2} | samtools view -bS - > {output.bam} 2> {log}"
+
+rule sort_index:
+    input:
+        "map/{sample}.unsorted.bam"
+    output:
+        bam = "map/{sample}.bam",
+        bai = "map/{sample}.bam.bai",
+    threads: 6
+    resources:
+        mem_mb = 4000
+    envmodules:
+        "samtools/1.16"
+    shadow:
+        "minimal"
+    shell:
+        """
+        samtools sort -@ {threads} -o {output.bam} {input}
+        samtools index -@ {threads} {output.bam}
+        """
+
+rule quantify:
+    input:
+        bam = "map/{sample}.bam",
+        bai = "map/{sample}.bam.bai",
+        gtf = config["gtf"],
+    output:
+        counts = "counts/{sample}.txt",
+    threads: 4
+    group:
+        "counting"
+    priority:
+        50
+    params:
+        feature_type = "exon",
+        id_attr = "gene_id",
+    shell:
+        """
+        featureCounts -T {threads} -a {input.gtf} -t {params.feature_type} -g {params.id_attr} \
+            -o {output.counts} {input.bam}
+        """
+
+# Example of script & notebook directives
+rule plot_qc:
+    input:
+        "qc/{sample}_fastqc.zip"
+    output:
+        "plots/{sample}_qc.png"
+    script:
+        "scripts/plot_qc.py"    # not executed; present to test directive
+
+rule explore_notebook:
+    input:
+        "counts/{sample}.txt"
+    output:
+        "notebooks/{sample}_eda.ipynb"
+    notebook:
+        "notebooks/template.ipynb"
+
+# Example of per-rule container / cache / benchmark / message / name / version (legacy)
+rule summarize:
+    input:
+        bam = "map/{sample}.bam",
+        counts = "counts/{sample}.txt"
+    output:
+        txt = "results/{sample}/summary.txt"
+    params:
+        tag = "{sample}"        # wildcard should highlight distinctly
+    message:
+        "Summarizing {wildcards.sample}"
+    name:
+        "summarize_{sample}"
+    benchmark:
+        "benchmark/summarize_{sample}.tsv"
+    cache:
+        "permissive"
+    container:
+        "docker://python:3.11"
+    version: "1.0"            # legacy directive
+    threads: 2
+    resources:
+        mem_mb = 512
+    log:
+        "log/summarize_{sample}.log"
+    run:
+        # simple Python run block
+        import json
+        meta = {
+            "sample": wildcards.sample,
+            "bam": input.bam,
+            "counts": input.counts,
+            "tag": params.tag,
+        }
+        # write a tiny summary
+        import os
+        os.makedirs(os.path.dirname(output.txt), exist_ok=True)
+        with open(output.txt, "w") as fh:
+            fh.write(json.dumps(meta, indent=2) + "\n")
+
+# ---------- More intentional errors inside a rule body ----------
+
+if config["method"] == "A":
+    
+    rule bad_header_examples_A:
+        input:
+            "map/{sample}.bam"
+        outpt:      # ERROR: unknown directive
+            "nowhere.txt"
+        foo:        # ERROR: unknown directive
+            "bar"
+        shell:
+            "true"
+else:
+    rule bad_header_examples_B:
+        input:
+            "map/{sample}.bam"
+        output:      # ERROR: unknown directive
+            "nowhere.txt"
+        foo:        # ERROR: unknown directive
+            "bar"
+        shell:
+            "true"
+
+# ---------- Using the module rule  ----------
+rule assemble_via_module:
+    input:
+        "trim/{sample}_R1.fastq.gz",
+        "trim/{sample}_R2.fastq.gz",
+    output:
+        "assembly/{sample}/contigs.fa"
+    threads: 8
+    shell:
+        "echo assembly > {output}"
+
+# ---------- Default target redirection ----------
+rule final_default:
+    output:
+        "FINAL.marker"
+    default_target:
+        True
+    shell:
+        "touch {output}"
+        
+rule: no text allowed here  # ERROR: no text allowed after block opener
+    input: "back_to_normal.txt"
diff -pruN 6.18.0-1/autotests/input/test.xkb 6.19.0-0ubuntu1/autotests/input/test.xkb
--- 6.18.0-1/autotests/input/test.xkb	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/input/test.xkb	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,133 @@
+xkb_keymap {
+    xkb_keycodes  { include "evdev+aliases(qwerty)" };
+    xkb_types     { include "complete"  };
+    xkb_compat    { include "complete"  };
+    xkb_symbols   { include "pc+us(dvorak)+inet(evdev)+terminate(ctrl_alt_bksp)"    };
+    xkb_geometry  { include "pc(pc105)" };
+};
+
+default partial alphanumeric_keys modifier_keys
+xkb_symbols "basic" {
+    include "us(basic)"
+    include "/usr/share/X11/xkb/symbols/it"
+    include "B(S1)|B(S2)"
+    include "%S/de(basic)"
+    override "B(S1)|B(S2)"
+
+    name[Group1] = "Banana (US)";
+ 
+    key <AE01> { [ exclam,          1]     };
+    key <AE12> { [ plus,            equal] };
+    key <A> { [Greek_alpha, Greek_ALPHA, ae, AE] };
+    key <AD05> { [t, T, tslash, Tslash] };       // Type: FOUR_LEVEL_ALPHABETIC
+    key <AD01> { [], [], [ q, Q ] };
+    key <AD05> { [ b, B, U1F966 ]};
+    key <> { [NoSymbol, a, b, {a, b}] };
+
+    key <LALT> { virtualModifier = Alt   }; // Alt is bound to <LALT>
+
+    key <LALT> {
+        symbols[Group1]=[Alt_L],
+        actions[Group1]=[SetMods(modifiers=modMapMods)]
+
+        repeat = False,
+        [ Alt_L ]
+    };
+
+    key <AD01> {
+        type[Group1] = "TWO_LEVEL", // Type
+        [q, Q]                      // Symbols
+    };
+
+    key <LCTL> {
+        symbols[1] = [ Control_L                                          ],
+        actions[1] = [ { SetMods(modifiers=Control), SetGroup(group=+1) } ]
+    };
+
+    override key <AC11> {[ agrave,      adiaeresis,     braceleft       ]};
+    replace key <PRSC> {[  Super_R,  Super_R  ]};
+    modifier_map Mod4 { <PRSC>, <RWIN> };
+    modifier_map Mod1 { <LALT>,<RALT> };
+};
+ 
+// Mandatory to extend the
+! include %S/evdev
+ 
+! option     = symbols
+  custom:foo = +custom(bar)
+  custom:baz = +other(baz)
+
+// Explicit default section with no name required
+partial alphanumeric_keys
+xkb_symbols { include "us(basic)" };
+
+xkb_keycodes "jp106" {
+    include "sgi_vndr/indigo(pc101)"
+    <VOL-> = 122;
+    <HZTG> = 22;
+    alias <AE13> = <BKSL>;
+    augment "sgi_vndr/indy(pc101)"
+    alternate <BKSL> = 100;
+    minimum = 8;
+    maximum = 255;
+};
+
+xkb_types {
+    // ...
+    type "TWO_LEVEL_PLUS_CONTROL" {
+        modifiers = Shift + Control;
+        map[None]          = Level1;
+        map[Shift]         = Level2;
+        map[Control]       = Level3;
+        map[Control+Shift] = Level4;
+        // Using preserve will make Control not consumed and allow
+        // applications to detect keyboard shortcuts with alternative
+        // keysyms in levels 3 and 4 rather than the levels 1 and 2.
+        preserve[Control]       = Control;
+        preserve[Control+Shift] = Control;
+        preserve[Shift+Lock+LevelThree] = Lock;
+        level_name[Level1] = "Base";
+        level_name[Level2] = "Shift";
+        level_name[Level3] = "Tweaked Control";
+        level_name[Level4] = "Tweaked Control + Shift";
+    };
+};
+
+default partial xkb_compatibility "basic" {
+    interpret AccessX_Enable {
+        action = LockControls(controls=AccessXKeys);
+    };
+};
+
+default xkb_compatibility "basic" {
+    virtual_modifiers  NumLock;
+
+    interpret.repeat = False;
+    setMods.clearLocks = True;
+    latchMods.clearLocks = True;
+
+    interpret Shift_Lock+AnyOf(Shift+Lock) {
+        action = LockMods(modifiers=Shift);
+    };
+
+    interpret Num_Lock+Any {
+        virtualModifier = NumLock;
+        action = LockMods(modifiers=NumLock);
+    };
+
+    interpret Mode_switch {
+        action = SetGroup(group=+1);
+    };
+
+    interpret Any + Any {
+        action = SetMods(modifiers=modMapMods);
+    };
+
+    group 2 = Mod5;
+
+    indicator "Shift Lock" {
+        !allowExplicit;
+        whichModState = Locked;
+        modifiers = Shift;
+    };
+};
diff -pruN 6.18.0-1/autotests/reference/example.qmd.ref 6.19.0-0ubuntu1/autotests/reference/example.qmd.ref
--- 6.18.0-1/autotests/reference/example.qmd.ref	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/example.qmd.ref	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,96 @@
+<Markdown>---</Markdown><br/>
+<Key>title</Key><Key Points Operator>:</Key Points Operator><Attribute> </Attribute><String>"Hello, Quarto"</String><br/>
+<Key>format</Key><Key Points Operator>:</Key Points Operator><Attribute> html</Attribute><br/>
+<Key>editor</Key><Key Points Operator>:</Key Points Operator><Attribute> visual</Attribute><br/>
+<Markdown>---</Markdown><br/>
+<Normal Text></Normal Text><br/>
+<Structure>```{r}</Structure><br/>
+<Comment>#| label: load-packages</Comment><br/>
+<Comment>#| include: false</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Keyword>library</Keyword><Symbol>(</Symbol><Normal Text>tidyverse</Normal Text><Symbol>)</Symbol><br/>
+<Keyword>library</Keyword><Symbol>(</Symbol><Normal Text>palmerpenguins</Normal Text><Symbol>)</Symbol><br/>
+<Structure>```</Structure><br/>
+<Normal Text></Normal Text><br/>
+<Header H2>## This example</Header H2><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>This example code mostly from the Quatro guide: </Normal Text><Normal Text: Link>https://quarto.org/docs/guide/</Normal Text: Link><Normal Text> . GPL-2.</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>Quarto is very similar to R markdown, but also allows (inline) code blocks in Python, Julia, and Observable JS.</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Header H2>## Meet Quarto</Header H2><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see </Normal Text><Auto-Link><</Auto-Link><Link>https://quarto.org</Link><Auto-Link>></Auto-Link><Normal Text>.</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Header H2>## Meet the penguins</Header H2><br/>
+<Normal Text></Normal Text><br/>
+<Inline Image>![](</Inline Image><Inline Image: Link>https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png</Inline Image: Link><Inline Image>)</Inline Image><Normal Text>{style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>The </Normal Text><Code>`penguins`</Code><Normal Text> data from the </Normal Text><Reference-Link>[</Reference-Link><Reference-Link Name>**palmerpenguins**</Reference-Link Name><Reference-Link>](</Reference-Link><Reference-Link: Link>https://allisonhorst.github.io/palmerpenguins</Reference-Link: Link><Reference-Link> "palmerpenguins R package")</Reference-Link><Normal Text> package contains size measurements for </Normal Text><Structure>`{r}</Structure><Normal Text> </Normal Text><Keyword>nrow</Keyword><Symbol>(</Symbol><Normal Text>penguins</Normal Text><Symbol>)</Symbol><Structure>`</Structure><Normal Text> penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>The plot below shows the relationship between flipper and bill lengths of these penguins.</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Structure>```{r}</Structure><br/>
+<Comment>#| label: plot-penguins</Comment><br/>
+<Comment>#| warning: false</Comment><br/>
+<Comment>#| echo: false</Comment><br/>
+<Comment># </Comment><Alert Level 3>NOTE</Alert Level 3><Comment>: We may want to add some sort of ighlighting for the above rendering options</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Keyword>ggplot</Keyword><Symbol>(</Symbol><Normal Text>penguins, </Normal Text><br/>
+<Normal Text>       </Normal Text><Keyword>aes</Keyword><Symbol>(</Symbol><Identifier>x =</Identifier><Normal Text> flipper_length_mm, </Normal Text><Identifier>y =</Identifier><Normal Text> bill_length_mm</Normal Text><Symbol>))</Symbol><Normal Text> </Normal Text><Operator>+</Operator><br/>
+<Normal Text>  </Normal Text><Keyword>geom_point</Keyword><Symbol>(</Symbol><Keyword>aes</Keyword><Symbol>(</Symbol><Identifier>color =</Identifier><Normal Text> species, </Normal Text><Identifier>shape =</Identifier><Normal Text> species</Normal Text><Symbol>))</Symbol><Normal Text> </Normal Text><Operator>+</Operator><br/>
+<Normal Text>  </Normal Text><Keyword>scale_color_manual</Keyword><Symbol>(</Symbol><Identifier>values =</Identifier><Normal Text> </Normal Text><Keyword>c</Keyword><Symbol>(</Symbol><String>"darkorange"</String><Normal Text>,</Normal Text><String>"purple"</String><Normal Text>,</Normal Text><String>"cyan4"</String><Symbol>))</Symbol><Normal Text> </Normal Text><Operator>+</Operator><br/>
+<Normal Text>  </Normal Text><Keyword>labs</Keyword><Symbol>(</Symbol><br/>
+<Normal Text>    </Normal Text><Identifier>title =</Identifier><Normal Text> </Normal Text><String>"Flipper and bill length"</String><Normal Text>,</Normal Text><br/>
+<Normal Text>    </Normal Text><Identifier>subtitle =</Identifier><Normal Text> </Normal Text><String>"Dimensions for penguins at Palmer Station LTER"</String><Normal Text>,</Normal Text><br/>
+<Normal Text>    </Normal Text><Identifier>x =</Identifier><Normal Text> </Normal Text><String>"Flipper length (mm)"</String><Normal Text>, </Normal Text><Identifier>y =</Identifier><Normal Text> </Normal Text><String>"Bill length (mm)"</String><Normal Text>,</Normal Text><br/>
+<Normal Text>    </Normal Text><Identifier>color =</Identifier><Normal Text> </Normal Text><String>"Penguin species"</String><Normal Text>, </Normal Text><Identifier>shape =</Identifier><Normal Text> </Normal Text><String>"Penguin species"</String><br/>
+<Normal Text>  </Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Operator>+</Operator><br/>
+<Normal Text>  </Normal Text><Keyword>theme_minimal</Keyword><Symbol>()</Symbol><br/>
+<Structure>```</Structure><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Structure>```{python}</Structure><br/>
+<Comment>#| label: fig-polar</Comment><br/>
+<Comment>#| fig-cap: "A line plot on a polar axis"</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Import>import</Import><Normal Text> numpy </Normal Text><Import>as</Import><Normal Text> np</Normal Text><br/>
+<Import>import</Import><Normal Text> matplotlib.pyplot </Normal Text><Import>as</Import><Normal Text> plt</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>r </Normal Text><Operator>=</Operator><Normal Text> np.arange(</Normal Text><Int>0</Int><Normal Text>, </Normal Text><Int>2</Int><Normal Text>, </Normal Text><Float>0.01</Float><Normal Text>)</Normal Text><br/>
+<Normal Text>theta </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Int>2</Int><Normal Text> </Normal Text><Operator>*</Operator><Normal Text> np.pi </Normal Text><Operator>*</Operator><Normal Text> r</Normal Text><br/>
+<Normal Text>fig, ax </Normal Text><Operator>=</Operator><Normal Text> plt.subplots(</Normal Text><br/>
+<Normal Text>  subplot_kw </Normal Text><Operator>=</Operator><Normal Text> {</Normal Text><String Deliminator>'</String Deliminator><String>projection</String><String Deliminator>'</String Deliminator><Normal Text>: </Normal Text><String Deliminator>'</String Deliminator><String>polar</String><String Deliminator>'</String Deliminator><Normal Text>} </Normal Text><br/>
+<Normal Text>)</Normal Text><br/>
+<Normal Text>ax.plot(theta, r)</Normal Text><br/>
+<Normal Text>ax.set_rticks([</Normal Text><Float>0.5</Float><Normal Text>, </Normal Text><Int>1</Int><Normal Text>, </Normal Text><Float>1.5</Float><Normal Text>, </Normal Text><Int>2</Int><Normal Text>])</Normal Text><br/>
+<Normal Text>ax.grid(</Normal Text><Special Variable>True</Special Variable><Normal Text>)</Normal Text><br/>
+<Normal Text>plt.show()</Normal Text><br/>
+<Structure>```</Structure><br/>
+<Normal Text></Normal Text><br/>
+<Structure>```{julia}</Structure><br/>
+<Comment>#| label: fig-parametric</Comment><br/>
+<Comment>#| fig-cap: "Parametric Plots"</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Import>using</Import><Normal Text> </Normal Text><Module>Plots</Module><br/>
+<Normal Text></Normal Text><br/>
+<Function>plot</Function><Normal Text>(</Normal Text><Variable>sin</Variable><Normal Text>, </Normal Text><br/>
+<Normal Text>     </Normal Text><Function>x->sin</Function><Normal Text>(</Normal Text><Float>2</Float><Variable>x</Variable><Normal Text>), </Normal Text><br/>
+<Normal Text>     </Normal Text><Float>0</Float><Normal Text>, </Normal Text><br/>
+<Normal Text>     </Normal Text><Float>2</Float><Variable>π</Variable><Normal Text>, </Normal Text><br/>
+<Normal Text>     </Normal Text><Variable>leg</Variable><Operator>=</Operator><Boolean>false</Boolean><Normal Text>, </Normal Text><br/>
+<Normal Text>     </Normal Text><Variable>fill</Variable><Operator>=</Operator><Normal Text>(</Normal Text><Float>0</Float><Normal Text>,</Normal Text><Operator>:</Operator><Variable>lavender</Variable><Normal Text>))</Normal Text><br/>
+<Structure>```</Structure><br/>
+<Normal Text></Normal Text><br/>
+<Structure>```{ojs}</Structure><br/>
+<Normal Text>viewof bill_length_min </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>Inputs</Objects><Symbol>.</Symbol><Function Name>range</Function Name><Normal Text>(</Normal Text><br/>
+<Normal Text>  [</Normal Text><Decimal>32</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>50</Decimal><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><br/>
+<Normal Text>  {</Normal Text><JSON>value</JSON><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>35</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><JSON>step</JSON><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><JSON>label</JSON><Symbol>:</Symbol><Normal Text> </Normal Text><String>"Bill length (min):"</String><Normal Text>}</Normal Text><br/>
+<Normal Text>)</Normal Text><br/>
+<Normal Text>viewof islands </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>Inputs</Objects><Symbol>.</Symbol><Function Name>checkbox</Function Name><Normal Text>(</Normal Text><br/>
+<Normal Text>  [</Normal Text><String>"Torgersen"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"Biscoe"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"Dream"</String><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><br/>
+<Normal Text>  { </Normal Text><JSON>value</JSON><Symbol>:</Symbol><Normal Text> [</Normal Text><String>"Torgersen"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"Biscoe"</String><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><br/>
+<Normal Text>    </Normal Text><JSON>label</JSON><Symbol>:</Symbol><Normal Text> </Normal Text><String>"Islands:"</String><br/>
+<Normal Text>  }</Normal Text><br/>
+<Normal Text>)</Normal Text><br/>
+<Structure>```</Structure><br/>
diff -pruN 6.18.0-1/autotests/reference/systemd-unit.service.ref 6.19.0-0ubuntu1/autotests/reference/systemd-unit.service.ref
--- 6.18.0-1/autotests/reference/systemd-unit.service.ref	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/systemd-unit.service.ref	2025-10-05 12:41:31.000000000 +0000
@@ -66,7 +66,7 @@
 <Option Name>ExecCondition</Option Name><Normal> = /bin/exec/condition</Normal><br/>
 <Option Name>ExecReload</Option Name><Normal> = /bin/exec/reload</Normal><br/>
 <Option Name>ExecStop</Option Name><Normal> = /bin/kill -SIGABRT </Normal><Environment Variable>$MAINPID</Environment Variable><br/>
-<Option Name>ExecStopPost</Option Name><Normal> = </Normal><Prefix>-:!!</Prefix><Normal>/bin/stop/post</Normal><br/>
+<Option Name>ExecStopPost</Option Name><Normal> = </Normal><Prefix>-:!</Prefix><Normal>/bin/stop/post</Normal><br/>
 <Option Name>RestartSec</Option Name><Normal> = </Normal><Number>15</Number><br/>
 <Option Name>RestartSteps</Option Name><Normal> = </Normal><Number>2</Number><br/>
 <Option Name>RestartMaxDelaySec</Option Name><Normal> = </Normal><Number>150</Number><Measurement Unit>ms</Measurement Unit><br/>
@@ -199,6 +199,12 @@
 <Option Name>CacheDirectory</Option Name><Normal> = some/dir</Normal><br/>
 <Option Name>LogsDirectory</Option Name><Normal> = some/dir</Normal><br/>
 <Option Name>ConfigurationDirectory</Option Name><Normal> = some/dir</Normal><br/>
+<Option Name>StateDirectoryQuota</Option Name><Normal> = </Normal><Number>2</Number><Measurement Unit>G</Measurement Unit><br/>
+<Option Name>CacheDirectoryQuota</Option Name><Normal> = </Normal><Constant>off</Constant><br/>
+<Option Name>LogsDirectoryQuota</Option Name><Normal> = </Normal><Number>70</Number><Measurement Unit>%</Measurement Unit><br/>
+<Option Name>StateDirectoryAccounting</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
+<Option Name>CacheDirectoryAccounting</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
+<Option Name>LogsDirectoryAccounting</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
 <Option Name>RuntimeDirectoryMode</Option Name><Normal> = </Normal><File Mode>0755</File Mode><br/>
 <Option Name>StateDirectoryMode</Option Name><Normal> = </Normal><File Mode>0755</File Mode><br/>
 <Option Name>CacheDirectoryMode</Option Name><Normal> = </Normal><File Mode>0755</File Mode><br/>
@@ -227,6 +233,16 @@
 <Normal>  </Normal><Constant>@temporary</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>cgroup</Constant><Normal> </Normal><Constant>net</Constant><Normal> </Normal><Continuation>\</Continuation><br/>
 <Normal>  </Normal><Constant>ipc</Constant><br/>
+<Option Name>DelegateNamespaces</Option Name><Normal> = </Normal><Constant>pid</Constant><Normal> </Normal><Constant>uts</Constant><br/>
+<Option Name>PrivateBPF</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInetIngress</Constant><Normal> </Normal><Continuation>\</Continuation><br/>
+<Normal>  </Normal><Constant>BPFCgroupSockOps</Constant><Normal> </Normal><Constant>BPFCgroupSockOps</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapCreate</Constant><Normal> </Normal><Constant>BPFProgLoad</Constant><Normal> </Normal><Continuation>\</Continuation><br/>
+<Normal>  </Normal><Constant>BPFProgTestRun</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeUnspec</Constant><Normal> </Normal><Continuation>\</Continuation><br/>
+<Normal>  </Normal><Constant>BPFMapTypeQueue</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeXdp</Constant><Normal> </Normal><Continuation>\</Continuation><br/>
+<Normal>  </Normal><Constant>BPFProgTypeXdp</Constant><br/>
 <Option Name>LockPersonality</Option Name><Normal> = </Normal><Constant>yes</Constant><br/>
 <Option Name>MemoryDenyWriteExecute</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Option Name>RestrictRealtime</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
@@ -286,7 +302,6 @@
 <Option Name>WatchdogSignal</Option Name><Normal> = </Normal><Constant>SIGQUIT</Constant><br/>
 <Normal></Normal><br/>
 <Comment>## from systemd.resource-control</Comment><br/>
-<Option Name>CPUAccounting</Option Name><Normal> = </Normal><Constant>yes</Constant><br/>
 <Option Name>CPUWeight</Option Name><Normal> = </Normal><Number>1234</Number><br/>
 <Option Name>StartupCPUWeight</Option Name><Normal> = </Normal><Number>321</Number><br/>
 <Option Name>CPUQuota</Option Name><Normal> = </Normal><Number>123.4</Number><Measurement Unit>%</Measurement Unit><br/>
@@ -343,6 +358,8 @@
 <Normal></Normal><br/>
 <Normal></Normal><br/>
 <Section Header>[Slice]</Section Header><br/>
+<Option Name>ConcurrencyHardMax</Option Name><Normal> = </Normal><Number>20</Number><br/>
+<Option Name>ConcurrencySoftMax</Option Name><Normal> = </Normal><Constant>infinity</Constant><br/>
 <Comment># The Slice section may include options of the resource-control option group.</Comment><br/>
 <Comment># See [Service] for available options of systemd.resource-control.</Comment><br/>
 <Normal></Normal><br/>
@@ -393,8 +410,10 @@
 <Option Name>Transparent</Option Name><Normal> = </Normal><Constant>no</Constant><br/>
 <Option Name>Broadcast</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Option Name>PassCredentials</Option Name><Normal> = </Normal><Constant>yes</Constant><br/>
+<Option Name>PassPIDFD</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Option Name>PassSecurity</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Option Name>PassPacketInfo</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
+<Option Name>AcceptFileDescriptors</Option Name><Normal> = </Normal><Constant>no</Constant><br/>
 <Option Name>Timestamping</Option Name><Normal> = </Normal><Constant>nsec</Constant><br/>
 <Option Name>TCPCongestion</Option Name><Normal> = westwood</Normal><br/>
 <Option Name>ExecStartPre</Option Name><Normal> = </Normal><Prefix>+</Prefix><Normal>/usr/bin/start/pre</Normal><br/>
@@ -410,6 +429,8 @@
 <Option Name>TriggerLimitBurst</Option Name><Normal> = </Normal><Number>50</Number><br/>
 <Option Name>PollLimitIntervalSec</Option Name><Normal> = </Normal><Number>1</Number><Measurement Unit>s</Measurement Unit><Normal> </Normal><Number>300</Number><Measurement Unit>ms</Measurement Unit><br/>
 <Option Name>PollLimitBurst</Option Name><Normal> = </Normal><Number>120</Number><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = </Normal><Constant>patient</Constant><br/>
+<Option Name>DeferTriggerMaxSec</Option Name><Normal> = </Normal><Constant>infinity</Constant><br/>
 <Option Name>PassFileDescriptorsToExec</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Comment># see [Service] for options from systemd.exec and systemd.kill</Comment><br/>
 <Normal></Normal><br/>
@@ -433,6 +454,7 @@
 <Option Name>OnCalendar</Option Name><Normal> = </Normal><Constant>daily</Constant><br/>
 <Option Name>AccuracySec</Option Name><Normal> = </Normal><Number>1</Number><Measurement Unit>min</Measurement Unit><Normal> </Normal><Number>10</Number><Measurement Unit>sec</Measurement Unit><br/>
 <Option Name>RandomizedDelaySec</Option Name><Normal> = </Normal><Number>30</Number><Measurement Unit>s</Measurement Unit><br/>
+<Option Name>RandomizedOffsetSec</Option Name><Normal> = </Normal><Number>20</Number><Measurement Unit>s</Measurement Unit><br/>
 <Option Name>FixedRandomDelay</Option Name><Normal> = </Normal><Constant>yes</Constant><br/>
 <Option Name>DeferReactivation</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Option Name>OnClockChange</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
@@ -493,6 +515,7 @@
 <Option Name>ConditionHost</Option Name><Normal> = </Normal><Prefix>!</Prefix><Normal>shodan</Normal><Wildcard>*</Wildcard><br/>
 <Option Name>ConditionKernelCommandLine</Option Name><Normal> = </Normal><Prefix>!</Prefix><Normal>kernel_option</Normal><br/>
 <Option Name>ConditionKernelVersion</Option Name><Normal> = </Normal><Prefix>| </Prefix><Normal>>= 4.</Normal><Wildcard>*</Wildcard><br/>
+<Option Name>ConditionVersion</Option Name><Normal> = kernel >= 4.</Normal><Wildcard>*</Wildcard><br/>
 <Option Name>ConditionCredential</Option Name><Normal> = name</Normal><br/>
 <Option Name>ConditionEnvironment</Option Name><Normal> = SOME_ENVIRONMENT_VARIABLE=some_value</Normal><br/>
 <Option Name>ConditionSecurity</Option Name><Normal> = </Normal><Prefix>| !</Prefix><Normal> </Normal><Constant>selinux</Constant><br/>
@@ -520,6 +543,7 @@
 <Option Name>ConditionMemoryPressure</Option Name><Normal> = </Normal><Number>20</Number><Normal>%</Normal><Separator>/</Separator><Threshold Time Span>5min</Threshold Time Span><br/>
 <Option Name>ConditionCPUPressure</Option Name><Normal> = </Normal><Number>12</Number><Normal>%</Normal><Separator>/</Separator><Threshold Time Span>10sec</Threshold Time Span><br/>
 <Option Name>ConditionIOPressure</Option Name><Normal> = </Normal><Number>30</Number><Normal>% </Normal><Separator>/</Separator><Normal> </Normal><Threshold Time Span>1min</Threshold Time Span><br/>
+<Option Name>ConditionKernelModuleLoaded</Option Name><Normal> = modulename</Normal><br/>
 <Option Name>AssertArchitecture</Option Name><Normal> = </Normal><Constant>x86</Constant><br/>
 <Option Name>AssertVirtualization</Option Name><Normal> = </Normal><Prefix>|</Prefix><Constant>vmware</Constant><br/>
 <Option Name>AssertHost</Option Name><Normal> = </Normal><Prefix>!</Prefix><Normal>shodan</Normal><Wildcard>*</Wildcard><br/>
@@ -950,6 +974,7 @@
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>mnt</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>net</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>pid</Constant><br/>
+<Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>time</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>user</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>uts</Constant><br/>
 <Option Name>RestrictNamespaces</Option Name><Normal> = </Normal><Constant>cgroup</Constant><Normal> </Normal><Constant>uts</Constant><br/>
@@ -1087,6 +1112,214 @@
 <Option Name>StopWhenUnneeded</Option Name><Normal> = </Normal><Constant>false</Constant><Normal> true</Normal><br/>
 <Normal></Normal><br/>
 <Normal></Normal><br/>
+<Comment>###### bpf delegate attachments</Comment><br/>
+<Section Header>[Service]</Section Header><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInetIngress</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInetEgress</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInetSockCreate</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupSockOps</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkSkbStreamParser</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkSkbStreamVerdict</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupDevice</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkMsgVerdict</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet4Bind</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet6Bind</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet4Connect</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet6Connect</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet4PostBind</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet6PostBind</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUdp4Sendmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUdp6Sendmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFLircMode2</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFFlowDissector</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupSysctl</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUdp4Recvmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUdp6Recvmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupGetsockopt</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupSetsockopt</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceRawTp</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceFentry</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceFexit</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFModifyReturn</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFLsmMac</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceIter</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet4Getpeername</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet6Getpeername</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet4Getsockname</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInet6Getsockname</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFXdpDevmap</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupInetSockRelease</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFXdpCpumap</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkLookup</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFXdp</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkSkbVerdict</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkReuseportSelect</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFSkReuseportSelectOrMigrate</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFPerfEvent</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceKprobeMulti</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFLsmCgroup</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFStructOps</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFNetfilter</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTcxIngress</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTcxEgress</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceUprobeMulti</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUnixConnect</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUnixSendmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUnixRecvmsg</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUnixGetpeername</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFCgroupUnixGetsockname</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFNetkitPrimary</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFNetkitPeer</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceKprobeSession</Constant><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = </Normal><Constant>BPFTraceUprobeSession</Constant><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>BPFDelegateAttachments</Option Name><Normal> = invalid</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Comment>###### bpf delegate commands</Comment><br/>
+<Section Header>[Service]</Section Header><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFTokenCreate</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFTaskFdQuery</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFRawTracepointOpen</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgTestRun</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgStreamReadByFd</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgQuery</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgLoad</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgGetNextId</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgGetFdById</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgDetach</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgBindMap</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFProgAttach</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFObjPin</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFObjGetInfoByFd</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFObjGet</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapUpdateElem</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapUpdateBatch</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapLookupElem</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapLookupBatch</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapLookupAndDeleteElem</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapLookupAndDeleteBatch</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapGetNextKey</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapGetNextId</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapGetFdById</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapFreeze</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapDeleteElem</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapDeleteBatch</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFMapCreate</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFLinkUpdate</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFLinkGetNextId</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFLinkGetFdById</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFLinkDetach</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFLinkCreate</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFIterCreate</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFEnableStats</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFBtfLoad</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFBtfGetNextId</Constant><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = </Normal><Constant>BPFBtfGetFdById</Constant><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>BPFDelegateCommands</Option Name><Normal> = invalid</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Comment>###### bpf delegate maps</Comment><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeUnspec</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeHash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeArray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeProgArray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypePerfEventArray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypePercpuHash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypePercpuArray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeStackTrace</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeCgroupArray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeLruHash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeLruPercpuHash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeLpmTrie</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeArrayOfMaps</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeHashOfMaps</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeDevmap</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeSockmap</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeCpumap</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeXskmap</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeSockhash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeCgroupStorageDeprecated</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeReuseportSockarray</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypePercpuCgroupStorageDeprecated</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeQueue</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeStack</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeSkStorage</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeDevmapHash</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeStructOps</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeRingbuf</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeInodeStorage</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeTaskStorage</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeBloomFilter</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeUserRingbuf</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeCgrpStorage</Constant><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = </Normal><Constant>BPFMapTypeArena</Constant><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>BPFDelegateMaps</Option Name><Normal> = invalid</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Comment>###### bpf delegate programs</Comment><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeUnspec</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSocketFilter</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeKprobe</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSchedCls</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSchedAct</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeTracepoint</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeXdp</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypePerfEvent</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupSkb</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupSock</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLwtIn</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLwtOut</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLwtXmit</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSockOps</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSkSkb</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupDevice</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSkMsg</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeRawTracepoint</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupSockAddr</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLwtSeg6local</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLircMode2</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSkReuseport</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeFlowDissector</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupSysctl</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeRawTracepointWritable</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeCgroupSockopt</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeTracing</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeStructOps</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeExt</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeLsm</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeSkLookup</Constant><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = </Normal><Constant>BPFProgTypeNetfilter</Constant><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>BPFDelegatePrograms</Option Name><Normal> = invalid</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Comment>###### bpf program type</Comment><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>sysctl</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>sock_ops</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>sock_create</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>setsockopt</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>sendmsg6</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>sendmsg4</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>recvmsg6</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>recvmsg4</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>post_bind6</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>post_bind4</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>ingress</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>getsockopt</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>egress</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>device</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>connect6</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>connect4</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>bind6</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>bind4</Constant><br/>
+<Option Name>BPFProgram</Option Name><Normal> = </Normal><Constant>bind6</Constant><Normal>:/sys/fs/bpf/sock-addr-hook</Normal><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>BPFProgram</Option Name><Normal> = invalid</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
 <Comment>###### calendar</Comment><br/>
 <Section Header>[Timer]</Section Header><br/>
 <Option Name>OnCalendar</Option Name><Normal> = </Normal><Constant>daily</Constant><br/>
@@ -1283,13 +1516,13 @@
 <Comment>###### controller list</Comment><br/>
 <Section Header>[Service]</Section Header><br/>
 <Comment># single controller</Comment><br/>
-<Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>blkio</Constant><br/>
+<Option Name>DisableControllers</Option Name><Normal> = blkio</Normal><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>bpf-devices</Constant><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>bpf-firewall</Constant><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>cpu</Constant><br/>
-<Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>cpuacct</Constant><br/>
+<Option Name>DisableControllers</Option Name><Normal> = cpuacct</Normal><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>cpuset</Constant><br/>
-<Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>devices</Constant><br/>
+<Option Name>DisableControllers</Option Name><Normal> = devices</Normal><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>io</Constant><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>memory</Constant><br/>
 <Option Name>DisableControllers</Option Name><Normal> = </Normal><Constant>pids</Constant><br/>
@@ -1440,19 +1673,29 @@
 <Option Name>CPUWeight</Option Name><Normal> = 1 </Normal><Number>10000</Number><br/>
 <Normal></Normal><br/>
 <Normal></Normal><br/>
+<Comment>###### defer trigger</Comment><br/>
+<Section Header>[Socket]</Section Header><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = </Normal><Constant>patient</Constant><br/>
+<Comment># single boolean</Comment><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = i</Normal><Constant>n</Constant><Normal>valid</Normal><br/>
+<Comment># multiple values</Comment><br/>
+<Option Name>DeferTrigger</Option Name><Normal> = </Normal><Constant>patient</Constant><Normal> true</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
 <Comment>###### delegate</Comment><br/>
 <Section Header>[Service]</Section Header><br/>
 <Comment># single boolean</Comment><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>false</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
 <Comment># single controller</Comment><br/>
-<Option Name>Delegate</Option Name><Normal> = </Normal><Constant>blkio</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>bpf-devices</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>bpf-firewall</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>cpu</Constant><br/>
-<Option Name>Delegate</Option Name><Normal> = </Normal><Constant>cpuacct</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>cpuset</Constant><br/>
-<Option Name>Delegate</Option Name><Normal> = </Normal><Constant>devices</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>io</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>memory</Constant><br/>
 <Option Name>Delegate</Option Name><Normal> = </Normal><Constant>pids</Constant><br/>
@@ -1514,25 +1757,24 @@
 <Option Name>ExecStart</Option Name><Normal> = cmd1 </Normal><Specifier>%h</Specifier><Normal> arg1_1 </Normal><Environment Variable>$var1</Environment Variable><Normal>, cmd2 </Normal><Specifier>%u</Specifier><Normal> arg2_1 </Normal><Environment Variable>$var2_1</Environment Variable><Continuation>\</Continuation><br/>
 <Normal>  </Normal><Environment Variable>$var2_2</Environment Variable><br/>
 <Comment># escapes (not exactly the same as detected by HlCStringChar)</Comment><br/>
-<Option Name>ExecStart</Option Name><Normal> = cmd \, </Normal><Escape>\'</Escape><Normal> </Normal><Escape>\"</Escape><Normal> \\ \a </Normal><Escape>\b</Escape><Normal> </Normal><Escape>\f</Escape><Normal> </Normal><Escape>\n</Escape><Normal> </Normal><Escape>\r</Escape><Normal> </Normal><Escape>\s</Escape><Normal> </Normal><Escape>\t</Escape><Normal> </Normal><Escape>\v</Escape><Normal> </Normal><Escape>\x0A</Escape><Normal> </Normal><Escape>\012</Escape><Normal> </Normal><Escape>\u1234</Escape><Normal> </Normal><Escape>\U12abcdef</Escape><br/>
-<Comment># prefix</Comment><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@</Prefix><Normal>/some/cmd arg "@!+-:"</Normal><br/>
+<Option Name>ExecStart</Option Name><Normal> = cmd </Normal><Escape>\'</Escape><Normal> </Normal><Escape>\"</Escape><Normal> </Normal><Escape>\\</Escape><Normal> </Normal><Escape>\a</Escape><Normal> </Normal><Escape>\b</Escape><Normal> </Normal><Escape>\f</Escape><Normal> </Normal><Escape>\n</Escape><Normal> </Normal><Escape>\r</Escape><Normal> </Normal><Escape>\s</Escape><Normal> </Normal><Escape>\t</Escape><Normal> </Normal><Escape>\v</Escape><Normal> </Normal><Escape>\x0A</Escape><Normal> </Normal><Escape>\012</Escape><Normal> </Normal><Escape>\u1234</Escape><Normal> </Normal><Escape>\U12abcdef</Escape><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
+<Comment>###### exec prefix</Comment><br/>
+<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@</Prefix><Normal>/some/cmd arg "@-:+!|"</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>-</Prefix><Normal>/some/cmd-1 -option arg</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>:</Prefix><Normal>/some/cmd arg</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>+</Prefix><Normal>/some/cmd arg</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>!</Prefix><Normal>/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>!!</Prefix><Normal>/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@:-!!</Prefix><Normal>/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@!!-:</Prefix><Normal>/some/cmd arg</Normal><br/>
+<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>|</Prefix><Normal>/some/cmd arg</Normal><br/>
+<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@:-!</Prefix><Normal>/some/cmd arg</Normal><br/>
+<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@!-:</Prefix><Normal>/some/cmd arg</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@:-+</Prefix><Normal>/some/cmd arg</Normal><br/>
 <Comment>## invalid values</Comment><br/>
 <Comment># invalid prefix</Comment><br/>
 <Option Name>ExecStart</Option Name><Normal> = @ /some/cmd arg</Normal><br/>
 <Option Name>ExecStart</Option Name><Normal> = @ -/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>+</Prefix><Normal>!/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>!!</Prefix><Normal>!/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@</Prefix><Normal>+@/some/cmd arg</Normal><br/>
-<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>@!!</Prefix><Normal>+/some/cmd arg</Normal><br/>
+<Option Name>ExecStart</Option Name><Normal> = </Normal><Prefix>+</Prefix><Normal>! /some/cmd arg</Normal><br/>
 <Normal></Normal><br/>
 <Normal></Normal><br/>
 <Comment>###### exit status</Comment><br/>
@@ -1712,7 +1954,6 @@
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>ocfs2</Constant><br/>
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>overlay</Constant><br/>
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>proc</Constant><br/>
-<Option Name>Type</Option Name><Normal> = </Normal><Constant>reiserfs</Constant><br/>
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>tmpfs</Constant><br/>
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>tracefs</Constant><br/>
 <Option Name>Type</Option Name><Normal> = </Normal><Constant>udf</Constant><br/>
@@ -2129,6 +2370,7 @@
 <Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>ignore-dependencies</Constant><br/>
 <Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>ignore-requirements</Constant><br/>
 <Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>isolate</Constant><br/>
+<Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>lenient</Constant><br/>
 <Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>replace</Constant><br/>
 <Option Name>OnFailureJobMode</Option Name><Normal> = </Normal><Constant>replace-irreversibly</Constant><br/>
 <Comment>## invalid values</Comment><br/>
@@ -2247,6 +2489,7 @@
 <Normal></Normal><br/>
 <Comment>###### private users</Comment><br/>
 <Section Header>[Service]</Section Header><br/>
+<Option Name>PrivateUsers</Option Name><Normal> = </Normal><Constant>full</Constant><br/>
 <Option Name>PrivateUsers</Option Name><Normal> = </Normal><Constant>identity</Constant><br/>
 <Option Name>PrivateUsers</Option Name><Normal> = </Normal><Constant>self</Constant><br/>
 <Comment>## should accept any boolean value</Comment><br/>
@@ -2306,6 +2549,18 @@
 <Option Name>ProtectHome</Option Name><Normal> = </Normal><Constant>tmpfs</Constant><Normal> true</Normal><br/>
 <Normal></Normal><br/>
 <Normal></Normal><br/>
+<Comment>###### protect hostname</Comment><br/>
+<Section Header>[Service]</Section Header><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = </Normal><Constant>private</Constant><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = </Normal><Constant>private</Constant><Normal>:host.example.com</Normal><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = </Normal><Constant>true</Constant><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = </Normal><Constant>yes</Constant><Normal>:somehostname</Normal><br/>
+<Comment>## invalid values</Comment><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = i</Normal><Constant>n</Constant><Normal>valid</Normal><br/>
+<Comment># multiple values</Comment><br/>
+<Option Name>ProtectHostname</Option Name><Normal> = </Normal><Constant>private</Constant><Normal> true</Normal><br/>
+<Normal></Normal><br/>
+<Normal></Normal><br/>
 <Comment>###### protect system</Comment><br/>
 <Section Header>[Service]</Section Header><br/>
 <Option Name>ProtectSystem</Option Name><Normal> = </Normal><Constant>full</Constant><br/>
diff -pruN 6.18.0-1/autotests/reference/test.opsiscript.ref 6.19.0-0ubuntu1/autotests/reference/test.opsiscript.ref
--- 6.18.0-1/autotests/reference/test.opsiscript.ref	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/test.opsiscript.ref	2025-10-05 12:41:31.000000000 +0000
@@ -2,7 +2,7 @@
 <Comment>;</Comment><br/>
 <Comment>;    SPDX-FileCopyrightText: 2024 Stefan Staeglich <sstaeglich@kdemail.net></Comment><br/>
 <Comment>;</Comment><br/>
-<Comment>;    SPDX-License-Identifier: LGPL</Comment><br/>
+<Comment>;    SPDX-License-Identifier: LGPL-2.1-or-later</Comment><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text></Normal Text><br/>
diff -pruN 6.18.0-1/autotests/reference/test.rq.ref 6.19.0-0ubuntu1/autotests/reference/test.rq.ref
--- 6.18.0-1/autotests/reference/test.rq.ref	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/test.rq.ref	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,118 @@
+<Comment># SPARQL Query for Syntax Highlighting Test</Comment><br/>
+<Comment># This query includes a wide range of features to test a highlighter's capabilities.</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == 1. Prologue: Base URI and Prefixes</Comment><br/>
+<Keyword>BASE</Keyword><Normal Text>          </Normal Text><IRI><http://example.org/book-data/></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> ex:    </Normal Text><IRI><http://example.org/vocab#></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> foaf:  </Normal Text><IRI><http://xmlns.com/foaf/0.1/></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> rdf:   </Normal Text><IRI><http://www.w3.org/1999/02/22-rdf-syntax-ns#></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> rdfs:  </Normal Text><IRI><http://www.w3.org/2000/01/rdf-schema#></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> xsd:   </Normal Text><IRI><http://www.w3.org/2001/XMLSchema#></IRI><br/>
+<Keyword>PREFIX</Keyword><Normal Text> dc:    </Normal Text><IRI><http://purl.org/dc/elements/1.1/></IRI><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == 2. Query Form: SELECT with Expressions and Aggregates</Comment><br/>
+<Keyword>SELECT</Keyword><Normal Text> </Normal Text><Keyword>DISTINCT</Keyword><br/>
+<Normal Text>    ?authorName</Normal Text><br/>
+<Normal Text>    </Normal Text><Operator>(</Operator><Function>UCASE</Function><Operator>(</Operator><Normal Text>?title</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Keyword>AS</Keyword><Normal Text> ?upperCaseTitle</Normal Text><Operator>)</Operator><br/>
+<Normal Text>    ?publicationDate</Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># Aggregate functions</Comment><br/>
+<Normal Text>    </Normal Text><Operator>(</Operator><Function>COUNT</Function><Operator>(</Operator><Normal Text>?character</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Keyword>AS</Keyword><Normal Text> ?characterCount</Normal Text><Operator>)</Operator><br/>
+<Normal Text>    </Normal Text><Operator>(</Operator><Function>GROUP_CONCAT</Function><Operator>(</Operator><Keyword>DISTINCT</Keyword><Normal Text> ?genre</Normal Text><Operator>;</Operator><Normal Text> SEPARATOR</Normal Text><Operator>=</Operator><String>", "</String><Operator>)</Operator><Normal Text> </Normal Text><Keyword>AS</Keyword><Normal Text> ?genres</Normal Text><Operator>)</Operator><br/>
+<Normal Text>    </Normal Text><Operator>(</Operator><Function>AVG</Function><Operator>(</Operator><Normal Text>?rating</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Keyword>AS</Keyword><Normal Text> ?averageRating</Normal Text><Operator>)</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == 3. Dataset Clause: Defining the Query Target</Comment><br/>
+<Keyword>FROM</Keyword><Normal Text> </Normal Text><IRI><http://example.org/library-main-graph></IRI><br/>
+<Keyword>FROM</Keyword><Normal Text> </Normal Text><Keyword>NAMED</Keyword><Normal Text> </Normal Text><IRI><http://example.org/library-metadata-graph></IRI><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == 4. Query Pattern: The Core Logic</Comment><br/>
+<Keyword>WHERE</Keyword><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>    </Normal Text><Comment># Inline data with VALUES</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>VALUES</Keyword><Normal Text> ?authorType </Normal Text><Operator>{</Operator><Normal Text> foaf:Person ex:FictionalEntity </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># Basic Graph Pattern with various term types</Comment><br/>
+<Normal Text>    ?author a foaf:person </Normal Text><Operator>;</Operator><br/>
+<Normal Text>            rdf:type ?authorType </Normal Text><Operator>;</Operator><br/>
+<Normal Text>            foaf:name ?authorName </Normal Text><Operator>;</Operator><br/>
+<Normal Text>            foaf:birthday ?birthDate </Normal Text><Operator>.</Operator><Normal Text> </Normal Text><Comment># Semicolon for predicate-object lists</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    ?author foaf:smoker true </Normal Text><Operator>.</Operator><br/>
+<Normal Text>    ?author foaf:child false </Normal Text><Operator>.</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># Property path: one or more 'knows' relationships</Comment><br/>
+<Normal Text>    ?author foaf:knows</Normal Text><Operator>+</Operator><Normal Text> ?colleague </Normal Text><Operator>.</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># Nested blank node syntax</Comment><br/>
+<Normal Text>    ?book dc:creator </Normal Text><Operator>[</Operator><Normal Text> foaf:name ?authorName </Normal Text><Operator>]</Operator><Normal Text> </Normal Text><Operator>;</Operator><br/>
+<Normal Text>          dc:title ?title </Normal Text><Operator>;</Operator><br/>
+<Normal Text>          ex:rating ?rating </Normal Text><Operator>.</Operator><Normal Text> </Normal Text><Comment># Period to end the triple block.</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># OPTIONAL block for data that may not exist</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>OPTIONAL</Keyword><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?book ex:hasCharacter ?character </Normal Text><Operator>.</Operator><br/>
+<Normal Text>        ?character foaf:name ?characterName </Normal Text><Operator>.</Operator><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># UNION to combine results from alternative patterns</Comment><br/>
+<Normal Text>    </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?book ex:genre </Normal Text><String>"Science Fiction"</String><Normal Text>@en </Normal Text><Operator>.</Operator><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text>    </Normal Text><Keyword>UNION</Keyword><br/>
+<Normal Text>    </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?book ex:genre </Normal Text><String>"Fantasy"</String><Operator>^^</Operator><Normal Text>xsd:string </Normal Text><Operator>.</Operator><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># BIND to compute and assign a new variable</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>BIND</Keyword><Operator>(</Operator><Function>YEAR</Function><Operator>(</Operator><Normal Text>?birthDate</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Keyword>AS</Keyword><Normal Text> ?birthYear</Normal Text><Operator>)</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># Subquery to pre-filter books</Comment><br/>
+<Normal Text>    </Normal Text><Operator>{</Operator><br/>
+<Normal Text>      </Normal Text><Keyword>SELECT</Keyword><Normal Text> ?book ?publicationDate </Normal Text><Keyword>WHERE</Keyword><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?book dc:date ?publicationDate </Normal Text><Operator>.</Operator><br/>
+<Normal Text>        </Normal Text><Keyword>FILTER</Keyword><Operator>(</Operator><Normal Text>?publicationDate </Normal Text><Operator>></Operator><Normal Text> </Normal Text><String>"2000-01-01T00:00:00"</String><Operator>^^</Operator><Normal Text>xsd:dateTime </Normal Text><Operator>&&</Operator><Normal Text> ?publicationDate </Normal Text><Operator><</Operator><Normal Text> </Normal Text><String>"2010-01-01T00:00:00"</String><Operator>^^</Operator><Normal Text>xsd:dateTime</Normal Text><Operator>)</Operator><br/>
+<Normal Text>      </Normal Text><Operator>}</Operator><br/>
+<Normal Text>      </Normal Text><Keyword>LIMIT</Keyword><Normal Text> </Normal Text><Decimal>100</Decimal><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># GRAPH clause to query a specific named graph</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>GRAPH</Keyword><Normal Text> </Normal Text><IRI><http://example.org/library-metadata-graph></IRI><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?book ex:reviewedBy _:reviewer </Normal Text><Operator>.</Operator><Normal Text> </Normal Text><Comment># Blank node label</Comment><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># SERVICE clause for federated queries</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>SERVICE</Keyword><Normal Text> </Normal Text><IRI><http://dbpedia.org/sparql></IRI><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?colleague rdfs:label ?colleagueLabel </Normal Text><Operator>.</Operator><br/>
+<Normal Text>        </Normal Text><Keyword>FILTER</Keyword><Operator>(</Operator><Function>LANG</Function><Operator>(</Operator><Normal Text>?colleagueLabel</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"en"</String><Operator>)</Operator><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Comment># FILTER clause with a variety of functions and operators</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>FILTER</Keyword><Normal Text> </Normal Text><Operator>(</Operator><br/>
+<Normal Text>        </Normal Text><Comment># Logical, comparison, and arithmetic</Comment><br/>
+<Normal Text>        </Normal Text><Operator>(</Operator><Normal Text>?rating </Normal Text><Operator>></Operator><Normal Text> </Normal Text><Float>3.5</Float><Normal Text> </Normal Text><Operator>&&</Operator><Normal Text> ?birthYear </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Decimal>1980</Decimal><Operator>)</Operator><Normal Text> </Normal Text><Operator>||</Operator><br/>
+<Normal Text>        </Normal Text><Comment># Regular expression</Comment><br/>
+<Normal Text>        </Normal Text><Function>REGEX</Function><Operator>(</Operator><Normal Text>?authorName</Normal Text><Operator>,</Operator><Normal Text> </Normal Text><String>"^J</String><String Char>\\</String Char><String>.</String><String Char>\\</String Char><String>s?K</String><String Char>\\</String Char><String>."</String><Operator>,</Operator><Normal Text> </Normal Text><String>"i"</String><Operator>)</Operator><Normal Text> </Normal Text><Operator>&&</Operator><br/>
+<Normal Text>        </Normal Text><Comment># Check for existence of a value</Comment><br/>
+<Normal Text>        </Normal Text><Function>BOUND</Function><Operator>(</Operator><Normal Text>?characterName</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Operator>&&</Operator><br/>
+<Normal Text>        </Normal Text><Comment># String and numeric functions</Comment><br/>
+<Normal Text>        </Normal Text><Operator>(</Operator><Function>STRLEN</Function><Operator>(</Operator><Normal Text>?title</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Operator>-</Operator><Normal Text> </Normal Text><Decimal>5</Decimal><Normal Text> </Normal Text><Operator>></Operator><Normal Text> </Normal Text><Decimal>10</Decimal><Operator>)</Operator><Normal Text> </Normal Text><Operator>&&</Operator><br/>
+<Normal Text>        </Normal Text><Comment># IN operator</Comment><br/>
+<Normal Text>        ?genre </Normal Text><Keyword>IN</Keyword><Normal Text> </Normal Text><Operator>(</Operator><String>"Fantasy"</String><Operator>,</Operator><Normal Text> </Normal Text><String>"Sci-Fi"</String><Operator>)</Operator><Normal Text> </Normal Text><Operator>&&</Operator><br/>
+<Normal Text>        </Normal Text><Comment># Datatype and language checks</Comment><br/>
+<Normal Text>        </Normal Text><Function>LANGMATCHES</Function><Operator>(</Operator><Function>LANG</Function><Operator>(</Operator><Normal Text>?title</Normal Text><Operator>),</Operator><Normal Text> </Normal Text><String>"en-US"</String><Operator>)</Operator><Normal Text> </Normal Text><Operator>&&</Operator><br/>
+<Normal Text>        </Normal Text><Function>DATATYPE</Function><Operator>(</Operator><Normal Text>?rating</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> xsd:decimal</Normal Text><br/>
+<Normal Text>    </Normal Text><Operator>)</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>FILTER</Keyword><Normal Text> </Normal Text><Keyword>NOT</Keyword><Normal Text> </Normal Text><Keyword>EXISTS</Keyword><Normal Text> </Normal Text><Operator>{</Operator><br/>
+<Normal Text>        ?colleague schema:memberOf ?organization </Normal Text><Operator>.</Operator><br/>
+<Normal Text>    </Normal Text><Operator>}</Operator><br/>
+<Operator>}</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == 5. Solution Modifiers: Ordering, Grouping, and Slicing</Comment><br/>
+<Keyword>GROUP</Keyword><Normal Text> </Normal Text><Keyword>BY</Keyword><Normal Text> ?authorName ?title ?publicationDate</Normal Text><br/>
+<Keyword>HAVING</Keyword><Normal Text> </Normal Text><Operator>(</Operator><Function>COUNT</Function><Operator>(</Operator><Normal Text>?character</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Operator>>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Operator>)</Operator><Normal Text> </Normal Text><Comment># Filter on aggregate results</Comment><br/>
+<Keyword>ORDER</Keyword><Normal Text> </Normal Text><Keyword>BY</Keyword><Normal Text> </Normal Text><Keyword>DESC</Keyword><Operator>(</Operator><Normal Text>?averageRating</Normal Text><Operator>)</Operator><Normal Text> </Normal Text><Keyword>ASC</Keyword><Operator>(</Operator><Normal Text>?authorName</Normal Text><Operator>)</Operator><br/>
+<Keyword>LIMIT</Keyword><Normal Text> </Normal Text><Decimal>10</Decimal><br/>
+<Keyword>OFFSET</Keyword><Normal Text> </Normal Text><Decimal>20</Decimal><br/>
+<Normal Text></Normal Text><br/>
+<Comment># == Other SPARQL Keywords (for syntax highlighting completeness)</Comment><br/>
+<Comment># CONSTRUCT, DESCRIBE, ASK (alternative query forms)</Comment><br/>
+<Comment># INSERT DATA, DELETE DATA, LOAD, CLEAR, CREATE, DROP (update operations)</Comment><br/>
diff -pruN 6.18.0-1/autotests/reference/test.smk.ref 6.19.0-0ubuntu1/autotests/reference/test.smk.ref
--- 6.18.0-1/autotests/reference/test.smk.ref	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/test.smk.ref	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,279 @@
+<Comment># =============================================================================</Comment><br/>
+<Comment># Snakefile — comprehensive feature test for Snakemake highlighting</Comment><br/>
+<Comment># Minimal comments; lines marked `# ERROR:` are intentionally invalid.</Comment><br/>
+<Comment># =============================================================================</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Top-level Python ----------</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>if</Block Opener><Normal Text> </Normal Text><Constant>True</Constant><Normal Text>: </Normal Text><Error>forbidden</Error><Normal Text> </Normal Text><Comment># ERROR: no text allowed after block opener</Comment><br/>
+<Normal Text>    </Normal Text><Variable>a</Variable><Normal Text> = </Normal Text><Number>1</Number><br/>
+<Block Opener>else</Block Opener><Normal Text>: </Normal Text><Error>forbidden</Error><Normal Text> </Normal Text><Comment># ERROR: same</Comment><br/>
+<Normal Text>    </Normal Text><Variable>a</Variable><Normal Text> = </Normal Text><Number>0</Number><br/>
+<Normal Text></Normal Text><br/>
+<Variable>config</Variable><Normal Text> = </Normal Text><Operator>{</Operator><br/>
+<Normal Text>    </Normal Text><String>"method"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"B"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><String>"samples"</String><Operator>:</Operator><Normal Text> </Normal Text><Operator>[</Operator><String>"S1"</String><Operator>,</Operator><Normal Text> </Normal Text><String>"S2"</String><Operator>],</Operator><br/>
+<Normal Text>    </Normal Text><String>"ref"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"ref/genome.fa"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><String>"gtf"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"ref/genes.gtf"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><String>"threads_default"</String><Operator>:</Operator><Normal Text> </Normal Text><Number>4</Number><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><String>"work"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"work"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><String>"adapters"</String><Operator>:</Operator><Normal Text> </Normal Text><Operator>{</Operator><String>"fwd"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"AGATCGGAAGAGC"</String><Operator>,</Operator><Normal Text> </Normal Text><String>"rev"</String><Operator>:</Operator><Normal Text> </Normal Text><String>"AGATCGGAAGAGC"</String><Operator>}</Operator><br/>
+<Operator>}</Operator><br/>
+<Variable>SAMPLES</Variable><Normal Text> = </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"samples"</String><Operator>]</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>def</Block Opener><Normal Text> </Normal Text><Python Function>fq</Python Function><Operator>(</Operator><Variable>sample</Variable><Operator>,</Operator><Normal Text> </Normal Text><Variable>mate</Variable><Operator>)</Operator><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><Python Keyword>return</Python Keyword><Normal Text> </Normal Text><String>f"raw/</String><FStringDelimiter>{</FStringDelimiter><Variable>sample</Variable><FStringDelimiter>}</FStringDelimiter><String>_R</String><FStringDelimiter>{</FStringDelimiter><Variable>mate</Variable><FStringDelimiter>}</FStringDelimiter><String>.fastq.gz"</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Global Snakemake directives ----------</Comment><br/>
+<Block Opener>workdir</Block Opener><Normal Text>: </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"work"</String><Operator>]</Operator><br/>
+<Block Opener>localrules</Block Opener><Normal Text>: </Normal Text><Variable>all</Variable><Operator>,</Operator><Normal Text> </Normal Text><Variable>qc_fastqc</Variable><br/>
+<Block Opener>ruleorder</Block Opener><Normal Text>: </Normal Text><Variable>sort_index</Variable><Normal Text> > </Normal Text><Variable>align</Variable><br/>
+<Block Opener>report</Block Opener><Normal Text>: </Normal Text><String>"report/report.html"</String><br/>
+<Block Opener>envvars</Block Opener><Normal Text>: </Normal Text><String>"LD_LIBRARY_PATH"</String><Operator>,</Operator><Normal Text> </Normal Text><String>"OMP_NUM_THREADS"</String><br/>
+<Block Opener>wildcard_constraints</Block Opener><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><Variable>sample</Variable><Normal Text> = </Normal Text><String>r"[A-Za-z0-9_]+"</String><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>include</Block Opener><Normal Text>: </Normal Text><String>"extras.smk"</String><br/>
+<Block Opener>container</Block Opener><Normal Text>: </Normal Text><String>"docker://ubuntu:22.04"</String><br/>
+<Block Opener>conda</Block Opener><Normal Text>: </Normal Text><String>"envs/global.yml"</String><br/>
+<Block Opener>containerized</Block Opener><Normal Text>:</Normal Text><br/>
+<Normal Text></Normal Text><br/>
+<Comment># Legacy/compat directives still recognized in old workflows</Comment><br/>
+<Block Opener>moduleinclude</Block Opener><Normal Text>: </Normal Text><String>"legacy/tools.smk"</String><Normal Text>   </Normal Text><Comment># legacy include for modules</Comment><br/>
+<Comment># deprecated (kept for legacy)</Comment><br/>
+<Block Opener>subworkflow</Block Opener><Normal Text> </Normal Text><Rule Name>oldwf</Rule Name><Normal Text>:  </Normal Text><Error>something </Error><Comment>#ERROR: nothing allowed after colon</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>workdir</SmkDirective><Operator>:</Operator><Normal Text> </Normal Text><String>"oldwf"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>snakefile</SmkDirective><Operator>:</Operator><Normal Text> </Normal Text><String>"workflow/Snakefile"</String><br/>
+<Normal Text>    </Normal Text><Error>input:</Error><Normal Text> </Normal Text><Comment># ERROR: `input` directive not allowed in subworkflows</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Modules and use rule ----------</Comment><br/>
+<Block Opener>module</Block Opener><Normal Text> </Normal Text><Rule Name>asm</Rule Name><Normal Text>: </Normal Text><Error>something </Error><Comment>#ERROR: nothing allowed after colon</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>snakefile</SmkDirective><Operator>:</Operator><Normal Text> </Normal Text><String>"modules/assembly.smk"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>config</SmkDirective><Operator>:</Operator><Normal Text> </Normal Text><String>"modules/assembly.yaml"</String><br/>
+<Normal Text>    </Normal Text><Error>input:</Error><Normal Text> </Normal Text><String>"test"</String><Normal Text> </Normal Text><Comment># ERROR: `input` directive not allowed in modules</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># Reuse a rule from the module; inside `with:` we use regular rule directives</Comment><br/>
+<Block Opener>use rule</Block Opener><Normal Text> </Normal Text><Rule Name>assemble</Rule Name><Normal Text> </Normal Text><RuleHeaderKeyword>as</RuleHeaderKeyword><Normal Text> </Normal Text><Rule Name>assemble_mod</Rule Name><Normal Text> </Normal Text><RuleHeaderKeyword>with</RuleHeaderKeyword><Normal Text>: </Normal Text><Error>something </Error><Comment>#ERROR: nothing allowed after colon</Comment><br/>
+<Normal Text>    </Normal Text><Error>snakefile:</Error><Normal Text> </Normal Text><Comment># ERROR `snakefile` directive not allowed in rules</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>8</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>mode</Variable><Normal Text> = </Normal Text><String>"quick"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>message</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"Assembling </String><SmkPlaceholder>{wildcards.sample}</SmkPlaceholder><String> (module override)"</String><br/>
+<Normal Text>    </Normal Text><Comment># wrong directive (kept to test error handling inside a use-body)</Comment><br/>
+<Normal Text>    </Normal Text><Error>outpt:</Error><Normal Text> </Normal Text><String>"SHOULD-NOT-BE-HERE"</String><Normal Text>   </Normal Text><Comment># ERROR: typo</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- INTENTIONAL TOP-LEVEL ERRORS ----------</Comment><br/>
+<Error>workdirr:</Error><Normal Text> </Normal Text><String>"typo/dir"</String><Normal Text>              </Normal Text><Comment># ERROR: unknown top-level keyword</Comment><br/>
+<Error>snakefile:</Error><Normal Text> </Normal Text><String>"top/level.smk"</String><Normal Text>        </Normal Text><Comment># ERROR: only valid inside module/subworkflow</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Pipeline ----------</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>all</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Python Function>expand</Python Function><Operator>(</Operator><String>"results/</String><SmkWildcard>{sample}</SmkWildcard><String>/summary.txt"</String><Operator>,</Operator><Normal Text> </Normal Text><Variable>sample</Variable><Normal Text>=</Normal Text><Variable>SAMPLES</Variable><Operator>)</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>qc_fastqc</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>r1</Variable><Normal Text> = </Normal Text><Python Keyword>lambda</Python Keyword><Normal Text> </Normal Text><Variable>wc</Variable><Operator>:</Operator><Normal Text> </Normal Text><Python Function>fq</Python Function><Operator>(</Operator><Variable>wc</Variable><Operator>.</Operator><Variable>sample</Variable><Operator>,</Operator><Normal Text> </Normal Text><Number>1</Number><Operator>),</Operator><br/>
+<Normal Text>        </Normal Text><Variable>r2</Variable><Normal Text> = </Normal Text><Python Keyword>lambda</Python Keyword><Normal Text> </Normal Text><Variable>wc</Variable><Operator>:</Operator><Normal Text> </Normal Text><Python Function>fq</Python Function><Operator>(</Operator><Variable>wc</Variable><Operator>.</Operator><Variable>sample</Variable><Operator>,</Operator><Normal Text> </Normal Text><Number>2</Number><Operator>),</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>html</Variable><Normal Text> = </Normal Text><String>"qc/</String><SmkWildcard>{sample}</SmkWildcard><String>_fastqc.html"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>zip</Variable><Normal Text>  = </Normal Text><String>"qc/</String><SmkWildcard>{sample}</SmkWildcard><String>_fastqc.zip"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>2</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>resources</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>mem_mb</Variable><Normal Text> = </Normal Text><Number>1024</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>log</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"log/fastqc_</String><SmkWildcard>{sample}</SmkWildcard><String>.log"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>extra</Variable><Normal Text> = </Normal Text><String>"--nogroup"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"""</String><br/>
+<String>        fastqc -t </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> </String><SmkPlaceholder>{params.extra}</SmkPlaceholder><String> -o qc </String><SmkPlaceholder>{input.r1}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.r2}</SmkPlaceholder><String> > </String><SmkPlaceholder>{log}</SmkPlaceholder><String> 2>&1</String><br/>
+<String>        """</String><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>trim_cutadapt</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>r1</Variable><Normal Text> = </Normal Text><Python Keyword>lambda</Python Keyword><Normal Text> </Normal Text><Variable>wc</Variable><Operator>:</Operator><Normal Text> </Normal Text><Python Function>fq</Python Function><Operator>(</Operator><Variable>wc</Variable><Operator>.</Operator><Variable>sample</Variable><Operator>,</Operator><Normal Text> </Normal Text><Number>1</Number><Operator>),</Operator><br/>
+<Normal Text>        </Normal Text><Variable>r2</Variable><Normal Text> = </Normal Text><Python Keyword>lambda</Python Keyword><Normal Text> </Normal Text><Variable>wc</Variable><Operator>:</Operator><Normal Text> </Normal Text><Python Function>fq</Python Function><Operator>(</Operator><Variable>wc</Variable><Operator>.</Operator><Variable>sample</Variable><Operator>,</Operator><Normal Text> </Normal Text><Number>2</Number><Operator>),</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>r1</Variable><Normal Text> = </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R1.fastq.gz"</String><Operator>,</Operator><Normal Text> </Normal Text><Comment># `sample`: wildcard</Comment><br/>
+<Normal Text>        </Normal Text><Variable>r2</Variable><Normal Text> = </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R2.fastq.gz"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>report</Variable><Normal Text> = </Normal Text><String>f"</String><FStringDelimiter>{</FStringDelimiter><Variable>report_dir</Variable><FStringDelimiter>}</FStringDelimiter><String>/</String><SmkWildcard>{{sample}}</SmkWildcard><String>"</String><Normal Text> </Normal Text><Comment># `report_dir`: f-string interpolation, `sample`: wildcard</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>a</Variable><Normal Text> = </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"adapters"</String><Operator>][</Operator><String>"fwd"</String><Operator>],</Operator><br/>
+<Normal Text>        </Normal Text><Variable>A</Variable><Normal Text> = </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"adapters"</String><Operator>][</Operator><String>"rev"</String><Operator>],</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>8</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>conda</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"envs/cutadapt.yml"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>log</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"log/cutadapt_</String><SmkWildcard>{sample}</SmkWildcard><String>.log"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"""</String><br/>
+<String>        cutadapt -j </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> -a </String><SmkPlaceholder>{params.a}</SmkPlaceholder><String> -A </String><SmkPlaceholder>{params.A}</SmkPlaceholder><String> \</String><br/>
+<String>            -o </String><SmkPlaceholder>{output.r1}</SmkPlaceholder><String> -p </String><SmkPlaceholder>{output.r2}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.r1}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.r2}</SmkPlaceholder><String> > </String><SmkPlaceholder>{log}</SmkPlaceholder><String> 2>&1</String><br/>
+<String>        """</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># Example of wrapper usage (version string illustrative)</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>align</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>r1</Variable><Normal Text> = </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R1.fastq.gz"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>r2</Variable><Normal Text> = </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R2.fastq.gz"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>ref</Variable><Normal Text> = </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"ref"</String><Operator>],</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>bam</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.unsorted.bam"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>12</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>resources</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>mem_mb</Variable><Normal Text> = </Normal Text><Number>8000</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Comment># BWA-MEM2 example options</Comment><br/>
+<Normal Text>        </Normal Text><Variable>extra</Variable><Normal Text> = </Normal Text><String>"-M"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>log</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"log/align_</String><SmkWildcard>{sample}</SmkWildcard><String>.log"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>wrapper</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"0.90.0/bio/bwa/mem2"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"bwa-mem2 mem -t </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> </String><SmkPlaceholder>{params.extra}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.ref}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.r1}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.r2}</SmkPlaceholder><String> | samtools view -bS - > </String><SmkPlaceholder>{output.bam}</SmkPlaceholder><String> 2> </String><SmkPlaceholder>{log}</SmkPlaceholder><String>"</String><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>sort_index</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.unsorted.bam"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>bam</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>bai</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam.bai"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>6</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>resources</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>mem_mb</Variable><Normal Text> = </Normal Text><Number>4000</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>envmodules</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"samtools/1.16"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>shadow</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"minimal"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"""</String><br/>
+<String>        samtools sort -@ </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> -o </String><SmkPlaceholder>{output.bam}</SmkPlaceholder><String> </String><SmkPlaceholder>{input}</SmkPlaceholder><br/>
+<String>        samtools index -@ </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> </String><SmkPlaceholder>{output.bam}</SmkPlaceholder><br/>
+<String>        """</String><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>quantify</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>bam</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>bai</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam.bai"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>gtf</Variable><Normal Text> = </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"gtf"</String><Operator>],</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>counts</Variable><Normal Text> = </Normal Text><String>"counts/</String><SmkWildcard>{sample}</SmkWildcard><String>.txt"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>4</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>group</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"counting"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>priority</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Number>50</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>feature_type</Variable><Normal Text> = </Normal Text><String>"exon"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>id_attr</Variable><Normal Text> = </Normal Text><String>"gene_id"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"""</String><br/>
+<String>        featureCounts -T </String><SmkPlaceholder>{threads}</SmkPlaceholder><String> -a </String><SmkPlaceholder>{input.gtf}</SmkPlaceholder><String> -t </String><SmkPlaceholder>{params.feature_type}</SmkPlaceholder><String> -g </String><SmkPlaceholder>{params.id_attr}</SmkPlaceholder><String> \</String><br/>
+<String>            -o </String><SmkPlaceholder>{output.counts}</SmkPlaceholder><String> </String><SmkPlaceholder>{input.bam}</SmkPlaceholder><br/>
+<String>        """</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># Example of script & notebook directives</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>plot_qc</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"qc/</String><SmkWildcard>{sample}</SmkWildcard><String>_fastqc.zip"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"plots/</String><SmkWildcard>{sample}</SmkWildcard><String>_qc.png"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>script</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"scripts/plot_qc.py"</String><Normal Text>    </Normal Text><Comment># not executed; present to test directive</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>explore_notebook</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"counts/</String><SmkWildcard>{sample}</SmkWildcard><String>.txt"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"notebooks/</String><SmkWildcard>{sample}</SmkWildcard><String>_eda.ipynb"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>notebook</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"notebooks/template.ipynb"</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># Example of per-rule container / cache / benchmark / message / name / version (legacy)</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>summarize</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>bam</Variable><Normal Text> = </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Variable>counts</Variable><Normal Text> = </Normal Text><String>"counts/</String><SmkWildcard>{sample}</SmkWildcard><String>.txt"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>txt</Variable><Normal Text> = </Normal Text><String>"results/</String><SmkWildcard>{sample}</SmkWildcard><String>/summary.txt"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>params</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>tag</Variable><Normal Text> = </Normal Text><String>"</String><SmkWildcard>{sample}</SmkWildcard><String>"</String><Normal Text>        </Normal Text><Comment># wildcard should highlight distinctly</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>message</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"Summarizing </String><SmkPlaceholder>{wildcards.sample}</SmkPlaceholder><String>"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>name</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"summarize_</String><SmkWildcard>{sample}</SmkWildcard><String>"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>benchmark</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"benchmark/summarize_</String><SmkWildcard>{sample}</SmkWildcard><String>.tsv"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>cache</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"permissive"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>container</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"docker://python:3.11"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>version</SmkDirective><Normal Text>: </Normal Text><String>"1.0"</String><Normal Text>            </Normal Text><Comment># legacy directive</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>2</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>resources</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Variable>mem_mb</Variable><Normal Text> = </Normal Text><Number>512</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>log</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"log/summarize_</String><SmkWildcard>{sample}</SmkWildcard><String>.log"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>run:</SmkDirective><br/>
+<Normal Text>        </Normal Text><Comment># simple Python run block</Comment><br/>
+<Normal Text>        </Normal Text><Python Keyword>import</Python Keyword><Normal Text> </Normal Text><Variable>json</Variable><br/>
+<Normal Text>        </Normal Text><Variable>meta</Variable><Normal Text> = </Normal Text><Operator>{</Operator><br/>
+<Normal Text>            </Normal Text><String>"sample"</String><Operator>:</Operator><Normal Text> </Normal Text><Variable>wildcards</Variable><Operator>.</Operator><Variable>sample</Variable><Operator>,</Operator><br/>
+<Normal Text>            </Normal Text><String>"bam"</String><Operator>:</Operator><Normal Text> </Normal Text><Variable>input</Variable><Operator>.</Operator><Variable>bam</Variable><Operator>,</Operator><br/>
+<Normal Text>            </Normal Text><String>"counts"</String><Operator>:</Operator><Normal Text> </Normal Text><Variable>input</Variable><Operator>.</Operator><Variable>counts</Variable><Operator>,</Operator><br/>
+<Normal Text>            </Normal Text><String>"tag"</String><Operator>:</Operator><Normal Text> </Normal Text><Variable>params</Variable><Operator>.</Operator><Variable>tag</Variable><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><Operator>}</Operator><br/>
+<Normal Text>        </Normal Text><Comment># write a tiny summary</Comment><br/>
+<Normal Text>        </Normal Text><Python Keyword>import</Python Keyword><Normal Text> </Normal Text><Variable>os</Variable><br/>
+<Normal Text>        </Normal Text><Variable>os</Variable><Operator>.</Operator><Python Function>makedirs</Python Function><Operator>(</Operator><Variable>os</Variable><Operator>.</Operator><Variable>path</Variable><Operator>.</Operator><Python Function>dirname</Python Function><Operator>(</Operator><Variable>output</Variable><Operator>.</Operator><Variable>txt</Variable><Operator>),</Operator><Normal Text> </Normal Text><Variable>exist_ok</Variable><Normal Text>=</Normal Text><Constant>True</Constant><Operator>)</Operator><br/>
+<Normal Text>        </Normal Text><Python Keyword>with</Python Keyword><Normal Text> </Normal Text><Python Function>open</Python Function><Operator>(</Operator><Variable>output</Variable><Operator>.</Operator><Variable>txt</Variable><Operator>,</Operator><Normal Text> </Normal Text><String>"w"</String><Operator>)</Operator><Normal Text> </Normal Text><Python Keyword>as</Python Keyword><Normal Text> </Normal Text><Variable>fh</Variable><Operator>:</Operator><br/>
+<Normal Text>            </Normal Text><Variable>fh</Variable><Operator>.</Operator><Python Function>write</Python Function><Operator>(</Operator><Variable>json</Variable><Operator>.</Operator><Python Function>dumps</Python Function><Operator>(</Operator><Variable>meta</Variable><Operator>,</Operator><Normal Text> </Normal Text><Variable>indent</Variable><Normal Text>=</Normal Text><Number>2</Number><Operator>)</Operator><Normal Text> + </Normal Text><String>"</String><EscapeCharacter>\n</EscapeCharacter><String>"</String><Operator>)</Operator><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- More intentional errors inside a rule body ----------</Comment><br/>
+<Normal Text></Normal Text><br/>
+<Block Opener>if</Block Opener><Normal Text> </Normal Text><Variable>config</Variable><Operator>[</Operator><String>"method"</String><Operator>]</Operator><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"A"</String><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><br/>
+<Normal Text>    </Normal Text><Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>bad_header_examples_A</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>            </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam"</String><br/>
+<Normal Text>        </Normal Text><Error>outpt:</Error><Normal Text>      </Normal Text><Comment># ERROR: unknown directive</Comment><br/>
+<Normal Text>            </Normal Text><String>"nowhere.txt"</String><br/>
+<Normal Text>        </Normal Text><Error>foo:</Error><Normal Text>        </Normal Text><Comment># ERROR: unknown directive</Comment><br/>
+<Normal Text>            </Normal Text><String>"bar"</String><br/>
+<Normal Text>        </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>            </Normal Text><String>"true"</String><br/>
+<Block Opener>else</Block Opener><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>bad_header_examples_B</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>            </Normal Text><String>"map/</String><SmkWildcard>{sample}</SmkWildcard><String>.bam"</String><br/>
+<Normal Text>        </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:      </Normal Text><Comment># ERROR: unknown directive</Comment><br/>
+<Normal Text>            </Normal Text><String>"nowhere.txt"</String><br/>
+<Normal Text>        </Normal Text><Error>foo:</Error><Normal Text>        </Normal Text><Comment># ERROR: unknown directive</Comment><br/>
+<Normal Text>            </Normal Text><String>"bar"</String><br/>
+<Normal Text>        </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>            </Normal Text><String>"true"</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Using the module rule  ----------</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>assemble_via_module</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R1.fastq.gz"</String><Operator>,</Operator><br/>
+<Normal Text>        </Normal Text><String>"trim/</String><SmkWildcard>{sample}</SmkWildcard><String>_R2.fastq.gz"</String><Operator>,</Operator><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"assembly/</String><SmkWildcard>{sample}</SmkWildcard><String>/contigs.fa"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>threads</SmkDirective><Normal Text>: </Normal Text><Number>8</Number><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"echo assembly > </String><SmkPlaceholder>{output}</SmkPlaceholder><String>"</String><br/>
+<Normal Text></Normal Text><br/>
+<Comment># ---------- Default target redirection ----------</Comment><br/>
+<Block Opener>rule</Block Opener><Normal Text> </Normal Text><Rule Name>final_default</Rule Name><Normal Text>:</Normal Text><br/>
+<Normal Text>    </Normal Text><SmkDirective>output</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"FINAL.marker"</String><br/>
+<Normal Text>    </Normal Text><SmkDirective>default_target</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><Constant>True</Constant><br/>
+<Normal Text>    </Normal Text><SmkDirective>shell</SmkDirective><Normal Text>:</Normal Text><br/>
+<Normal Text>        </Normal Text><String>"touch </String><SmkPlaceholder>{output}</SmkPlaceholder><String>"</String><br/>
+<Normal Text>        </Normal Text><br/>
+<Block Opener>rule</Block Opener><Normal Text>: </Normal Text><Error>no text</Error><Normal Text> </Normal Text><Error>allowed</Error><Normal Text> </Normal Text><Error>here</Error><Normal Text>  </Normal Text><Comment># ERROR: no text allowed after block opener</Comment><br/>
+<Normal Text>    </Normal Text><SmkDirective>input</SmkDirective><Normal Text>: </Normal Text><String>"back_to_normal.txt"</String><br/>
diff -pruN 6.18.0-1/autotests/reference/test.xkb.ref 6.19.0-0ubuntu1/autotests/reference/test.xkb.ref
--- 6.18.0-1/autotests/reference/test.xkb.ref	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/test.xkb.ref	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,133 @@
+<XKB Section>xkb_keymap</XKB Section><String> </String><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><XKB Section>xkb_keycodes</XKB Section><String>  </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "evdev</String><Merge Mode Symbol>+</Merge Mode Symbol><String>aliases(qwerty)"</String><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><XKB Section>xkb_types</XKB Section><String>     </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "complete"</String><Normal Text>  </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><XKB Section>xkb_compat</XKB Section><String>    </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "complete"</String><Normal Text>  </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><XKB Section>xkb_symbols</XKB Section><String>   </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "pc</String><Merge Mode Symbol>+</Merge Mode Symbol><String>us(dvorak)</String><Merge Mode Symbol>+</Merge Mode Symbol><String>inet(evdev)</String><Merge Mode Symbol>+</Merge Mode Symbol><String>terminate(ctrl_alt_bksp)"</String><Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><XKB Section>xkb_geometry</XKB Section><String>  </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "pc(pc105)"</String><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Keyword>default</Keyword><Normal Text> </Normal Text><Keyword>partial</Keyword><Normal Text> </Normal Text><Key Group>alphanumeric_keys</Key Group><Normal Text> </Normal Text><Key Group>modifier_keys</Key Group><br/>
+<XKB Section>xkb_symbols</XKB Section><String> "basic"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><Include Keyword>include</Include Keyword><String> "us(basic)"</String><br/>
+<Normal Text>    </Normal Text><Include Keyword>include</Include Keyword><String> "/usr/share/X11/xkb/symbols/it"</String><br/>
+<Normal Text>    </Normal Text><Include Keyword>include</Include Keyword><String> "B(S1)</String><Merge Mode Symbol>|</Merge Mode Symbol><String>B(S2)"</String><br/>
+<Normal Text>    </Normal Text><Include Keyword>include</Include Keyword><String> "</String><%-expansion>%S</%-expansion><String>/de(basic)"</String><br/>
+<Normal Text>    </Normal Text><Merge Mode Keyword>override</Merge Mode Keyword><String> "B(S1)</String><Merge Mode Symbol>|</Merge Mode Symbol><String>B(S2)"</String><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><XKB Statetement>name</XKB Statetement><Container Symbol>[</Container Symbol><State>Group1</State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"Banana (US)"</String><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text> </Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AE01></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> exclam</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text>          </Normal Text><Decimal>1</Decimal><Square Brace>]</Square Brace><Normal Text>     </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AE12></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> plus</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text>            equal</Normal Text><Square Brace>]</Square Brace><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><A></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text>Greek_alpha</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> Greek_ALPHA</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> ae</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> AE</Normal Text><Square Brace>]</Square Brace><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AD05></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text>t</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> T</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> tslash</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> Tslash</Normal Text><Square Brace>]</Square Brace><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><Normal Text>       </Normal Text><Comment>// Type: FOUR_LEVEL_ALPHABETIC</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AD01></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[]</Square Brace><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Square Brace>[]</Square Brace><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> q</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> Q </Normal Text><Square Brace>]</Square Brace><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AD05></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> b</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> B</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Unicode Value Prefix>U</Unicode Value Prefix><Unicode Value>1F966</Unicode Value><Normal Text> </Normal Text><Square Brace>]</Square Brace><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> <> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text>NoSymbol</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> a</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> b</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text>a</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> b</Normal Text><Curly Brace>}</Curly Brace><Square Brace>]</Square Brace><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><LALT></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><XKB Statetement>virtualModifier</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Alt</Modifier><Normal Text>   </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><Normal Text> </Normal Text><Comment>// Alt is bound to <LALT></Comment><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><LALT></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>symbols</Keyword><Container Symbol>[</Container Symbol><State>Group1</State><Container Symbol>]</Container Symbol><Assign Symbol>=</Assign Symbol><Square Brace>[</Square Brace><Modifier>Alt_L</Modifier><Square Brace>]</Square Brace><Separator Symbol>,</Separator Symbol><br/>
+<Normal Text>        </Normal Text><Keyword>actions</Keyword><Container Symbol>[</Container Symbol><State>Group1</State><Container Symbol>]</Container Symbol><Assign Symbol>=</Assign Symbol><Square Brace>[</Square Brace><Function>SetMods</Function><Parenthesis>(</Parenthesis><XKB Statetement>modifiers</XKB Statetement><Assign Symbol>=</Assign Symbol><Modifier>modMapMods</Modifier><Parenthesis>)</Parenthesis><Square Brace>]</Square Brace><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>        </Normal Text><XKB Statetement>repeat</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Boolean>False</Boolean><Separator Symbol>,</Separator Symbol><br/>
+<Normal Text>        </Normal Text><Square Brace>[</Square Brace><Normal Text> </Normal Text><Modifier>Alt_L</Modifier><Normal Text> </Normal Text><Square Brace>]</Square Brace><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AD01></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>type</Keyword><Container Symbol>[</Container Symbol><State>Group1</State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"TWO_LEVEL"</String><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Comment>// Type</Comment><br/>
+<Normal Text>        </Normal Text><Square Brace>[</Square Brace><Normal Text>q</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text> Q</Normal Text><Square Brace>]</Square Brace><Normal Text>                      </Normal Text><Comment>// Symbols</Comment><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>key</Keyword><Normal Text> </Normal Text><Types><LCTL></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>symbols</Keyword><Container Symbol>[</Container Symbol><Decimal>1</Decimal><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> </Normal Text><Modifier>Control_L</Modifier><Normal Text>                                          </Normal Text><Square Brace>]</Square Brace><Separator Symbol>,</Separator Symbol><br/>
+<Normal Text>        </Normal Text><Keyword>actions</Keyword><Container Symbol>[</Container Symbol><Decimal>1</Decimal><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Square Brace>[</Square Brace><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Function>SetMods</Function><Parenthesis>(</Parenthesis><XKB Statetement>modifiers</XKB Statetement><Assign Symbol>=</Assign Symbol><Modifier>Control</Modifier><Parenthesis>)</Parenthesis><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Function>SetGroup</Function><Parenthesis>(</Parenthesis><Keyword>group</Keyword><Assign Symbol>=</Assign Symbol><Operator>+</Operator><Decimal>1</Decimal><Parenthesis>)</Parenthesis><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Normal Text> </Normal Text><Square Brace>]</Square Brace><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Merge Mode Keyword>override</Merge Mode Keyword><String> </String><Keyword>key</Keyword><Normal Text> </Normal Text><Types><AC11></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Square Brace>[</Square Brace><Normal Text> agrave</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text>      adiaeresis</Normal Text><Separator Symbol>,</Separator Symbol><Normal Text>     braceleft       </Normal Text><Square Brace>]</Square Brace><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Merge Mode Keyword>replace</Merge Mode Keyword><String> </String><Keyword>key</Keyword><Normal Text> </Normal Text><Types><PRSC></Types><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Square Brace>[</Square Brace><Normal Text>  </Normal Text><Modifier>Super_R</Modifier><Separator Symbol>,</Separator Symbol><Normal Text>  </Normal Text><Modifier>Super_R</Modifier><Normal Text>  </Normal Text><Square Brace>]</Square Brace><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>modifier_map</Keyword><Normal Text> </Normal Text><Modifier>Mod4</Modifier><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Types><PRSC></Types><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Types><RWIN></Types><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>modifier_map</Keyword><Normal Text> </Normal Text><Modifier>Mod1</Modifier><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Types><LALT></Types><Separator Symbol>,</Separator Symbol><Types><RALT></Types><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text> </Normal Text><br/>
+<Comment>// Mandatory to extend the</Comment><br/>
+<Not Symbol>!</Not Symbol><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> </String><Normal Text>%S/evdev</Normal Text><br/>
+<Normal Text> </Normal Text><br/>
+<Not Symbol>!</Not Symbol><Normal Text> option     </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Keyword>symbols</Keyword><br/>
+<Normal Text>  custom:foo </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Operator>+</Operator><Normal Text>custom</Normal Text><Parenthesis>(</Parenthesis><Normal Text>bar</Normal Text><Parenthesis>)</Parenthesis><br/>
+<Normal Text>  custom:baz </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Operator>+</Operator><Normal Text>other</Normal Text><Parenthesis>(</Parenthesis><Normal Text>baz</Normal Text><Parenthesis>)</Parenthesis><br/>
+<Normal Text></Normal Text><br/>
+<Comment>// Explicit default section with no name required</Comment><br/>
+<Keyword>partial</Keyword><Normal Text> </Normal Text><Key Group>alphanumeric_keys</Key Group><br/>
+<XKB Section>xkb_symbols</XKB Section><String> </String><Curly Brace>{</Curly Brace><Normal Text> </Normal Text><Include Keyword>include</Include Keyword><String> "us(basic)"</String><Normal Text> </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<XKB Section>xkb_keycodes</XKB Section><String> "jp106"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><Include Keyword>include</Include Keyword><String> "sgi_vndr/indigo(pc101)"</String><br/>
+<Normal Text>    </Normal Text><Types><VOL-></Types><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Decimal>122</Decimal><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Types><HZTG></Types><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Decimal>22</Decimal><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>alias</Keyword><Normal Text> </Normal Text><Types><AE13></Types><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Types><BKSL></Types><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Merge Mode Keyword>augment</Merge Mode Keyword><String> "sgi_vndr/indy(pc101)"</String><br/>
+<Normal Text>    </Normal Text><Merge Mode Keyword>alternate</Merge Mode Keyword><String> </String><Types><BKSL></Types><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Decimal>100</Decimal><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>minimum</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Decimal>8</Decimal><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>maximum</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Decimal>255</Decimal><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<XKB Section>xkb_types</XKB Section><String> </String><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><Comment>// ...</Comment><br/>
+<Normal Text>    </Normal Text><Keyword>type</Keyword><Normal Text> </Normal Text><String>"TWO_LEVEL_PLUS_CONTROL"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><XKB Statetement>modifiers</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Shift</Modifier><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Modifier>Control</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>map</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>None</Modifier State><Container Symbol>]</Container Symbol><Normal Text>          </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Level1</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>map</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Shift</Modifier State><Container Symbol>]</Container Symbol><Normal Text>         </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Level2</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>map</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Control</Modifier State><Container Symbol>]</Container Symbol><Normal Text>       </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Level3</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>map</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Control</Modifier State><Modifier State Separator>+</Modifier State Separator><Modifier State>Shift</Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Level4</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><Comment>// Using preserve will make Control not consumed and allow</Comment><br/>
+<Normal Text>        </Normal Text><Comment>// applications to detect keyboard shortcuts with alternative</Comment><br/>
+<Normal Text>        </Normal Text><Comment>// keysyms in levels 3 and 4 rather than the levels 1 and 2.</Comment><br/>
+<Normal Text>        </Normal Text><XKB Statetement>preserve</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Control</Modifier State><Container Symbol>]</Container Symbol><Normal Text>       </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Control</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>preserve</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Control</Modifier State><Modifier State Separator>+</Modifier State Separator><Modifier State>Shift</Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Control</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>preserve</XKB Statetement><Container Symbol>[</Container Symbol><Modifier State>Shift</Modifier State><Modifier State Separator>+</Modifier State Separator><Modifier State>Lock</Modifier State><Modifier State Separator>+</Modifier State Separator><Modifier State>LevelThree</Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Lock</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>level_name</XKB Statetement><Container Symbol>[</Container Symbol><Associated Modifier State>Level1</Associated Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"Base"</String><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>level_name</XKB Statetement><Container Symbol>[</Container Symbol><Associated Modifier State>Level2</Associated Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"Shift"</String><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>level_name</XKB Statetement><Container Symbol>[</Container Symbol><Associated Modifier State>Level3</Associated Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"Tweaked Control"</String><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>level_name</XKB Statetement><Container Symbol>[</Container Symbol><Associated Modifier State>Level4</Associated Modifier State><Container Symbol>]</Container Symbol><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><String>"Tweaked Control + Shift"</String><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Keyword>default</Keyword><Normal Text> </Normal Text><Keyword>partial</Keyword><Normal Text> </Normal Text><XKB Section>xkb_compatibility</XKB Section><String> "basic"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text> AccessX_Enable </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>action</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Function>LockControls</Function><Parenthesis>(</Parenthesis><Keyword>controls</Keyword><Assign Symbol>=</Assign Symbol><Normal Text>AccessXKeys</Normal Text><Parenthesis>)</Parenthesis><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Keyword>default</Keyword><Normal Text> </Normal Text><XKB Section>xkb_compatibility</XKB Section><String> "basic"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>    </Normal Text><Keyword>virtual_modifiers</Keyword><Normal Text>  </Normal Text><Modifier>NumLock</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text>.</Normal Text><XKB Statetement>repeat</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Boolean>False</Boolean><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Function>setMods</Function><Normal Text>.clearLocks </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Boolean>True</Boolean><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Function>latchMods</Function><Normal Text>.clearLocks </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Boolean>True</Boolean><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text> Shift_Lock</Normal Text><Operator>+</Operator><Function>AnyOf</Function><Parenthesis>(</Parenthesis><Modifier>Shift</Modifier><Operator>+</Operator><Modifier>Lock</Modifier><Parenthesis>)</Parenthesis><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>action</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Function>LockMods</Function><Parenthesis>(</Parenthesis><XKB Statetement>modifiers</XKB Statetement><Assign Symbol>=</Assign Symbol><Modifier>Shift</Modifier><Parenthesis>)</Parenthesis><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text> </Normal Text><Modifier>Num_Lock</Modifier><Operator>+</Operator><Function>Any</Function><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><XKB Statetement>virtualModifier</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>NumLock</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><Keyword>action</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Function>LockMods</Function><Parenthesis>(</Parenthesis><XKB Statetement>modifiers</XKB Statetement><Assign Symbol>=</Assign Symbol><Modifier>NumLock</Modifier><Parenthesis>)</Parenthesis><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text> Mode_switch </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>action</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Function>SetGroup</Function><Parenthesis>(</Parenthesis><Keyword>group</Keyword><Assign Symbol>=</Assign Symbol><Operator>+</Operator><Decimal>1</Decimal><Parenthesis>)</Parenthesis><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>interpret</Keyword><Normal Text> </Normal Text><Function>Any</Function><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Function>Any</Function><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Keyword>action</Keyword><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Function>SetMods</Function><Parenthesis>(</Parenthesis><XKB Statetement>modifiers</XKB Statetement><Assign Symbol>=</Assign Symbol><Modifier>modMapMods</Modifier><Parenthesis>)</Parenthesis><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>group</Keyword><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Mod5</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Keyword>indicator</Keyword><Normal Text> </Normal Text><String>"Shift Lock"</String><Normal Text> </Normal Text><Curly Brace>{</Curly Brace><br/>
+<Normal Text>        </Normal Text><Not Symbol>!</Not Symbol><Keyword>allowExplicit</Keyword><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>whichModState</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> Locked</Normal Text><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>        </Normal Text><XKB Statetement>modifiers</XKB Statetement><Normal Text> </Normal Text><Assign Symbol>=</Assign Symbol><Normal Text> </Normal Text><Modifier>Shift</Modifier><Separator Symbol>;</Separator Symbol><br/>
+<Normal Text>    </Normal Text><Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
+<Curly Brace>}</Curly Brace><Separator Symbol>;</Separator Symbol><br/>
diff -pruN 6.18.0-1/autotests/reference/test.zig.ref 6.19.0-0ubuntu1/autotests/reference/test.zig.ref
--- 6.18.0-1/autotests/reference/test.zig.ref	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/autotests/reference/test.zig.ref	2025-10-05 12:41:31.000000000 +0000
@@ -2,9 +2,9 @@
 <Normal Text></Normal Text><br/>
 <Comment>/// This is a doc comment</Comment><br/>
 <Comment>// This is a comment</Comment><br/>
-<Keyword>fn</Keyword><Normal Text> getData() </Normal Text><Symbol>!</Symbol><Type>u32</Type><Normal Text> {</Normal Text><br/>
+<Keyword>fn</Keyword><Normal Text> getData() </Normal Text><Symbol>!</Symbol><Type>u32</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Decimal>666</Decimal><Normal Text>;</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Comment>// multiline string</Comment><br/>
 <Modifiers>const</Modifiers><Normal Text> hello_world_in_c </Normal Text><Symbol>=</Symbol><br/>
@@ -19,66 +19,66 @@
 <Comment>// Top-level declarations are order-independent:</Comment><br/>
 <Modifiers>const</Modifiers><Normal Text> print </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@import</Builtin Functions><Normal Text>(</Normal Text><String>"std"</String><Normal Text>)</Normal Text><Symbol>.</Symbol><Normal Text>debug</Normal Text><Symbol>.</Symbol><Normal Text>print;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> main() </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> {</Normal Text><br/>
-<Normal Text>    </Normal Text><Keyword>inline</Keyword><Normal Text> </Normal Text><Control Flow>for</Control Flow><Normal Text> (values) </Normal Text><Symbol>|</Symbol><Normal Text>v</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
+<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> main() </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>inline</Keyword><Normal Text> </Normal Text><Control Flow>for</Control Flow><Normal Text> (values) </Normal Text><Symbol>|</Symbol><Normal Text>v</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Control Flow>if</Control Flow><Normal Text> (i </Normal Text><Symbol>!=</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) </Normal Text><Control Flow>continue</Control Flow><Normal Text>;</Normal Text><br/>
 <Normal Text>        </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(v);</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text>    </Normal Text><Comment>// error union</Comment><br/>
 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> number_or_error</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>anyerror</Type><Symbol>!</Symbol><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Symbol>.</Symbol><Normal Text>ArgNotFound;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>error union 2</String><String Char>\n</String Char><String>type: {}</String><String Char>\n</String Char><String>value: {!}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><br/>
+<Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>error union 2</String><String Char>\n</String Char><String>type: {}</String><String Char>\n</String Char><String>value: {!}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><br/>
 <Normal Text>        </Normal Text><Builtin Functions>@TypeOf</Builtin Functions><Normal Text>(number_or_error)</Normal Text><Symbol>,</Symbol><Normal Text> number_or_error</Normal Text><Symbol>,</Symbol><br/>
-<Normal Text>    });</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><Normal Text>);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> stdout </Normal Text><Symbol>=</Symbol><Normal Text> std</Normal Text><Symbol>.</Symbol><Normal Text>io</Normal Text><Symbol>.</Symbol><Normal Text>getStdOut()</Normal Text><Symbol>.</Symbol><Normal Text>writer();</Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> stdout</Normal Text><Symbol>.</Symbol><Normal Text>print(</Normal Text><String>"Hello, {s}!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><String>"world"</String><Normal Text>});</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> stdout</Normal Text><Symbol>.</Symbol><Normal Text>print(</Normal Text><String>"Hello, {s}!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><String>"world"</String><Symbol>}</Symbol><Normal Text>);</Normal Text><br/>
 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> bytes </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"hello"</String><Normal Text>;</Normal Text><br/>
-<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Builtin Functions>@TypeOf</Builtin Functions><Normal Text>(bytes)}); </Normal Text><Comment>// *const [5:0]u8</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{bytes[</Normal Text><Decimal>5</Decimal><Normal Text>]}); </Normal Text><Comment>// 0</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'e'</Character><Normal Text> </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Character>'</Character><String Char>\x65</String Char><Character>'</Character><Normal Text>}); </Normal Text><Comment>// true</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'</Character><String Char>\u{1f4a9}</String Char><Character>'</Character><Normal Text>});                     </Normal Text><Comment>// 128169</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'💯'</Character><Normal Text>});                            </Normal Text><Comment>// 128175</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{mem</Normal Text><Symbol>.</Symbol><Normal Text>eql(</Normal Text><Type>u8</Type><Symbol>,</Symbol><Normal Text> </Normal Text><String>"hello"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"h</String><String Char>\x65</String Char><String>llo"</String><Normal Text>)}); </Normal Text><Comment>// true</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"0x{x}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><String>"</String><String Char>\xff</String Char><String>"</String><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>]}); </Normal Text><Comment>// non-UTF-8 strings are possible with \xNN notation.</Comment><br/>
-<Normal Text>    print(</Normal Text><String>"{u}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'⚡'</Character><Normal Text>});</Normal Text><br/>
+<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Builtin Functions>@TypeOf</Builtin Functions><Normal Text>(bytes)</Normal Text><Symbol>}</Symbol><Normal Text>); </Normal Text><Comment>// *const [5:0]u8</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Normal Text>bytes[</Normal Text><Decimal>5</Decimal><Normal Text>]</Normal Text><Symbol>}</Symbol><Normal Text>); </Normal Text><Comment>// 0</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Character>'e'</Character><Normal Text> </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Character>'</Character><String Char>\x65</String Char><Character>'</Character><Symbol>}</Symbol><Normal Text>); </Normal Text><Comment>// true</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Character>'</Character><String Char>\u{1f4a9}</String Char><Character>'</Character><Symbol>}</Symbol><Normal Text>);                     </Normal Text><Comment>// 128169</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Character>'💯'</Character><Symbol>}</Symbol><Normal Text>);                            </Normal Text><Comment>// 128175</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Normal Text>mem</Normal Text><Symbol>.</Symbol><Normal Text>eql(</Normal Text><Type>u8</Type><Symbol>,</Symbol><Normal Text> </Normal Text><String>"hello"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"h</String><String Char>\x65</String Char><String>llo"</String><Normal Text>)</Normal Text><Symbol>}</Symbol><Normal Text>); </Normal Text><Comment>// true</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"0x{x}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><String>"</String><String Char>\xff</String Char><String>"</String><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>]</Normal Text><Symbol>}</Symbol><Normal Text>); </Normal Text><Comment>// non-UTF-8 strings are possible with \xNN notation.</Comment><br/>
+<Normal Text>    print(</Normal Text><String>"{u}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{</Symbol><Character>'⚡'</Character><Symbol>}</Symbol><Normal Text>);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text>    _ </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@import</Builtin Functions><Normal Text>(</Normal Text><String>"introducing_zig_test.zig"</String><Normal Text>);</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Comment>// Declare an enum.</Comment><br/>
-<Modifiers>const</Modifiers><Normal Text> Type </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> {</Normal Text><br/>
+<Modifiers>const</Modifiers><Normal Text> Type </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    ok</Normal Text><Symbol>,</Symbol><br/>
 <Normal Text>    not_ok</Normal Text><Symbol>,</Symbol><br/>
-<Normal Text>};</Normal Text><br/>
+<Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>test</Keyword><Normal Text> </Normal Text><String>"async skip test"</String><Normal Text> {</Normal Text><br/>
+<Keyword>test</Keyword><Normal Text> </Normal Text><String>"async skip test"</String><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> frame </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Modifiers>async</Modifiers><Normal Text> func();</Normal Text><br/>
 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> result </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Modifiers>await</Modifiers><Normal Text> frame;</Normal Text><br/>
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> std</Normal Text><Symbol>.</Symbol><Normal Text>testing</Normal Text><Symbol>.</Symbol><Normal Text>expect(result </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>);</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>fn</Keyword><Normal Text> func() </Normal Text><Type>i32</Type><Normal Text> {</Normal Text><br/>
-<Normal Text>    </Normal Text><Keyword>suspend</Keyword><Normal Text> {</Normal Text><br/>
+<Keyword>fn</Keyword><Normal Text> func() </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>    </Normal Text><Keyword>suspend</Keyword><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Keyword>resume</Keyword><Normal Text> @frame();</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Keyword>pub</Keyword><Normal Text> </Normal Text><Modifiers>extern</Modifiers><Normal Text> </Normal Text><String>"c"</String><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> @</Normal Text><String>"error"</String><Normal Text>() </Normal Text><Type>void</Type><Normal Text>;</Normal Text><br/>
 <Keyword>pub</Keyword><Normal Text> </Normal Text><Modifiers>extern</Modifiers><Normal Text> </Normal Text><String>"c"</String><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> @</Normal Text><String>"fstat$INODE64"</String><Normal Text>(fd</Normal Text><Symbol>:</Symbol><Normal Text> c</Normal Text><Symbol>.</Symbol><Normal Text>fd_t</Normal Text><Symbol>,</Symbol><Normal Text> buf</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text>c</Normal Text><Symbol>.</Symbol><Normal Text>Stat) </Normal Text><Type>c_int</Type><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Modifiers>const</Modifiers><Normal Text> Color </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> {</Normal Text><br/>
+<Modifiers>const</Modifiers><Normal Text> Color </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>  red</Normal Text><Symbol>,</Symbol><br/>
 <Normal Text>  @</Normal Text><String>"really red"</String><Symbol>,</Symbol><br/>
-<Normal Text>};</Normal Text><br/>
+<Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> color</Normal Text><Symbol>:</Symbol><Normal Text> Color </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>@</Normal Text><String>"really red"</String><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Modifiers>var</Modifiers><Normal Text> y</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> add(</Normal Text><Decimal>10</Decimal><Symbol>,</Symbol><Normal Text> x);</Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> add(</Normal Text><Decimal>12</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>34</Decimal><Normal Text>);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>test</Keyword><Normal Text> </Normal Text><String>"comptime vars"</String><Normal Text> {</Normal Text><br/>
+<Keyword>test</Keyword><Normal Text> </Normal Text><String>"comptime vars"</String><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
 <Normal Text>    </Normal Text><Modifiers>comptime</Modifiers><Normal Text> </Normal Text><Modifiers>var</Modifiers><Normal Text> y</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
@@ -88,12 +88,12 @@
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(x </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>);</Normal Text><br/>
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(y </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (y </Normal Text><Symbol>!=</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) {</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (y </Normal Text><Symbol>!=</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Comment>// This compile error never triggers because y is a comptime variable,</Comment><br/>
 <Normal Text>        </Normal Text><Comment>// and so `y != 2` is a comptime value, and this if is statically evaluated.</Comment><br/>
 <Normal Text>        </Normal Text><Builtin Functions>@compileError</Builtin Functions><Normal Text>(</Normal Text><String>"wrong y value"</String><Normal Text>);</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> decimal_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>98222</Decimal><Normal Text>;</Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> hex_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex>0xff</Hex><Normal Text>;</Normal Text><br/>
@@ -120,72 +120,72 @@
 <Modifiers>const</Modifiers><Normal Text> nanosecond </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>0.000_000_001</Float><Normal Text>;</Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> more_hex </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex Float>0x1234_5678.9ABC_CDEFp-10</Hex Float><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Modifiers>const</Modifiers><Normal Text> A </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{One};</Normal Text><br/>
-<Modifiers>const</Modifiers><Normal Text> B </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{Two};</Normal Text><br/>
-<Normal Text>(A </Normal Text><Symbol>||</Symbol><Normal Text> B) </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{One</Normal Text><Symbol>,</Symbol><Normal Text> Two}</Normal Text><br/>
+<Modifiers>const</Modifiers><Normal Text> A </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Symbol>{</Symbol><Normal Text>One</Normal Text><Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
+<Modifiers>const</Modifiers><Normal Text> B </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Symbol>{</Symbol><Normal Text>Two</Normal Text><Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
+<Normal Text>(A </Normal Text><Symbol>||</Symbol><Normal Text> B) </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Symbol>{</Symbol><Normal Text>One</Normal Text><Symbol>,</Symbol><Normal Text> Two</Normal Text><Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1234</Decimal><Normal Text>;</Normal Text><br/>
 <Modifiers>const</Modifiers><Normal Text> ptr </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text>x;</Normal Text><br/>
 <Normal Text>ptr</Normal Text><Symbol>.*</Symbol><Normal Text> </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>1234</Decimal><br/>
 <Normal Text></Normal Text><br/>
 <Comment>// get the size of an array</Comment><br/>
-<Modifiers>comptime</Modifiers><Normal Text> {</Normal Text><br/>
+<Modifiers>comptime</Modifiers><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    assert(message</Normal Text><Symbol>.</Symbol><Normal Text>len </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Normal Text>);</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>test</Keyword><Normal Text> </Normal Text><String>"iterate over an array"</String><Normal Text> {</Normal Text><br/>
+<Keyword>test</Keyword><Normal Text> </Normal Text><String>"iterate over an array"</String><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> sum</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><Normal Text>;</Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (message) </Normal Text><Symbol>|</Symbol><Normal Text>byte</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (message) </Normal Text><Symbol>|</Symbol><Normal Text>byte</Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        sum </Normal Text><Symbol>+=</Symbol><Normal Text> byte;</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(sum </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Character>'h'</Character><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'e'</Character><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'l'</Character><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'o'</Character><Normal Text>);</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
 <Comment>// use compile-time code to initialize an array</Comment><br/>
-<Modifiers>var</Modifiers><Normal Text> fancy_array </Normal Text><Symbol>=</Symbol><Normal Text> init</Normal Text><Symbol>:</Symbol><Normal Text> {</Normal Text><br/>
+<Modifiers>var</Modifiers><Normal Text> fancy_array </Normal Text><Symbol>=</Symbol><Normal Text> init</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> initial_value</Normal Text><Symbol>:</Symbol><Normal Text> [</Normal Text><Decimal>10</Decimal><Normal Text>]Point </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Constant>undefined</Constant><Normal Text>;</Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (initial_value) </Normal Text><Symbol>|*</Symbol><Normal Text>pt</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
-<Normal Text>        pt</Normal Text><Symbol>.*</Symbol><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> Point{</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (initial_value) </Normal Text><Symbol>|*</Symbol><Normal Text>pt</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>        pt</Normal Text><Symbol>.*</Symbol><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> Point</Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>            </Normal Text><Symbol>.</Symbol><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@intCast</Builtin Functions><Normal Text>(</Normal Text><Type>i32</Type><Symbol>,</Symbol><Normal Text> i)</Normal Text><Symbol>,</Symbol><br/>
 <Normal Text>            </Normal Text><Symbol>.</Symbol><Normal Text>y </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@intCast</Builtin Functions><Normal Text>(</Normal Text><Type>i32</Type><Symbol>,</Symbol><Normal Text> i) </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>,</Symbol><br/>
-<Normal Text>        };</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
+<Normal Text>        </Normal Text><Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>break</Control Flow><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text>init initial_value;</Normal Text><br/>
-<Normal Text>};</Normal Text><br/>
+<Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>test</Keyword><Normal Text> </Normal Text><String>"switch on non-exhaustive enum"</String><Normal Text> {</Normal Text><br/>
+<Keyword>test</Keyword><Normal Text> </Normal Text><String>"switch on non-exhaustive enum"</String><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(result);</Normal Text><br/>
-<Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> is_one </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Control Flow>switch</Control Flow><Normal Text> (number) {</Normal Text><br/>
+<Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> is_one </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Control Flow>switch</Control Flow><Normal Text> (number) </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Symbol>.</Symbol><Normal Text>one </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Constant>true</Constant><Symbol>,</Symbol><br/>
 <Normal Text>        </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Constant>false</Constant><Symbol>,</Symbol><br/>
-<Normal Text>    };</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><Normal Text>;</Normal Text><br/>
 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(is_one);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> array_ptr </Normal Text><Symbol>=</Symbol><Normal Text> array[</Normal Text><Decimal>0</Decimal><Symbol>..</Symbol><Normal Text>array</Normal Text><Symbol>.</Symbol><Normal Text>len];</Normal Text><br/>
 <Normal Text></Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>!=</Symbol><Normal Text> b) {</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>!=</Symbol><Normal Text> b) </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(</Normal Text><Constant>true</Constant><Normal Text>);</Normal Text><br/>
-<Normal Text>    } </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>9</Decimal><Normal Text>) {</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><Normal Text> </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>9</Decimal><Normal Text>) </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Keyword>unreachable</Keyword><Normal Text>;</Normal Text><br/>
-<Normal Text>    } </Normal Text><Control Flow>else</Control Flow><Normal Text> {</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><Normal Text> </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>        </Normal Text><Keyword>unreachable</Keyword><Normal Text>;</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>fn</Keyword><Normal Text> deferErrorExample(is_error</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>bool</Type><Normal Text>) </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> {</Normal Text><br/>
-<Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>start of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
+<Keyword>fn</Keyword><Normal Text> deferErrorExample(is_error</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>bool</Type><Normal Text>) </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>start of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{}</Symbol><Normal Text>);</Normal Text><br/>
 <Normal Text></Normal Text><br/>
 <Normal Text>    </Normal Text><Comment>// This will always be executed on exit</Comment><br/>
-<Normal Text>    </Normal Text><Control Flow>defer</Control Flow><Normal Text> {</Normal Text><br/>
-<Normal Text>        print(</Normal Text><String>"end of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
-<Normal Text></Normal Text><br/>
-<Normal Text>    </Normal Text><Control Flow>errdefer</Control Flow><Normal Text> {</Normal Text><br/>
-<Normal Text>        print(</Normal Text><String>"encountered an error!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
-<Normal Text>    }</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>defer</Control Flow><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>        print(</Normal Text><String>"end of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{}</Symbol><Normal Text>);</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
+<Normal Text></Normal Text><br/>
+<Normal Text>    </Normal Text><Control Flow>errdefer</Control Flow><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
+<Normal Text>        print(</Normal Text><String>"encountered an error!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.{}</Symbol><Normal Text>);</Normal Text><br/>
+<Normal Text>    </Normal Text><Symbol>}</Symbol><br/>
+<Symbol>}</Symbol><br/>
 <Normal Text></Normal Text><br/>
-<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> syscall3(number</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text>) </Normal Text><Type>usize</Type><Normal Text> {</Normal Text><br/>
+<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> syscall3(number</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text>) </Normal Text><Type>usize</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Keyword>asm</Keyword><Normal Text> </Normal Text><Modifiers>volatile</Modifiers><Normal Text> (</Normal Text><String>"syscall"</String><br/>
 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> [ret] </Normal Text><String>"={rax}"</String><Normal Text> (</Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text>)</Normal Text><br/>
 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> [number] </Normal Text><String>"{rax}"</String><Normal Text> (number)</Normal Text><Symbol>,</Symbol><br/>
@@ -194,4 +194,4 @@
 <Normal Text>          [arg3] </Normal Text><String>"{rdx}"</String><Normal Text> (arg3)</Normal Text><br/>
 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><String>"rcx"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"r11"</String><br/>
 <Normal Text>    );</Normal Text><br/>
-<Normal Text>}</Normal Text><br/>
+<Symbol>}</Symbol><br/>
diff -pruN 6.18.0-1/data/syntax/debianchangelog.xml 6.19.0-0ubuntu1/data/syntax/debianchangelog.xml
--- 6.18.0-1/data/syntax/debianchangelog.xml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/debianchangelog.xml	2025-10-05 12:41:31.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="Debian Changelog" version="21" kateversion="2.4" section="Other" extensions="changelog" mimetype="">
+<language name="Debian Changelog" version="22" kateversion="2.4" section="Other" extensions="changelog" mimetype="">
     <highlighting>
         <list name="keywords">
             <item>urgency</item>
@@ -243,6 +243,26 @@
             <item>lunar-proposed</item>
             <item>lunar-updates</item>
             <item>lunar-backports</item>
+            <item>mantic</item>
+            <item>mantic-security</item>
+            <item>mantic-proposed</item>
+            <item>mantic-updates</item>
+            <item>mantic-backports</item>
+            <item>noble</item>
+            <item>noble-security</item>
+            <item>noble-proposed</item>
+            <item>noble-updates</item>
+            <item>noble-backports</item>
+            <item>oracular</item>
+            <item>oracular-security</item>
+            <item>oracular-proposed</item>
+            <item>oracular-updates</item>
+            <item>oracular-backports</item>
+            <item>plucky</item>
+            <item>plucky-security</item>
+            <item>plucky-proposed</item>
+            <item>plucky-updates</item>
+            <item>plucky-backports</item>
         </list>
 
         <list name="urgencies">
diff -pruN 6.18.0-1/data/syntax/opsiscript.xml 6.19.0-0ubuntu1/data/syntax/opsiscript.xml
--- 6.18.0-1/data/syntax/opsiscript.xml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/opsiscript.xml	2025-10-05 12:41:31.000000000 +0000
@@ -1,954 +1,948 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
     SPDX-FileCopyrightText: 2024 Stefan Staeglich <sstaeglich@kdemail.net>
 
-    SPDX-License-Identifier: LGPL
+    SPDX-License-Identifier: LGPL-2.1-or-later
 -->
-
-<language name="opsi-script" version="1" kateversion="5.0" section="Sources" extensions="*.opsiinc;*.opsiscript" author="Stefan Staeglich (sstaeglich@kdemail.net)" license="LGPL">
-
-	<highlighting>
-		<list name="control structures">
-			<item>else</item>
-			<item>elseif</item>
-			<item>for</item>
-			<item>do</item>
-		</list>
-		<list name="operators">
-			<item>and</item>
-			<item>not</item>
-			<item>or</item>
-			<item>in</item>
-		</list>
+<language name="opsi-script" version="2" kateversion="5.0" section="Scripts" extensions="*.opsiinc;*.opsiscript" author="Stefan Staeglich (sstaeglich@kdemail.net)" license="LGPL">
+    <highlighting>
+        <list name="control structures">
+            <item>else</item>
+            <item>elseif</item>
+            <item>for</item>
+            <item>do</item>
+        </list>
+        <list name="operators">
+            <item>and</item>
+            <item>not</item>
+            <item>or</item>
+            <item>in</item>
+        </list>
         <list name="primary section import">
-			<item>importLib</item>
-			<item>Sub</item>
-		</list>
-		<list name="primary section keywords">
-			<item>DefStringList</item>
-			<item>DefVar</item>
-			<item>set</item>
-		</list>
-		<list name="primary section builtin">
-			<!--             opsi-script control -->
-			<item>encoding</item>
-			<item>SetLogLevel</item>
-			<item>ExitOnError</item>
-			<item>ScriptErrorMessages</item>
-			<item>FatalOnSyntaxError</item>
-			<item>FatalOnRuntimeError</item>
-			<item>AutoActivityDisplay</item>
-			<item>CheckTargetPath</item>
-			<item>forceLogInAppendMode</item>
-			<item>Message</item>
-			<item>ShowMessageFile</item>
-			<item>ShowBitMap</item>
-			<item>comment</item>
-			<item>LogError</item>
-			<item>LogWarning</item>
-			<item>includelog</item>
-			<item>SetConfidential</item>
-			<item>asConfidential</item>
-			<item>Pause</item>
-			<item>Stop</item>
-			<item>include_insert</item>
-			<item>include_append</item>
-			<item>NormalizeWinst</item>
-			<item>IconizeWinst</item>
-			<item>MaximizeWinst</item>
-			<item>RestoreWinst</item>
-			<item>SetSkinDirectory</item>
-			<item>runningInWanMode</item>
-			<item>reloadProductList</item>
-			<!--             String functions -->
-			<item>GetOS</item>
-			<item>getLinuxDistroType</item>
-			<item>GetMsVersionInfo</item>
-			<item>GetMsVersionName</item>
-			<item>GetSystemType</item>
-			<item>getOSArchitecture</item>
-			<item>getRegistryValue</item>
-			<item>GetRegistrystringvalue</item>
-			<item>GetRegistryStringValue32</item>
-			<item>GetRegistryStringValue64</item>
-			<item>GetRegistryStringValueSysNative</item>
-			<item>GetValueFromInifile</item>
-			<item>GetProductProperty</item>
-			<item>GetConfidentialProductProperty</item>
-			<item>trim</item>
-			<item>lower</item>
-			<item>upper</item>
-			<item>unquote</item>
-			<item>unquote2</item>
-			<item>stringReplace</item>
-			<item>strLength</item>
-			<item>strPos</item>
-			<item>strPart</item>
-			<item>getValue</item>
-			<item>getValueBySeparator</item>
-			<item>setValueByKey</item>
-			<item>getValueFromFile</item>
-			<item>getValueFromFileBySeparator</item>
-			<item>getLastExitCode</item>
-			<item>DemandLicenseKey</item>
-			<item>FreeLicense</item>
-			<item>GetUserSID</item>
-			<item>GetLoggedInUser</item>
-			<item>GetUsercontext</item>
-			<item>GetScriptMode</item>
-			<item>saveVersionToProfile</item>
-			<item>readVersionFromProfile</item>
-			<item>scriptWasExecutedBefore</item>
-			<item>GetHostsName</item>
-			<item>GetHostsAddr</item>
-			<item>ExtractFilePath</item>
-			<item>calculate</item>
-			<item>DecStrToHexStr</item>
-			<item>HexStrToDecStr</item>
-			<item>base64EncodeStr</item>
-			<item>base64DecodeStr</item>
-			<item>convert2Jsonstr</item>
-			<item>RandomStr</item>
-			<item>RandomStrWithParameters</item>
-			<item>RandomIntStr</item>
-			<item>CompareDotSeparatedStrings</item>
-			<item>CompareDotSeparatedNumbers</item>
-			<item>EnvVar</item>
-			<item>ParamStr</item>
-			<item>getDiffTimeSec</item>
-			<item>SidToName</item>
-			<item>GetMyIpByTarget</item>
-			<item>GetIpByName</item>
-			<item>reencodestr</item>
-			<item>strLoadTextFile</item>
-			<item>strLoadTextFileWithEncoding</item>
-			<item>GetShortWinPathName</item>
-			<item>stringinput</item>
-			<item>which</item>
-			<item>replaceOpsiConstants</item>
-			<item>ReadTOMLFile</item>
-			<item>GetTOMLAsString</item>
-			<item>GetTOMLTableAsString</item>
-			<item>GetValueFromTOML</item>
-			<item>ModifyTOML</item>
-			<item>DeleteTableFromTOML</item>
-			<item>ConvertTOMLtoJSON</item>
-			<!--             String list functions -->
-			<item>splitString</item>
-			<item>splitStringOnWhiteSpace</item>
-			<item>loadTextFile</item>
-			<item>loadUnicodeTextFile</item>
-			<item>loadTextFileWithEncoding</item>
-			<item>composeString</item>
-			<item>takeString</item>
-			<item>setStringInListAtIndex</item>
-			<item>takeFirstStringContaining</item>
-			<item>getOutStreamFromSection</item>
-			<item>shellCall</item>
-			<item>getReturnListFromSection</item>
-			<item>getListContaining</item>
-			<item>getListContainingList</item>
-			<item>count</item>
-			<item>emptylist</item>
-			<item>GetProcessList</item>
-			<item>getProductPropertyList</item>
-			<item>getRegistryKeyList32</item>
-			<item>getRegistryKeyList64</item>
-			<item>getRegistryKeyListSysnative</item>
-			<item>getRegistryKeyList</item>
-			<item>getRegistryVarList32</item>
-			<item>getRegistryVarList64</item>
-			<item>getRegistryVarListSysnative</item>
-			<item>getRegistryVarList</item>
-			<item>getProfilesDirList</item>
-			<item>listFiles</item>
-			<item>GetLocaleInfoMap</item>
-			<item>GetMSVersionMap</item>
-			<item>getLinuxVersionMap</item>
-			<item>getFileInfoMap</item>
-			<item>getProductMap</item>
-			<item>getRegistryVarMap32</item>
-			<item>getRegistryVarMap64</item>
-			<item>getRegistryVarMapSysnative</item>
-			<item>getRegistryVarMap</item>
-			<item>getHWBiosInfoMap</item>
-			<item>editmap</item>
-			<item>createStringList</item>
-			<item>reverse</item>
-			<item>getSectionNames</item>
-			<item>retrieveSection</item>
-			<item>getSubList</item>
-			<item>getSubListByMatch</item>
-			<item>getSubListByContaining</item>
-			<item>getSubListByKey</item>
-			<item>getKeyList</item>
-			<item>addtolist</item>
-			<item>addListToList</item>
-			<item>reencodestrlist</item>
-			<item>removeFromListByContaining</item>
-			<item>removeFromListByMatch</item>
-			<item>LoadTOMLFile</item>
-			<item>GetTOMLAsStringList</item>
-			<item>GetTOMLKeys</item>
-			<item>GetTOMLTableNames</item>
-			<item>GetTOMLTable</item>
-			<!--             Boolean operators and functions -->
-			<item>FileExists</item>
-			<item>FileExists32</item>
-			<item>FileExists64</item>
-			<item>FileExistsSysNative</item>
-			<item>DirectoryExists</item>
-			<item>FileOrFolderExists</item>
-			<item>fileIsSymlink</item>
-			<item>LineExistsIn</item>
-			<item>LineBeginning_ExistsIn</item>
-			<item>LineContaining_ExistsIn</item>
-			<item>HasMinimumSpace</item>
-			<item>opsiLicenseManagementEnabled</item>
-			<item>runningAsAdmin</item>
-			<item>isLoginScript</item>
-			<item>contains</item>
-			<item>isNumber</item>
-			<item>runningOnUefi</item>
-			<item>runningInPE</item>
-			<item>runningInWAnMode</item>
-			<item>isDriveReady</item>
-			<item>runningWithGui</item>
-			<item>saveTextFile</item>
-			<item>saveTextFileWithEncoding</item>
-			<item>saveUnicodeTextFile</item>
-			<item>RegKeyExists</item>
-			<item>RegVarExists</item>
-			<item>isPingReachable</item>
-			<item>isValidFQDN</item>
-			<item>fileHasBom</item>
-			<item>SaveToTOMLFile</item>
-			<item>ConvertTOMLfileToJSONfile</item>
-			<item>Killtask</item>
-			<item>requiredOpsiscriptVersion</item>
-			<item>requiredWinstVersion</item>
-			<item>UpdateEnvironment</item>
-			<!--         Flow control -->
-			<item>isFatalError</item>
-			<item>isSuccess</item>
-			<item>isSuspended</item>
-			<item>noUpdateScript</item>
-			<item>ExitWindows</item>
-			<item>Reboot</item>
-			<item>ImmediateReboot</item>
-			<item>ImmediateLogout</item>
-			<item>ShutdownWanted</item>
-			<item>RebootWanted</item>
-			<item>sleepSeconds</item>
-			<item>ChangeDirectory</item>
-		</list>
-		<list name="files section builtin">
-			<item>copy</item>
-			<item>del</item>
-			<item>delete</item>
-			<item>SourcePath</item>
-			<item>CheckTargetPath</item>
-			<item>chmod</item>
-			<item>hardlink</item>
-			<item>symlink</item>
-			<item>rename</item>
-			<item>move</item>
-			<item>zipfile</item>
-			<item>unzipfile</item>
-		</list>
-		<list name="ldapsearch section builtin">
-			<item>targethost</item>
-			<item>targetport</item>
-			<item>user</item>
-			<item>password</item>
-			<item>dn</item>
-			<item>typesonly</item>
-			<item>filter</item>
-			<item>attributes</item>
-		</list>
-		<list name="linkfolder section builtin">
-			<item>delete_element</item>
-			<item>delete_subfolder</item>
-			<item>set_basefolder</item>
-			<item>set_subfolder</item>
-		</list>
-		<list name="linkfolder section set_link builtin">
-			<item>name</item>
-			<item>target</item>
-			<item>parameters</item>
-			<item>working_dir</item>
-			<item>icon_file</item>
-			<item>icon_index</item>
-			<item>shortcut</item>
-		</list>
-		<list name="patches section builtin">
-			<item>add</item>
-			<item>addnew</item>
-			<item>change</item>
-			<item>del</item>
-			<item>delsec</item>
-			<item>replace</item>
-			<item>set</item>
-		</list>
-		<list name="patchhosts section builtin">
-			<item>setAddr</item>
-			<item>setName</item>
-			<item>setAlias</item>
-			<item>delAlias</item>
-			<item>delHost</item>
-			<item>setComment</item>
-		</list>
-		<list name="patchtextfile section builtin">
-			<item>Set_Mozilla_Pref</item>
-			<item>Set_Netscape_User_Pref</item>
-			<item>AddStringListElement_To_Mozilla_Pref</item>
-			<item>AddStringListElement_To_Netscape_User_Pref</item>
-			<item>FindLine</item>
-			<item>FindLine_StartingWith</item>
-			<item>FindLine_Containing</item>
-			<item>GoToTop</item>
-			<item>AdvanceLine</item>
-			<item>GoToBottom</item>
-			<item>DeleteTheLine</item>
-			<item>AddLine</item>
-			<item>InsertLine</item>
-			<item>AppendLine</item>
-			<item>Append_File</item>
-			<item>Subtract_File</item>
-			<item>SaveToFile</item>
-			<item>Sorted</item>
-			<item>setKeyValueSeparator</item>
-			<item>setValueByKey</item>
-			<item>searchAndReplace</item>
-		</list>
-		<list name="registry section builtin">
-			<item>OpenKey</item>
-			<item>Set</item>
-			<item>Add</item>
-			<item>Supp</item>
-			<item>GetMultiSZFromFile</item>
-			<item>SaveValueToFile</item>
-			<item>DeleteVar</item>
-			<item>DeleteKey</item>
-			<item>ReconstructFrom</item>
-			<item>Flushkey</item>
-			<item>openKey</item>
-			<item>set</item>
-			<item>add</item>
-			<item>supp</item>
-        </list>
-		<list name="shellbatch section keywords">
-			<item>break</item>
-			<item>case</item>
-			<item>continue</item>
-			<item>do</item>
-			<item>done</item>
-			<item>elif</item>
-			<item>else</item>
-			<item>esac</item>
-			<item>fi</item>
-			<item>for</item>
-			<item>function</item>
-			<item>if</item>
-			<item>in</item>
-			<item>return</item>
-			<item>select</item>
-			<item>then</item>
-			<item>until</item>
-			<item>while</item>
-		</list>
-		<list name="shellbatch section builtin">
-			<item>.</item>
-			<item>:</item>
-			<item>source</item>
-			<item>alias</item>
-			<item>bg</item>
-			<item>bind</item>
-			<item>builtin</item>
-			<item>cd</item>
-			<item>caller</item>
-			<item>command</item>
-			<item>compgen</item>
-			<item>complete</item>
-			<item>coproc</item>
-			<item>dirs</item>
-			<item>disown</item>
-			<item>echo</item>
-			<item>enable</item>
-			<item>eval</item>
-			<item>exec</item>
-			<item>exit</item>
-			<item>fc</item>
-			<item>fg</item>
-			<item>hash</item>
-			<item>help</item>
-			<item>history</item>
-			<item>jobs</item>
-			<item>kill</item>
-			<item>logout</item>
-			<item>popd</item>
-			<item>printf</item>
-			<item>pushd</item>
-			<item>pwd</item>
-			<item>set</item>
-			<item>shift</item>
-			<item>shopt</item>
-			<item>suspend</item>
-			<item>test</item>
-			<item>time</item>
-			<item>times</item>
-			<item>trap</item>
-			<item>type</item>
-			<item>ulimit</item>
-			<item>umask</item>
-			<item>unalias</item>
-			<item>wait</item>
-		</list>
-		<list name="shellbatch section builtin_vars">
-			<item>export</item>
-			<item>declare</item>
-			<item>getopts</item>
-			<item>let</item>
-			<item>local</item>
-			<item>read</item>
-			<item>readonly</item>
-			<item>typeset</item>
-			<item>unset</item>
-		</list>
-
-		<list name="shellbatch section unixcommands">
-			<!-- /bin -->
-			<item>arch</item>
-			<item>awk</item>
-			<item>b2sum</item>
-			<item>base32</item>
-			<item>base64</item>
-			<item>bash</item>
-			<item>bunzip2</item>
-			<item>bzcat</item>
-			<item>bzcmp</item>
-			<item>bzdiff</item>
-			<item>bzegrep</item>
-			<item>bzfgrep</item>
-			<item>bzgrep</item>
-			<item>bzip2</item>
-			<item>bzip2recover</item>
-			<item>bzless</item>
-			<item>bzmore</item>
-			<item>cat</item>
-			<item>chattr</item>
-			<item>chcon</item>
-			<item>chgrp</item>
-			<item>chmod</item>
-			<item>chown</item>
-			<item>chvt</item>
-			<item>cksum</item>
-			<item>cp</item>
-			<item>crontab</item>
-			<item>csplit</item>
-			<item>date</item>
-			<item>dd</item>
-			<item>deallocvt</item>
-			<item>df</item>
-			<item>dir</item>
-			<item>dircolors</item>
-			<item>dmesg</item>
-			<item>dnsdomainname</item>
-			<item>domainname</item>
-			<item>du</item>
-			<item>dumpkeys</item>
-			<item>ed</item>
-			<item>egrep</item>
-			<item>expand</item>
-			<item>false</item>
-			<item>fgconsole</item>
-			<item>fgrep</item>
-			<item>fold</item>
-			<item>fuser</item>
-			<item>gawk</item>
-			<item>getkeycodes</item>
-			<item>gocr</item>
-			<item>grep</item>
-			<item>groff</item>
-			<item>groups</item>
-			<item>gunzip</item>
-			<item>gzexe</item>
-			<item>gzip</item>
-			<item>hostid</item>
-			<item>hostname</item>
-			<item>iconv</item>
-			<item>igawk</item>
-			<item>install</item>
-			<item>kbd_mode</item>
-			<item>kbdrate</item>
-			<item>killall</item>
-			<item>last</item>
-			<item>lastb</item>
-			<item>link</item>
-			<item>ln</item>
-			<item>loadkeys</item>
-			<item>loadunimap</item>
-			<item>login</item>
-			<item>ls</item>
-			<item>lsattr</item>
-			<item>lsmod</item>
-			<item>lsmod.old</item>
-			<item>lzcat</item>
-			<item>lzcmp</item>
-			<item>lzdiff</item>
-			<item>lzegrep</item>
-			<item>lzfgrep</item>
-			<item>lzgrep</item>
-			<item>lzless</item>
-			<item>lzma</item>
-			<item>lzmainfo</item>
-			<item>lzmore</item>
-			<item>mapscrn</item>
-			<item>md5sum</item>
-			<item>mesg</item>
-			<item>mkdir</item>
-			<item>mkfifo</item>
-			<item>mknod</item>
-			<item>mktemp</item>
-			<item>more</item>
-			<item>mount</item>
-			<item>mv</item>
-			<item>nano</item>
-			<item>netstat</item>
-			<item>nisdomainname</item>
-			<item>nproc</item>
-			<item>nroff</item>
-			<item>numfmt</item>
-			<item>openvt</item>
-			<item>paste</item>
-			<item>pathchk</item>
-			<item>pgawk</item>
-			<item>pidof</item>
-			<item>ping</item>
-			<item>pinky</item>
-			<item>printenv</item>
-			<item>ps</item>
-			<item>pstree</item>
-			<item>ptx</item>
-			<item>rbash</item>
-			<item>readlink</item>
-			<item>realpath</item>
-			<item>red</item>
-			<item>resizecons</item>
-			<item>rm</item>
-			<item>rmdir</item>
-			<item>run-parts</item>
-			<item>runcon</item>
-			<item>sash</item>
-			<item>sed</item>
-			<item>setfont</item>
-			<item>setkeycodes</item>
-			<item>setleds</item>
-			<item>setmetamode</item>
-			<item>setserial</item>
-			<item>sh</item>
-			<item>sha1sum</item>
-			<item>sha224sum</item>
-			<item>sha256sum</item>
-			<item>sha384sum</item>
-			<item>sha512sum</item>
-			<item>showkey</item>
-			<item>shred</item>
-			<item>shuf</item>
-			<item>sleep</item>
-			<item>ssed</item>
-			<item>stat</item>
-			<item>stdbuf</item>
-			<item>stty</item>
-			<item>su</item>
-			<item>sync</item>
-			<item>tar</item>
-			<item>tempfile</item>
-			<item>timeout</item>
-			<item>touch</item>
-			<item>tput</item>
-			<item>troff</item>
-			<item>true</item>
-			<item>truncate</item>
-			<item>tty</item>
-			<item>umount</item>
-			<item>uname</item>
-			<item>unexpand</item>
-			<item>unicode_start</item>
-			<item>unicode_stop</item>
-			<item>unlink</item>
-			<item>unlzma</item>
-			<item>unxz</item>
-			<item>utmpdump</item>
-			<item>uuidgen</item>
-			<item>vdir</item>
-			<item>vi</item>
-			<item>wall</item>
-			<item>wc</item>
-			<item>xz</item>
-			<item>xzcat</item>
-			<item>ypdomainname</item>
-			<item>zcat</item>
-			<item>zcmp</item>
-			<item>zdiff</item>
-			<item>zegrep</item>
-			<item>zfgrep</item>
-			<item>zforce</item>
-			<item>zgrep</item>
-			<item>zless</item>
-			<item>zmore</item>
-			<item>znew</item>
-			<item>zsh</item>
-
-			<!-- some from /usr/bin -->
-			<item>aclocal</item>
-			<item>aconnect</item>
-			<item>aplay</item>
-			<item>apm</item>
-			<item>apmsleep</item>
-			<item>apropos</item>
-			<item>ar</item>
-			<item>arecord</item>
-			<item>as</item>
-			<item>as86</item>
-			<item>autoconf</item>
-			<item>autoheader</item>
-			<item>automake</item>
-			<item>basename</item>
-			<item>bc</item>
-			<item>bison</item>
-			<item>c++</item>
-			<item>cal</item>
-			<item>cc</item>
-			<item>cdda2wav</item>
-			<item>cdparanoia</item>
-			<item>cdrdao</item>
-			<item>cd-read</item>
-			<item>cdrecord</item>
-			<item>chfn</item>
-			<item>chroot</item>
-			<item>chsh</item>
-			<item>clear</item>
-			<item>cmp</item>
-			<item>co</item>
-			<item>col</item>
-			<item>comm</item>
-			<item>cpio</item>
-			<item>cpp</item>
-			<item>cut</item>
-			<item>dc</item>
-			<item>diff</item>
-			<item>diff3</item>
-			<item>directomatic</item>
-			<item>dirname</item>
-			<item>env</item>
-			<item>expr</item>
-			<item>fbset</item>
-			<item>file</item>
-			<item>find</item>
-			<item>flex</item>
-			<item>flex++</item>
-			<item>fmt</item>
-			<item>free</item>
-			<item>ftp</item>
-			<item>funzip</item>
-			<item>g++</item>
-			<item>gc</item>
-			<item>gcc</item>
-			<item>clang</item>
-			<item>clang++</item>
-			<item>valgrind</item>
-			<item>xdg-open</item>
-			<item>cmake</item>
-			<item>qmake</item>
-			<item>svn</item>
-			<item>git</item>
-			<item>rsync</item>
-			<item>gdb</item>
-			<item>getent</item>
-			<item>getopt</item>
-			<item>gettext</item>
-			<item>gettextize</item>
-			<item>gimp</item>
-			<item>gimp-remote</item>
-			<item>gimptool</item>
-			<item>gmake</item>
-			<item>gs</item>
-			<item>head</item>
-			<item>hexdump</item>
-			<item>id</item>
-			<item>join</item>
-			<item>ld</item>
-			<item>ld86</item>
-			<item>ldd</item>
-			<item>less</item>
-			<item>lex</item>
-			<item>locate</item>
-			<item>lockfile</item>
-			<item>logname</item>
-			<item>lp</item>
-			<item>lpr</item>
-			<item>lynx</item>
-			<item>m4</item>
-			<item>make</item>
-			<item>man</item>
-			<item>msgfmt</item>
-			<item>namei</item>
-			<item>nasm</item>
-			<item>nawk</item>
-			<item>nice</item>
-			<item>nl</item>
-			<item>nm</item>
-			<item>nm86</item>
-			<item>nmap</item>
-			<item>nohup</item>
-			<item>nop</item>
-			<item>od</item>
-			<item>passwd</item>
-			<item>patch</item>
-			<item>pcregrep</item>
-			<item>pcretest</item>
-			<item>perl</item>
-			<item>perror</item>
-			<item>pr</item>
-			<item>procmail</item>
-			<item>prune</item>
-			<item>ps2ascii</item>
-			<item>ps2epsi</item>
-			<item>ps2frag</item>
-			<item>ps2pdf</item>
-			<item>ps2ps</item>
-			<item>psbook</item>
-			<item>psmerge</item>
-			<item>psnup</item>
-			<item>psresize</item>
-			<item>psselect</item>
-			<item>pstops</item>
-			<item>rcs</item>
-			<item>rev</item>
-			<item>scp</item>
-			<item>seq</item>
-			<item>setterm</item>
-			<item>size</item>
-			<item>size86</item>
-			<item>skill</item>
-			<item>slogin</item>
-			<item>snice</item>
-			<item>sort</item>
-			<item>sox</item>
-			<item>split</item>
-			<item>ssh</item>
-			<item>ssh-add</item>
-			<item>ssh-agent</item>
-			<item>ssh-keygen</item>
-			<item>ssh-keyscan</item>
-			<item>strings</item>
-			<item>strip</item>
-			<item>sudo</item>
-			<item>suidperl</item>
-			<item>sum</item>
-			<item>tac</item>
-			<item>tail</item>
-			<item>tee</item>
-			<item>tr</item>
-			<item>tsort</item>
-			<item>uniq</item>
-			<item>unzip</item>
-			<item>updatedb</item>
-			<item>updmap</item>
-			<item>uptime</item>
-			<item>users</item>
-			<item>vmstat</item>
-			<item>w</item>
-			<item>wget</item>
-			<item>whatis</item>
-			<item>whereis</item>
-			<item>which</item>
-			<item>who</item>
-			<item>whoami</item>
-			<item>write</item>
-			<item>xargs</item>
-			<item>yacc</item>
-			<item>yes</item>
-			<item>zip</item>
-			<item>zsoelim</item>
-
-			<!-- others -->
-			<item>dcop</item>
-			<item>kdialog</item>
-			<item>kfile</item>
-			<item>xhost</item>
-			<item>xmodmap</item>
-			<item>xset</item>
-		</list>
-		<list name="xml2 section builtin">
-			<item>strictMode</item>
-			<item>openNode</item>
-			<item>SetAttribute</item>
-			<item>AddAttribute</item>
-			<item>DeleteAttribute</item>
-			<item>addNewNode</item>
-			<item>setNodeText</item>
-			<item>DeleteNode</item>
-			<item>gotoParentNode</item>
-			<item>rootNodeOnCreate</item>
-		</list>
-		<contexts>
-			<context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
-				<AnyChar attribute="Operator" String="+=&lt;&gt;" context="#stay" />
-				<DetectChar attribute="String" context="StringDoubleQuotes" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes" char="'" />
-				<RegExpr attribute="Variable" context="#stay" String="(\$[a-zA-Z0-9_-]+\$|\%[a-zA-Z0-9_-]+\%)" />
-				<RegExpr attribute="Comment" context="#stay" String="[;#][^\n]*" />
-				<RegExpr attribute="Control Structures" String="(?i)^\s*DefFunc\b" context="Func" beginRegion="func" />
-				<RegExpr attribute="Section" context="Actions" String="(?i)^\s*\[(Actions|Sub_[A-Za-z0-9_]+)\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="Files" String="(?i)^\s*\[Files_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="LdapSearch" String="(?i)^\s*\[ldapsearch_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="LinkFolder" String="(?i)^\s*\[LinkFolder_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="Patches" String="(?i)^\s*\[Patches_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="PatchHosts" String="(?i)^\s*\[PatchHosts_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="PatchTextFile" String="(?i)^\s*\[PatchTextFile_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="Registry" String="(?i)^\s*\[Registry_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="ShellBatch" String="(?i)^\s*\[(ShellBatch|ShellInAnIcon|DosBatch|DosInAnIcon)_[A-Za-z0-9_]+\]\s*$$" beginRegion="section" endRegion="section" />
-				<RegExpr attribute="Section" context="XML2" String="(?i)^\s*\[XML2_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section" />
-				<Detect2Chars attribute="Section" context="OtherSection" char="[" char1="]" beginRegion="section" endRegion="section" />
-			</context>
-			<context name="StringDoubleQuotes" attribute="String" lineEndContext="#pop">
-				<RegExpr attribute="Variable" context="#stay" String="\%[a-zA-Z0-9_-]+\%" />
-				<DetectChar attribute="String" context="#pop" char="&quot;" />
-			</context>
-			<context name="StringSingleQuotes" attribute="String" lineEndContext="#pop">
-				<RegExpr attribute="Variable" context="#stay" String="\%[a-zA-Z0-9_-]+\%" />
-				<DetectChar attribute="String" context="#pop" char="'" />
-			</context>
-			<context name="StringDoubleQuotes Secondary" attribute="String" lineEndContext="#pop">
-				<RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9_-]+\$" />
-				<IncludeRules context="StringDoubleQuotes" />
-			</context>
-			<context name="StringSingleQuotes Secondary" attribute="String" lineEndContext="#pop">
-				<RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9_-]+\$" />
-				<IncludeRules context="StringSingleQuotes" />
-			</context>
-			<context name="StringDoubleQuotes Shell" attribute="String" lineEndContext="#stay">
-				<IncludeRules context="StringDoubleQuotes Secondary" />
-			</context>
-			<context name="StringSingleQuotes Shell" attribute="String" lineEndContext="#stay">
-				<IncludeRules context="StringSingleQuotes Secondary" />
-			</context>
-			<context name="Func" attribute="Normal Text" lineEndContext="#stay">
-				<RegExpr attribute="Control Structures" String="(?i)^\s*EndFunc\b" context="#pop" endRegion="func" />
-				<IncludeRules context="Actions" />
-			</context>
-			<context name="If" attribute="Normal Text" lineEndContext="#stay">
-				<StringDetect attribute="Control Structures" String="endif" context="#pop" endRegion="if" />
-				<IncludeRules context="Actions" />
-			</context>
-			<context name="Switch" attribute="Normal Text" lineEndContext="#stay">
-				<RegExpr attribute="Control Structures" context="Case" String="(?i)^\s*(Case|DefaultCase)\b" beginRegion="Case" />
-				<RegExpr attribute="Control Structures" String="(?i)^\s*EndSwitch\b" context="#pop" endRegion="Switch" />
-				<IncludeRules context="Actions" />
-			</context>
-			<context name="Case" attribute="Normal Text" lineEndContext="#stay">
-				<RegExpr attribute="Control Structures" String="(?i)^\s*EndCase\b" context="#pop" endRegion="Case" />
-				<IncludeRules context="Switch" />
-			</context>
-			<context name="OtherSection" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="Actions" attribute="Normal Text" lineEndContext="#stay">
-				<keyword attribute="Control Structures" context="#stay" String="control structures" />
-				<StringDetect attribute="Control Structures" String="if" context="If" beginRegion="if" />
-				<RegExpr attribute="Control Structures" String="(?i)^\s*Switch\b" context="Switch" beginRegion="Switch" />
-                <keyword attribute="Import" context="#stay" String="primary section import" />
-				<keyword attribute="Keyword" context="#stay" String="primary section keywords" />
-				<keyword attribute="Builtin Function" context="#stay" String="primary section builtin" />
-				<keyword attribute="Operator" context="#stay" String="operators" />
-				<IncludeRules context="Normal Text" />
-				<RegExpr attribute="Function" context="#stay" String="(?i)\s*(Sub|Files|LdapSearch|LinkFolder|Patches|PatchHosts|PatchTextFile|Registry|ShellBatch|ShellInAnIcon|DosBatch|DosInAnicon|ExecWith|XML2)_[A-Za-z0-9_]+\b\s*" />
-			</context>
-			<context name="Files" attribute="Normal Text" lineEndContext="#stay">
-				<keyword attribute="Builtin Function" context="#stay" String="files section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="LdapSearch" attribute="Normal Text" lineEndContext="#stay">
-				<keyword attribute="Builtin Function" context="#stay" String="ldapsearch section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="LinkFolder" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'" />
-				<keyword attribute="Builtin Function" context="#stay" String="linkfolder section builtin" />
-				<StringDetect attribute="Control Structures" String="set_link" context="Set_link" beginRegion="set_link" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="Set_link" attribute="Normal Text" lineEndContext="#stay">
-				<keyword attribute="Builtin Function" context="#stay" String="linkfolder section set_link builtin" />
-				<StringDetect attribute="Control Structures" String="end_link" context="#pop" endRegion="set_link" />
-			</context>
-			<context name="PatchHosts" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'" />
-				<keyword attribute="Builtin Function" context="#stay" String="patchhosts section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="Patches" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'" />
-				<keyword attribute="Builtin Function" context="#stay" String="patches section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="PatchTextFile" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'" />
-				<keyword attribute="Builtin Function" context="#stay" String="patchtextfile section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="Registry" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'" />
-				<keyword attribute="Builtin Function" context="#stay" String="registry section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="ShellBatch" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Shell" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Shell" char="'"/>
-				<DetectChar attribute="Operator" char=";"/>
-				<RegExpr attribute="Comment" String="#[^\n]*" />
-				<RegExpr attribute="Variable" String="\$[\?\w]+" />
-				<keyword attribute="Keyword" context="#stay" String="shellbatch section keywords" />
-				<keyword attribute="Builtin Function" context="#stay" String="shellbatch section builtin" />
-				<keyword attribute="Builtin Function" context="#stay" String="shellbatch section builtin_vars" />
-				<keyword attribute="Function" context="#stay" String="shellbatch section unixcommands" />
-				<IncludeRules context="Normal Text" />
-			</context>
-			<context name="XML2" attribute="Normal Text" lineEndContext="#stay">
-				<DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;" />
-				<DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
-				<keyword attribute="Builtin Function" context="#stay" String="xml2 section builtin" />
-				<IncludeRules context="Normal Text" />
-			</context>
-		</contexts>
-		<itemDatas>
-			<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
-			<itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false" />
-			<itemData name="Comment" defStyleNum="dsComment" />
-			<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
-			<itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
-			<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" />
+            <item>importLib</item>
+            <item>Sub</item>
+        </list>
+        <list name="primary section keywords">
+            <item>DefStringList</item>
+            <item>DefVar</item>
+            <item>set</item>
+        </list>
+        <list name="primary section builtin">
+            <!--             opsi-script control -->
+            <item>encoding</item>
+            <item>SetLogLevel</item>
+            <item>ExitOnError</item>
+            <item>ScriptErrorMessages</item>
+            <item>FatalOnSyntaxError</item>
+            <item>FatalOnRuntimeError</item>
+            <item>AutoActivityDisplay</item>
+            <item>CheckTargetPath</item>
+            <item>forceLogInAppendMode</item>
+            <item>Message</item>
+            <item>ShowMessageFile</item>
+            <item>ShowBitMap</item>
+            <item>comment</item>
+            <item>LogError</item>
+            <item>LogWarning</item>
+            <item>includelog</item>
+            <item>SetConfidential</item>
+            <item>asConfidential</item>
+            <item>Pause</item>
+            <item>Stop</item>
+            <item>include_insert</item>
+            <item>include_append</item>
+            <item>NormalizeWinst</item>
+            <item>IconizeWinst</item>
+            <item>MaximizeWinst</item>
+            <item>RestoreWinst</item>
+            <item>SetSkinDirectory</item>
+            <item>runningInWanMode</item>
+            <item>reloadProductList</item>
+            <!--             String functions -->
+            <item>GetOS</item>
+            <item>getLinuxDistroType</item>
+            <item>GetMsVersionInfo</item>
+            <item>GetMsVersionName</item>
+            <item>GetSystemType</item>
+            <item>getOSArchitecture</item>
+            <item>getRegistryValue</item>
+            <item>GetRegistrystringvalue</item>
+            <item>GetRegistryStringValue32</item>
+            <item>GetRegistryStringValue64</item>
+            <item>GetRegistryStringValueSysNative</item>
+            <item>GetValueFromInifile</item>
+            <item>GetProductProperty</item>
+            <item>GetConfidentialProductProperty</item>
+            <item>trim</item>
+            <item>lower</item>
+            <item>upper</item>
+            <item>unquote</item>
+            <item>unquote2</item>
+            <item>stringReplace</item>
+            <item>strLength</item>
+            <item>strPos</item>
+            <item>strPart</item>
+            <item>getValue</item>
+            <item>getValueBySeparator</item>
+            <item>setValueByKey</item>
+            <item>getValueFromFile</item>
+            <item>getValueFromFileBySeparator</item>
+            <item>getLastExitCode</item>
+            <item>DemandLicenseKey</item>
+            <item>FreeLicense</item>
+            <item>GetUserSID</item>
+            <item>GetLoggedInUser</item>
+            <item>GetUsercontext</item>
+            <item>GetScriptMode</item>
+            <item>saveVersionToProfile</item>
+            <item>readVersionFromProfile</item>
+            <item>scriptWasExecutedBefore</item>
+            <item>GetHostsName</item>
+            <item>GetHostsAddr</item>
+            <item>ExtractFilePath</item>
+            <item>calculate</item>
+            <item>DecStrToHexStr</item>
+            <item>HexStrToDecStr</item>
+            <item>base64EncodeStr</item>
+            <item>base64DecodeStr</item>
+            <item>convert2Jsonstr</item>
+            <item>RandomStr</item>
+            <item>RandomStrWithParameters</item>
+            <item>RandomIntStr</item>
+            <item>CompareDotSeparatedStrings</item>
+            <item>CompareDotSeparatedNumbers</item>
+            <item>EnvVar</item>
+            <item>ParamStr</item>
+            <item>getDiffTimeSec</item>
+            <item>SidToName</item>
+            <item>GetMyIpByTarget</item>
+            <item>GetIpByName</item>
+            <item>reencodestr</item>
+            <item>strLoadTextFile</item>
+            <item>strLoadTextFileWithEncoding</item>
+            <item>GetShortWinPathName</item>
+            <item>stringinput</item>
+            <item>which</item>
+            <item>replaceOpsiConstants</item>
+            <item>ReadTOMLFile</item>
+            <item>GetTOMLAsString</item>
+            <item>GetTOMLTableAsString</item>
+            <item>GetValueFromTOML</item>
+            <item>ModifyTOML</item>
+            <item>DeleteTableFromTOML</item>
+            <item>ConvertTOMLtoJSON</item>
+            <!--             String list functions -->
+            <item>splitString</item>
+            <item>splitStringOnWhiteSpace</item>
+            <item>loadTextFile</item>
+            <item>loadUnicodeTextFile</item>
+            <item>loadTextFileWithEncoding</item>
+            <item>composeString</item>
+            <item>takeString</item>
+            <item>setStringInListAtIndex</item>
+            <item>takeFirstStringContaining</item>
+            <item>getOutStreamFromSection</item>
+            <item>shellCall</item>
+            <item>getReturnListFromSection</item>
+            <item>getListContaining</item>
+            <item>getListContainingList</item>
+            <item>count</item>
+            <item>emptylist</item>
+            <item>GetProcessList</item>
+            <item>getProductPropertyList</item>
+            <item>getRegistryKeyList32</item>
+            <item>getRegistryKeyList64</item>
+            <item>getRegistryKeyListSysnative</item>
+            <item>getRegistryKeyList</item>
+            <item>getRegistryVarList32</item>
+            <item>getRegistryVarList64</item>
+            <item>getRegistryVarListSysnative</item>
+            <item>getRegistryVarList</item>
+            <item>getProfilesDirList</item>
+            <item>listFiles</item>
+            <item>GetLocaleInfoMap</item>
+            <item>GetMSVersionMap</item>
+            <item>getLinuxVersionMap</item>
+            <item>getFileInfoMap</item>
+            <item>getProductMap</item>
+            <item>getRegistryVarMap32</item>
+            <item>getRegistryVarMap64</item>
+            <item>getRegistryVarMapSysnative</item>
+            <item>getRegistryVarMap</item>
+            <item>getHWBiosInfoMap</item>
+            <item>editmap</item>
+            <item>createStringList</item>
+            <item>reverse</item>
+            <item>getSectionNames</item>
+            <item>retrieveSection</item>
+            <item>getSubList</item>
+            <item>getSubListByMatch</item>
+            <item>getSubListByContaining</item>
+            <item>getSubListByKey</item>
+            <item>getKeyList</item>
+            <item>addtolist</item>
+            <item>addListToList</item>
+            <item>reencodestrlist</item>
+            <item>removeFromListByContaining</item>
+            <item>removeFromListByMatch</item>
+            <item>LoadTOMLFile</item>
+            <item>GetTOMLAsStringList</item>
+            <item>GetTOMLKeys</item>
+            <item>GetTOMLTableNames</item>
+            <item>GetTOMLTable</item>
+            <!--             Boolean operators and functions -->
+            <item>FileExists</item>
+            <item>FileExists32</item>
+            <item>FileExists64</item>
+            <item>FileExistsSysNative</item>
+            <item>DirectoryExists</item>
+            <item>FileOrFolderExists</item>
+            <item>fileIsSymlink</item>
+            <item>LineExistsIn</item>
+            <item>LineBeginning_ExistsIn</item>
+            <item>LineContaining_ExistsIn</item>
+            <item>HasMinimumSpace</item>
+            <item>opsiLicenseManagementEnabled</item>
+            <item>runningAsAdmin</item>
+            <item>isLoginScript</item>
+            <item>contains</item>
+            <item>isNumber</item>
+            <item>runningOnUefi</item>
+            <item>runningInPE</item>
+            <item>runningInWAnMode</item>
+            <item>isDriveReady</item>
+            <item>runningWithGui</item>
+            <item>saveTextFile</item>
+            <item>saveTextFileWithEncoding</item>
+            <item>saveUnicodeTextFile</item>
+            <item>RegKeyExists</item>
+            <item>RegVarExists</item>
+            <item>isPingReachable</item>
+            <item>isValidFQDN</item>
+            <item>fileHasBom</item>
+            <item>SaveToTOMLFile</item>
+            <item>ConvertTOMLfileToJSONfile</item>
+            <item>Killtask</item>
+            <item>requiredOpsiscriptVersion</item>
+            <item>requiredWinstVersion</item>
+            <item>UpdateEnvironment</item>
+            <!--         Flow control -->
+            <item>isFatalError</item>
+            <item>isSuccess</item>
+            <item>isSuspended</item>
+            <item>noUpdateScript</item>
+            <item>ExitWindows</item>
+            <item>Reboot</item>
+            <item>ImmediateReboot</item>
+            <item>ImmediateLogout</item>
+            <item>ShutdownWanted</item>
+            <item>RebootWanted</item>
+            <item>sleepSeconds</item>
+            <item>ChangeDirectory</item>
+        </list>
+        <list name="files section builtin">
+            <item>copy</item>
+            <item>del</item>
+            <item>delete</item>
+            <item>SourcePath</item>
+            <item>CheckTargetPath</item>
+            <item>chmod</item>
+            <item>hardlink</item>
+            <item>symlink</item>
+            <item>rename</item>
+            <item>move</item>
+            <item>zipfile</item>
+            <item>unzipfile</item>
+        </list>
+        <list name="ldapsearch section builtin">
+            <item>targethost</item>
+            <item>targetport</item>
+            <item>user</item>
+            <item>password</item>
+            <item>dn</item>
+            <item>typesonly</item>
+            <item>filter</item>
+            <item>attributes</item>
+        </list>
+        <list name="linkfolder section builtin">
+            <item>delete_element</item>
+            <item>delete_subfolder</item>
+            <item>set_basefolder</item>
+            <item>set_subfolder</item>
+        </list>
+        <list name="linkfolder section set_link builtin">
+            <item>name</item>
+            <item>target</item>
+            <item>parameters</item>
+            <item>working_dir</item>
+            <item>icon_file</item>
+            <item>icon_index</item>
+            <item>shortcut</item>
+        </list>
+        <list name="patches section builtin">
+            <item>add</item>
+            <item>addnew</item>
+            <item>change</item>
+            <item>del</item>
+            <item>delsec</item>
+            <item>replace</item>
+            <item>set</item>
+        </list>
+        <list name="patchhosts section builtin">
+            <item>setAddr</item>
+            <item>setName</item>
+            <item>setAlias</item>
+            <item>delAlias</item>
+            <item>delHost</item>
+            <item>setComment</item>
+        </list>
+        <list name="patchtextfile section builtin">
+            <item>Set_Mozilla_Pref</item>
+            <item>Set_Netscape_User_Pref</item>
+            <item>AddStringListElement_To_Mozilla_Pref</item>
+            <item>AddStringListElement_To_Netscape_User_Pref</item>
+            <item>FindLine</item>
+            <item>FindLine_StartingWith</item>
+            <item>FindLine_Containing</item>
+            <item>GoToTop</item>
+            <item>AdvanceLine</item>
+            <item>GoToBottom</item>
+            <item>DeleteTheLine</item>
+            <item>AddLine</item>
+            <item>InsertLine</item>
+            <item>AppendLine</item>
+            <item>Append_File</item>
+            <item>Subtract_File</item>
+            <item>SaveToFile</item>
+            <item>Sorted</item>
+            <item>setKeyValueSeparator</item>
+            <item>setValueByKey</item>
+            <item>searchAndReplace</item>
+        </list>
+        <list name="registry section builtin">
+            <item>OpenKey</item>
+            <item>Set</item>
+            <item>Add</item>
+            <item>Supp</item>
+            <item>GetMultiSZFromFile</item>
+            <item>SaveValueToFile</item>
+            <item>DeleteVar</item>
+            <item>DeleteKey</item>
+            <item>ReconstructFrom</item>
+            <item>Flushkey</item>
+            <item>openKey</item>
+            <item>set</item>
+            <item>add</item>
+            <item>supp</item>
+        </list>
+        <list name="shellbatch section keywords">
+            <item>break</item>
+            <item>case</item>
+            <item>continue</item>
+            <item>do</item>
+            <item>done</item>
+            <item>elif</item>
+            <item>else</item>
+            <item>esac</item>
+            <item>fi</item>
+            <item>for</item>
+            <item>function</item>
+            <item>if</item>
+            <item>in</item>
+            <item>return</item>
+            <item>select</item>
+            <item>then</item>
+            <item>until</item>
+            <item>while</item>
+        </list>
+        <list name="shellbatch section builtin">
+            <item>.</item>
+            <item>:</item>
+            <item>source</item>
+            <item>alias</item>
+            <item>bg</item>
+            <item>bind</item>
+            <item>builtin</item>
+            <item>cd</item>
+            <item>caller</item>
+            <item>command</item>
+            <item>compgen</item>
+            <item>complete</item>
+            <item>coproc</item>
+            <item>dirs</item>
+            <item>disown</item>
+            <item>echo</item>
+            <item>enable</item>
+            <item>eval</item>
+            <item>exec</item>
+            <item>exit</item>
+            <item>fc</item>
+            <item>fg</item>
+            <item>hash</item>
+            <item>help</item>
+            <item>history</item>
+            <item>jobs</item>
+            <item>kill</item>
+            <item>logout</item>
+            <item>popd</item>
+            <item>printf</item>
+            <item>pushd</item>
+            <item>pwd</item>
+            <item>set</item>
+            <item>shift</item>
+            <item>shopt</item>
+            <item>suspend</item>
+            <item>test</item>
+            <item>time</item>
+            <item>times</item>
+            <item>trap</item>
+            <item>type</item>
+            <item>ulimit</item>
+            <item>umask</item>
+            <item>unalias</item>
+            <item>wait</item>
+        </list>
+        <list name="shellbatch section builtin_vars">
+            <item>export</item>
+            <item>declare</item>
+            <item>getopts</item>
+            <item>let</item>
+            <item>local</item>
+            <item>read</item>
+            <item>readonly</item>
+            <item>typeset</item>
+            <item>unset</item>
+        </list>
+        <list name="shellbatch section unixcommands">
+            <!-- /bin -->
+            <item>arch</item>
+            <item>awk</item>
+            <item>b2sum</item>
+            <item>base32</item>
+            <item>base64</item>
+            <item>bash</item>
+            <item>bunzip2</item>
+            <item>bzcat</item>
+            <item>bzcmp</item>
+            <item>bzdiff</item>
+            <item>bzegrep</item>
+            <item>bzfgrep</item>
+            <item>bzgrep</item>
+            <item>bzip2</item>
+            <item>bzip2recover</item>
+            <item>bzless</item>
+            <item>bzmore</item>
+            <item>cat</item>
+            <item>chattr</item>
+            <item>chcon</item>
+            <item>chgrp</item>
+            <item>chmod</item>
+            <item>chown</item>
+            <item>chvt</item>
+            <item>cksum</item>
+            <item>cp</item>
+            <item>crontab</item>
+            <item>csplit</item>
+            <item>date</item>
+            <item>dd</item>
+            <item>deallocvt</item>
+            <item>df</item>
+            <item>dir</item>
+            <item>dircolors</item>
+            <item>dmesg</item>
+            <item>dnsdomainname</item>
+            <item>domainname</item>
+            <item>du</item>
+            <item>dumpkeys</item>
+            <item>ed</item>
+            <item>egrep</item>
+            <item>expand</item>
+            <item>false</item>
+            <item>fgconsole</item>
+            <item>fgrep</item>
+            <item>fold</item>
+            <item>fuser</item>
+            <item>gawk</item>
+            <item>getkeycodes</item>
+            <item>gocr</item>
+            <item>grep</item>
+            <item>groff</item>
+            <item>groups</item>
+            <item>gunzip</item>
+            <item>gzexe</item>
+            <item>gzip</item>
+            <item>hostid</item>
+            <item>hostname</item>
+            <item>iconv</item>
+            <item>igawk</item>
+            <item>install</item>
+            <item>kbd_mode</item>
+            <item>kbdrate</item>
+            <item>killall</item>
+            <item>last</item>
+            <item>lastb</item>
+            <item>link</item>
+            <item>ln</item>
+            <item>loadkeys</item>
+            <item>loadunimap</item>
+            <item>login</item>
+            <item>ls</item>
+            <item>lsattr</item>
+            <item>lsmod</item>
+            <item>lsmod.old</item>
+            <item>lzcat</item>
+            <item>lzcmp</item>
+            <item>lzdiff</item>
+            <item>lzegrep</item>
+            <item>lzfgrep</item>
+            <item>lzgrep</item>
+            <item>lzless</item>
+            <item>lzma</item>
+            <item>lzmainfo</item>
+            <item>lzmore</item>
+            <item>mapscrn</item>
+            <item>md5sum</item>
+            <item>mesg</item>
+            <item>mkdir</item>
+            <item>mkfifo</item>
+            <item>mknod</item>
+            <item>mktemp</item>
+            <item>more</item>
+            <item>mount</item>
+            <item>mv</item>
+            <item>nano</item>
+            <item>netstat</item>
+            <item>nisdomainname</item>
+            <item>nproc</item>
+            <item>nroff</item>
+            <item>numfmt</item>
+            <item>openvt</item>
+            <item>paste</item>
+            <item>pathchk</item>
+            <item>pgawk</item>
+            <item>pidof</item>
+            <item>ping</item>
+            <item>pinky</item>
+            <item>printenv</item>
+            <item>ps</item>
+            <item>pstree</item>
+            <item>ptx</item>
+            <item>rbash</item>
+            <item>readlink</item>
+            <item>realpath</item>
+            <item>red</item>
+            <item>resizecons</item>
+            <item>rm</item>
+            <item>rmdir</item>
+            <item>run-parts</item>
+            <item>runcon</item>
+            <item>sash</item>
+            <item>sed</item>
+            <item>setfont</item>
+            <item>setkeycodes</item>
+            <item>setleds</item>
+            <item>setmetamode</item>
+            <item>setserial</item>
+            <item>sh</item>
+            <item>sha1sum</item>
+            <item>sha224sum</item>
+            <item>sha256sum</item>
+            <item>sha384sum</item>
+            <item>sha512sum</item>
+            <item>showkey</item>
+            <item>shred</item>
+            <item>shuf</item>
+            <item>sleep</item>
+            <item>ssed</item>
+            <item>stat</item>
+            <item>stdbuf</item>
+            <item>stty</item>
+            <item>su</item>
+            <item>sync</item>
+            <item>tar</item>
+            <item>tempfile</item>
+            <item>timeout</item>
+            <item>touch</item>
+            <item>tput</item>
+            <item>troff</item>
+            <item>true</item>
+            <item>truncate</item>
+            <item>tty</item>
+            <item>umount</item>
+            <item>uname</item>
+            <item>unexpand</item>
+            <item>unicode_start</item>
+            <item>unicode_stop</item>
+            <item>unlink</item>
+            <item>unlzma</item>
+            <item>unxz</item>
+            <item>utmpdump</item>
+            <item>uuidgen</item>
+            <item>vdir</item>
+            <item>vi</item>
+            <item>wall</item>
+            <item>wc</item>
+            <item>xz</item>
+            <item>xzcat</item>
+            <item>ypdomainname</item>
+            <item>zcat</item>
+            <item>zcmp</item>
+            <item>zdiff</item>
+            <item>zegrep</item>
+            <item>zfgrep</item>
+            <item>zforce</item>
+            <item>zgrep</item>
+            <item>zless</item>
+            <item>zmore</item>
+            <item>znew</item>
+            <item>zsh</item>
+            <!-- some from /usr/bin -->
+            <item>aclocal</item>
+            <item>aconnect</item>
+            <item>aplay</item>
+            <item>apm</item>
+            <item>apmsleep</item>
+            <item>apropos</item>
+            <item>ar</item>
+            <item>arecord</item>
+            <item>as</item>
+            <item>as86</item>
+            <item>autoconf</item>
+            <item>autoheader</item>
+            <item>automake</item>
+            <item>basename</item>
+            <item>bc</item>
+            <item>bison</item>
+            <item>c++</item>
+            <item>cal</item>
+            <item>cc</item>
+            <item>cdda2wav</item>
+            <item>cdparanoia</item>
+            <item>cdrdao</item>
+            <item>cd-read</item>
+            <item>cdrecord</item>
+            <item>chfn</item>
+            <item>chroot</item>
+            <item>chsh</item>
+            <item>clear</item>
+            <item>cmp</item>
+            <item>co</item>
+            <item>col</item>
+            <item>comm</item>
+            <item>cpio</item>
+            <item>cpp</item>
+            <item>cut</item>
+            <item>dc</item>
+            <item>diff</item>
+            <item>diff3</item>
+            <item>directomatic</item>
+            <item>dirname</item>
+            <item>env</item>
+            <item>expr</item>
+            <item>fbset</item>
+            <item>file</item>
+            <item>find</item>
+            <item>flex</item>
+            <item>flex++</item>
+            <item>fmt</item>
+            <item>free</item>
+            <item>ftp</item>
+            <item>funzip</item>
+            <item>g++</item>
+            <item>gc</item>
+            <item>gcc</item>
+            <item>clang</item>
+            <item>clang++</item>
+            <item>valgrind</item>
+            <item>xdg-open</item>
+            <item>cmake</item>
+            <item>qmake</item>
+            <item>svn</item>
+            <item>git</item>
+            <item>rsync</item>
+            <item>gdb</item>
+            <item>getent</item>
+            <item>getopt</item>
+            <item>gettext</item>
+            <item>gettextize</item>
+            <item>gimp</item>
+            <item>gimp-remote</item>
+            <item>gimptool</item>
+            <item>gmake</item>
+            <item>gs</item>
+            <item>head</item>
+            <item>hexdump</item>
+            <item>id</item>
+            <item>join</item>
+            <item>ld</item>
+            <item>ld86</item>
+            <item>ldd</item>
+            <item>less</item>
+            <item>lex</item>
+            <item>locate</item>
+            <item>lockfile</item>
+            <item>logname</item>
+            <item>lp</item>
+            <item>lpr</item>
+            <item>lynx</item>
+            <item>m4</item>
+            <item>make</item>
+            <item>man</item>
+            <item>msgfmt</item>
+            <item>namei</item>
+            <item>nasm</item>
+            <item>nawk</item>
+            <item>nice</item>
+            <item>nl</item>
+            <item>nm</item>
+            <item>nm86</item>
+            <item>nmap</item>
+            <item>nohup</item>
+            <item>nop</item>
+            <item>od</item>
+            <item>passwd</item>
+            <item>patch</item>
+            <item>pcregrep</item>
+            <item>pcretest</item>
+            <item>perl</item>
+            <item>perror</item>
+            <item>pr</item>
+            <item>procmail</item>
+            <item>prune</item>
+            <item>ps2ascii</item>
+            <item>ps2epsi</item>
+            <item>ps2frag</item>
+            <item>ps2pdf</item>
+            <item>ps2ps</item>
+            <item>psbook</item>
+            <item>psmerge</item>
+            <item>psnup</item>
+            <item>psresize</item>
+            <item>psselect</item>
+            <item>pstops</item>
+            <item>rcs</item>
+            <item>rev</item>
+            <item>scp</item>
+            <item>seq</item>
+            <item>setterm</item>
+            <item>size</item>
+            <item>size86</item>
+            <item>skill</item>
+            <item>slogin</item>
+            <item>snice</item>
+            <item>sort</item>
+            <item>sox</item>
+            <item>split</item>
+            <item>ssh</item>
+            <item>ssh-add</item>
+            <item>ssh-agent</item>
+            <item>ssh-keygen</item>
+            <item>ssh-keyscan</item>
+            <item>strings</item>
+            <item>strip</item>
+            <item>sudo</item>
+            <item>suidperl</item>
+            <item>sum</item>
+            <item>tac</item>
+            <item>tail</item>
+            <item>tee</item>
+            <item>tr</item>
+            <item>tsort</item>
+            <item>uniq</item>
+            <item>unzip</item>
+            <item>updatedb</item>
+            <item>updmap</item>
+            <item>uptime</item>
+            <item>users</item>
+            <item>vmstat</item>
+            <item>w</item>
+            <item>wget</item>
+            <item>whatis</item>
+            <item>whereis</item>
+            <item>which</item>
+            <item>who</item>
+            <item>whoami</item>
+            <item>write</item>
+            <item>xargs</item>
+            <item>yacc</item>
+            <item>yes</item>
+            <item>zip</item>
+            <item>zsoelim</item>
+            <!-- others -->
+            <item>dcop</item>
+            <item>kdialog</item>
+            <item>kfile</item>
+            <item>xhost</item>
+            <item>xmodmap</item>
+            <item>xset</item>
+        </list>
+        <list name="xml2 section builtin">
+            <item>strictMode</item>
+            <item>openNode</item>
+            <item>SetAttribute</item>
+            <item>AddAttribute</item>
+            <item>DeleteAttribute</item>
+            <item>addNewNode</item>
+            <item>setNodeText</item>
+            <item>DeleteNode</item>
+            <item>gotoParentNode</item>
+            <item>rootNodeOnCreate</item>
+        </list>
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text">
+                <AnyChar attribute="Operator" String="+=&lt;&gt;" context="#stay"/>
+                <DetectChar attribute="String" context="StringDoubleQuotes" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes" char="'"/>
+                <RegExpr attribute="Variable" context="#stay" String="(\$[a-zA-Z0-9_-]+\$|\%[a-zA-Z0-9_-]+\%)"/>
+                <RegExpr attribute="Comment" context="#stay" String="[;#][^\n]*"/>
+                <RegExpr attribute="Control Structures" String="(?i)^\s*DefFunc\b" context="Func" beginRegion="func"/>
+                <RegExpr attribute="Section" context="Actions" String="(?i)^\s*\[(Actions|Sub_[A-Za-z0-9_]+)\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="Files" String="(?i)^\s*\[Files_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="LdapSearch" String="(?i)^\s*\[ldapsearch_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="LinkFolder" String="(?i)^\s*\[LinkFolder_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="Patches" String="(?i)^\s*\[Patches_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="PatchHosts" String="(?i)^\s*\[PatchHosts_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="PatchTextFile" String="(?i)^\s*\[PatchTextFile_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="Registry" String="(?i)^\s*\[Registry_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="ShellBatch" String="(?i)^\s*\[(ShellBatch|ShellInAnIcon|DosBatch|DosInAnIcon)_[A-Za-z0-9_]+\]\s*$$" beginRegion="section" endRegion="section"/>
+                <RegExpr attribute="Section" context="XML2" String="(?i)^\s*\[XML2_[A-Za-z0-9_]+\]\s*$" beginRegion="section" endRegion="section"/>
+                <Detect2Chars attribute="Section" context="OtherSection" char="[" char1="]" beginRegion="section" endRegion="section"/>
+            </context>
+            <context name="StringDoubleQuotes" attribute="String" lineEndContext="#pop">
+                <RegExpr attribute="Variable" context="#stay" String="\%[a-zA-Z0-9_-]+\%"/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+            <context name="StringSingleQuotes" attribute="String" lineEndContext="#pop">
+                <RegExpr attribute="Variable" context="#stay" String="\%[a-zA-Z0-9_-]+\%"/>
+                <DetectChar attribute="String" context="#pop" char="'"/>
+            </context>
+            <context name="StringDoubleQuotes Secondary" attribute="String" lineEndContext="#pop">
+                <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9_-]+\$"/>
+                <IncludeRules context="StringDoubleQuotes"/>
+            </context>
+            <context name="StringSingleQuotes Secondary" attribute="String" lineEndContext="#pop">
+                <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9_-]+\$"/>
+                <IncludeRules context="StringSingleQuotes"/>
+            </context>
+            <context name="StringDoubleQuotes Shell" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringDoubleQuotes Secondary"/>
+            </context>
+            <context name="StringSingleQuotes Shell" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringSingleQuotes Secondary"/>
+            </context>
+            <context name="Func" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Control Structures" String="(?i)^\s*EndFunc\b" context="#pop" endRegion="func"/>
+                <IncludeRules context="Actions"/>
+            </context>
+            <context name="If" attribute="Normal Text" lineEndContext="#stay">
+                <StringDetect attribute="Control Structures" String="endif" context="#pop" endRegion="if"/>
+                <IncludeRules context="Actions"/>
+            </context>
+            <context name="Switch" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Control Structures" context="Case" String="(?i)^\s*(Case|DefaultCase)\b" beginRegion="Case"/>
+                <RegExpr attribute="Control Structures" String="(?i)^\s*EndSwitch\b" context="#pop" endRegion="Switch"/>
+                <IncludeRules context="Actions"/>
+            </context>
+            <context name="Case" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Control Structures" String="(?i)^\s*EndCase\b" context="#pop" endRegion="Case"/>
+                <IncludeRules context="Switch"/>
+            </context>
+            <context name="OtherSection" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="Actions" attribute="Normal Text" lineEndContext="#stay">
+                <keyword attribute="Control Structures" context="#stay" String="control structures"/>
+                <StringDetect attribute="Control Structures" String="if" context="If" beginRegion="if"/>
+                <RegExpr attribute="Control Structures" String="(?i)^\s*Switch\b" context="Switch" beginRegion="Switch"/>
+                <keyword attribute="Import" context="#stay" String="primary section import"/>
+                <keyword attribute="Keyword" context="#stay" String="primary section keywords"/>
+                <keyword attribute="Builtin Function" context="#stay" String="primary section builtin"/>
+                <keyword attribute="Operator" context="#stay" String="operators"/>
+                <IncludeRules context="Normal Text"/>
+                <RegExpr attribute="Function" context="#stay" String="(?i)\s*(Sub|Files|LdapSearch|LinkFolder|Patches|PatchHosts|PatchTextFile|Registry|ShellBatch|ShellInAnIcon|DosBatch|DosInAnicon|ExecWith|XML2)_[A-Za-z0-9_]+\b\s*"/>
+            </context>
+            <context name="Files" attribute="Normal Text" lineEndContext="#stay">
+                <keyword attribute="Builtin Function" context="#stay" String="files section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="LdapSearch" attribute="Normal Text" lineEndContext="#stay">
+                <keyword attribute="Builtin Function" context="#stay" String="ldapsearch section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="LinkFolder" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="linkfolder section builtin"/>
+                <StringDetect attribute="Control Structures" String="set_link" context="Set_link" beginRegion="set_link"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="Set_link" attribute="Normal Text" lineEndContext="#stay">
+                <keyword attribute="Builtin Function" context="#stay" String="linkfolder section set_link builtin"/>
+                <StringDetect attribute="Control Structures" String="end_link" context="#pop" endRegion="set_link"/>
+            </context>
+            <context name="PatchHosts" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="patchhosts section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="Patches" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="patches section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="PatchTextFile" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="patchtextfile section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="Registry" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="registry section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="ShellBatch" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Shell" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Shell" char="'"/>
+                <DetectChar attribute="Operator" char=";"/>
+                <RegExpr attribute="Comment" String="#[^\n]*"/>
+                <RegExpr attribute="Variable" String="\$[\?\w]+"/>
+                <keyword attribute="Keyword" context="#stay" String="shellbatch section keywords"/>
+                <keyword attribute="Builtin Function" context="#stay" String="shellbatch section builtin"/>
+                <keyword attribute="Builtin Function" context="#stay" String="shellbatch section builtin_vars"/>
+                <keyword attribute="Function" context="#stay" String="shellbatch section unixcommands"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+            <context name="XML2" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDoubleQuotes Secondary" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSingleQuotes Secondary" char="'"/>
+                <keyword attribute="Builtin Function" context="#stay" String="xml2 section builtin"/>
+                <IncludeRules context="Normal Text"/>
+            </context>
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
             <itemData name="Import" defStyleNum="dsImport" spellChecking="false"/>
-			<itemData name="String" defStyleNum="dsString" spellChecking="false" />
-			<itemData name="Variable" defStyleNum="dsVariable" spellChecking="false" />
-			<itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false" />
-			<itemData name="Section" defStyleNum="dsDataType" spellChecking="false" />
-		</itemDatas>
-	</highlighting>
-	<general>
-		<comments>
-			<comment name="singleLine" start=";" />
-		</comments>
+            <itemData name="String" defStyleNum="dsString" spellChecking="false"/>
+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false"/>
+            <itemData name="Section" defStyleNum="dsDataType" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start=";"/>
+        </comments>
         <keywords casesensitive="0"/>
-	</general>
+    </general>
 </language>
diff -pruN 6.18.0-1/data/syntax/quarto.xml 6.19.0-0ubuntu1/data/syntax/quarto.xml
--- 6.18.0-1/data/syntax/quarto.xml	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/quarto.xml	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+<!-- Replicated from "markdown.xml": -->
+<!ENTITY rulerregex "\s*(?:(?:\*\s*){3,}|(?:_\s*){3,}|(?:\-\s*){3,})\s*$">
+<!ENTITY indentedcodeblock "(?:\s{4}|\t).*$">
+<!ENTITY listbullet "[\*\+\-]">
+<!ENTITY emptyline "^\s*$">
+<!ENTITY checkbox "\[[ x]\](?=\s)">
+]>
+<!--
+  Kate highlighting module for Quarto
+  (c) 2025 Thomas Friedrichsmeier (thomas.friedrichsmeier@kdemail.net)
+  Heavily based on the R markdown highlighting definition, originally by:
+  (c) 2014 Dirk Sarpe (dsarpe@posteo.de)
+
+  NOTE: In fact this definition is identical to R markdown in very many parts,
+        and the two should be kept in sync, except for the regions marked with
+        "Quarto_specific"!
+
+  depends on:
+    Kate highlighting module for Markdown
+    Kate highlighting module for R script
+    Kate highlighting module for LaTeX
+    Kate highlighting module for YAML
+-->
+
+<language name="Quarto"
+section="Markup"
+extensions="*.qmd;*.Qmd;*.QMD"
+mimetype="text/x-quarto"
+version="9"
+kateversion="5.79"
+casesensitive="true"
+author="Thomas Friedrichsmeier (thomas.friedrichsmeier@kdemail.net)"
+license="GPL">
+
+  <highlighting>
+    <contexts>
+
+      <context name="Start Document" attribute="Markdown" lineEndContext="Normal Text" lineEmptyContext="Normal Text" fallthroughContext="Normal Text">
+        <RegExpr String="^---$" column="0" attribute="Markdown" context="YAMLhead" beginRegion="YAMLhead block"/>
+      </context>
+
+      <context name="Normal Text" attribute="Markdown" lineEndContext="#stay" lineEmptyContext="find-code-block">
+        <IncludeRules context="Common"/>
+        <IncludeRules context="Overwrite Markdown Normal Text"/>
+        <IncludeRules context="Normal Text##Markdown" includeAttrib="true"/>
+      </context>
+      <context name="find-code-block" attribute="Markdown" lineEndContext="#stay" lineEmptyContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="find-code-block##Markdown" includeAttrib="true"/>
+      </context>
+
+      <context name="Common" attribute="Markdown" lineEndContext="#stay">
+        <RegExpr String="```\{r.*\}" firstNonSpace="true" attribute="Structure"
+                 context="R block" beginRegion="R block"/>
+        <!-- BEGIN Quarto_specific: Alway require braced language sepcifier "{r}" rather than "r" at head of code blocks -->
+        <RegExpr String="`\{r.*\}" attribute="Structure"
+                 context="R inline"/>
+        <!-- END Quarto_specific -->
+        <!-- BEGIN Quarto_specific: Allow python, julia, and ojs blocks in the same was as R bloks -->
+        <!-- NOTE: contrary to R, no (legacy) options seem to be allowed within the braces, for the other languages -->
+        <StringDetect String="```{python}" firstNonSpace="true" attribute="Structure"
+                 context="Python block" beginRegion="Python block"/>
+        <StringDetect String="`{python}" attribute="Structure"
+                 context="Python inline"/>
+        <StringDetect String="```{julia}" firstNonSpace="true" attribute="Structure"
+                 context="Julia block" beginRegion="Julia block"/>
+        <StringDetect String="`{julia}" attribute="Structure"
+                 context="Julia inline"/>
+        <StringDetect String="```{ojs}" firstNonSpace="true" attribute="Structure"
+                 context="OJS block" beginRegion="OJS block"/>
+        <StringDetect String="`{ojs}" attribute="Structure"
+                 context="OJS inline"/>
+        <!-- END Quarto_specific -->
+        <Detect2Chars char="$" char1="$" attribute="MathMode"
+                      context="LaTeX equation block" beginRegion="LaTeX equation block"/>
+        <DetectChar char="$" attribute="MathMode"
+                    context="LaTeX inline equation"/>
+        <Detect2Chars char="\" char1="$" attribute="Backslash Escape" context="#stay"/>
+      </context>
+
+      <context name="R block" attribute="Markdown" lineEndContext="#stay">
+        <RegExpr String="```+(?=\s*$)" firstNonSpace="true" attribute="Structure" context="#pop"
+                 endRegion="R block"/>
+        <IncludeRules context="##R Script" includeAttrib="true"/>
+      </context>
+
+      <context name="R inline" attribute="Markdown" lineEndContext="#stay">
+        <DetectChar char="`" attribute="Structure" context="#pop"/>
+        <IncludeRules context="##R Script" includeAttrib="true"/>
+      </context>
+
+      <!-- BEGIN Quarto_specific: Allow python, julia, and ojs blocks in the same was as R bloks -->
+      <context name="Python block" attribute="Markdown" lineEndContext="#stay">
+        <RegExpr String="```+(?=\s*$)" firstNonSpace="true" attribute="Structure" context="#pop"
+                 endRegion="Python block"/>
+        <IncludeRules context="##Python" includeAttrib="true"/>
+      </context>
+
+      <context name="Python inline" attribute="Markdown" lineEndContext="#stay">
+        <DetectChar char="`" attribute="Structure" context="#pop"/>
+        <IncludeRules context="##Python" includeAttrib="true"/>
+      </context>
+
+      <context name="Julia block" attribute="Markdown" lineEndContext="#stay">
+        <RegExpr String="```+(?=\s*$)" firstNonSpace="true" attribute="Structure" context="#pop"
+                 endRegion="Julia block"/>
+        <IncludeRules context="##Julia" includeAttrib="true"/>
+      </context>
+
+      <context name="Julia inline" attribute="Markdown" lineEndContext="#stay">
+        <DetectChar char="`" attribute="Structure" context="#pop"/>
+        <IncludeRules context="##Julia" includeAttrib="true"/>
+      </context>
+
+      <context name="OJS block" attribute="Markdown" lineEndContext="#stay">
+        <RegExpr String="```+(?=\s*$)" firstNonSpace="true" attribute="Structure" context="#pop"
+                 endRegion="OJS block"/>
+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+      </context>
+
+      <context name="OJS inline" attribute="Markdown" lineEndContext="#stay">
+        <DetectChar char="`" attribute="Structure" context="#pop"/>
+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+      </context>
+      <!-- END Quarto_specific -->
+
+      <context name="LaTeX equation block" attribute="MathMode"
+               lineEndContext="#stay">
+        <Detect2Chars char="$" char1="$" attribute="MathMode"
+                      context="#pop" endRegion="LaTeX equation block"/>
+        <IncludeRules context="MathModeDisplay##LaTeX" includeAttrib="true"/>
+      </context>
+
+      <context name="LaTeX inline equation" attribute="MathMode"
+               lineEndContext="#stay">
+        <DetectChar char="$" attribute="MathMode" context="#pop"/>
+        <IncludeRules context="MathMode##LaTeX" includeAttrib="true"/>
+      </context>
+
+      <context name="YAMLhead" attribute="Document Headers"
+               lineEndContext="#stay">
+        <RegExpr String="^---$" column="0" attribute="Markdown" context="#pop"
+                 endRegion="YAMLhead block"/>
+        <IncludeRules context="##YAML" includeAttrib="true"/>
+      </context>
+
+      <!-- Markdown -->
+      <!-- These contexts are replicated from "markdown.xml" to add the features of R Markdown. -->
+
+      <context name="Overwrite Markdown Normal Text" attribute="Markdown" lineEndContext="#stay">
+        <!-- Blockquotes -->
+        <DetectChar attribute="Blockquote" context="blockquote" char="&gt;" firstNonSpace="true"/>
+        <!-- Lists: avoid highlighting code blocks incorrectly, capturing indentation -->
+        <RegExpr attribute="List" context="list" String="^(\s*)&listbullet;(\s+)" column="0"/>
+        <RegExpr attribute="Number List" context="numlist" String="^(\s*)\d\.(\s+)" column="0"/>
+        <RegExpr attribute="Number List" context="numlist2" String="^(\s*)\d\d+\.(\s+)" column="0"/>
+      </context>
+
+      <context name="list" attribute="Markdown" lineEndContext="#stay" fallthroughContext="content-list">
+        <!-- Find indented code blocks, blockquotes and horizontal rules -->
+        <RegExpr attribute="List: Code" String="^%1%2\s&indentedcodeblock;" column="0" dynamic="true"/>
+        <RegExpr attribute="Blockquote" context="blockquote-list" String="^%1%2\s+&gt;" column="0" dynamic="true"/>
+        <RegExpr attribute="List: Horizontal Rule" String="^%1%2\s+&rulerregex;" column="0" dynamic="true"/>
+        <RegExpr String="&emptyline;" column="0"/>
+        <!-- Text with the same indentation captured corresponds to the item list -->
+        <RegExpr context="content-list" String="^%1%2\s" column="0" lookAhead="true" dynamic="true"/>
+        <!-- Finish when the text has a lower indentation than the list -->
+        <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
+        <!-- Highlight checkbox at the start of the item (task list) -->
+        <RegExpr attribute="List: Checkbox" context="content-list" String="\s*&checkbox;"/>
+      </context>
+      <!-- 1. numlist (one digit) -->
+      <context name="numlist" attribute="Markdown" lineEndContext="#stay" fallthroughContext="content-list">
+        <RegExpr attribute="List: Code" String="^%1%2\s{2}&indentedcodeblock;" column="0" dynamic="true"/>
+        <RegExpr attribute="Blockquote" context="blockquote-list" String="^%1%2\s{2,}&gt;" column="0" dynamic="true"/>
+        <RegExpr attribute="List: Horizontal Rule" String="^%1%2\s{2,}&rulerregex;" column="0" dynamic="true"/>
+        <RegExpr String="&emptyline;" column="0"/>
+        <RegExpr context="content-list" String="^%1%2\s{2}" column="0" lookAhead="true" dynamic="true"/>
+        <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
+      </context>
+      <!-- 10. numlist (two or more digits) -->
+      <context name="numlist2" attribute="Markdown" lineEndContext="#stay" fallthroughContext="content-list">
+        <RegExpr attribute="List: Code" String="^%1%2\s{3}&indentedcodeblock;" column="0" dynamic="true"/>
+        <RegExpr attribute="Blockquote" context="blockquote-list" String="^%1%2\s{3,}&gt;" column="0" dynamic="true"/>
+        <RegExpr attribute="List: Horizontal Rule" String="^%1%2\s{3,}&rulerregex;" column="0" dynamic="true"/>
+        <RegExpr String="&emptyline;" column="0"/>
+        <RegExpr context="content-list" String="^%1%2\s{3}" column="0" lookAhead="true" dynamic="true"/>
+        <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
+      </context>
+
+      <context name="content-list" attribute="Markdown" lineEndContext="#stay" lineEmptyContext="#pop">
+        <IncludeRules context="Common"/>
+        <IncludeRules context="content-list##Markdown" includeAttrib="true"/>
+      </context>
+
+      <context name="blockquote" attribute="Markdown" lineEndContext="#stay" lineEmptyContext="#pop">
+        <IncludeRules context="Common"/>
+        <IncludeRules context="blockquote##Markdown" includeAttrib="true"/>
+      </context>
+      <context name="blockquote-list" attribute="Markdown" lineEndContext="#stay" lineEmptyContext="#pop">
+        <IncludeRules context="Common"/>
+        <IncludeRules context="blockquote-list##Markdown" includeAttrib="true"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Markdown" defStyleNum="dsNormal"/>
+      <itemData name="Structure" defStyleNum="dsRegionMarker"/>
+      <itemData name="MathMode" defStyleNum="dsRegionMarker" color="#00A000"/>
+      <itemData name="Document Headers" defStyleNum="dsOthers"/>
+
+      <itemData name="Blockquote" defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="List" defStyleNum="dsSpecialString" bold="1" spellChecking="false"/>
+      <itemData name="Number List" defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="List: Horizontal Rule" defStyleNum="dsNormal" bold="true" spellChecking="false"/>
+      <itemData name="List: Code" defStyleNum="dsInformation"/>
+      <itemData name="List: Checkbox" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Backslash Escape" defStyleNum="dsSpecialChar" spellChecking="false"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <keywords additionalDeliminator="`"/>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="--&gt;"/>
+    </comments>
+  </general>
+
+</language>
diff -pruN 6.18.0-1/data/syntax/snakemake.xml 6.19.0-0ubuntu1/data/syntax/snakemake.xml
--- 6.18.0-1/data/syntax/snakemake.xml	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/snakemake.xml	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,484 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<!--
+    SPDX-FileCopyrightText: 2025 Thomas Bigot <thomas.bigot@pasteur.fr>
+
+    SPDX-License-Identifier: MIT
+-->
+
+<!--
+    Syntax highlighting for Snakemake, a Python-based workflow management system.
+
+    This definition handles the unique hybrid nature of Snakemake files, which combine
+    Python code with a domain-specific language for defining workflows.
+
+    HIGHLIGHTING MECHANISM:
+
+    The highlighter works by defining multiple nested contexts that capture Snakemake's structure:
+
+    1. TopLevel context - Serves as the entry point, recognizing:
+       - Rule declarations (rule/checkpoint/use rule)
+       - Snakemake top-level keywords (workflow, include, etc.)
+       - Python control structures
+
+    2. Rule handling:
+       - SmkRuleHeader/SmkRuleBody - Process rule declarations and their content
+       - SmkDirective - Handles rule directives like input, output, shell, etc.
+       - SmkRunBlock - Special handling for Python code in run: blocks
+
+    3. String processing:
+       - Different contexts for various string types (single/double quotes, triple quotes)
+       - Special handling for f-strings with interpolation
+       - Detection of Snakemake wildcards {wildcards.name} and placeholders
+
+    4. Error detection:
+       - Validates proper structure of rule declarations
+       - Catches malformed directives and blocks
+       - Ensures proper syntax for Snakemake-specific constructs
+
+    LIMITATIONS:
+    The Python support is deliberately simplified, focusing on the most common constructs used
+    in Snakemake workflows rather than supporting all Python language features. Complex Python
+    expressions may not be highlighted with complete accuracy, as the emphasis is on correctly
+    handling Snakemake-specific syntax and structure.
+
+    References:
+    - https://snakemake.readthedocs.io/
+
+-->
+
+
+<language name="Snakemake" version="1" style="snakemake" kateversion="5.62" section="Scripts" extensions="*.smk;Snakefile" mimetype="application/x-snakemake;text/x-snakemake" casesensitive="1" author="Thomas Bigot" license="MIT" indenter="python">
+    <highlighting>
+        <list name="PyLiterals">
+            <item>True</item>
+            <item>False</item>
+            <item>None</item>
+        </list>
+        <!-- snakemake top-level keywords followed by a colon -->
+        <list name="SmkBlockColonOnly">
+            <item>async</item>
+            <item>checkpoint</item>
+            <item>conda</item>
+            <item>container</item>
+            <item>containerized</item> <!-- Global containerized execution mode (kept for legacy workflows) -->
+            <item>configfile</item>
+            <item>envvars</item> <!-- Expose env vars to commands/scripts -->
+            <item>include</item>
+            <item>localrules</item>
+            <item>moduleinclude</item> <!-- Legacy; superseded by module/use rule -->
+            <item>report</item> <!-- Global HTML report declaration -->
+            <item>ruleorder</item>
+            <item>workdir</item>
+            <item>wildcard_constraints</item> <!-- Also usable per rule -->
+            <item>workflow</item> <!-- Python object (e.g. workflow.cores); not a directive, but appears at top level -->
+        </list>
+        <!-- snakemake top-level keywords that need names after them  -->
+        <list name="SmkBlockNameColon">
+            <item>module</item> <!-- Module declaration block -->
+            <item>subworkflow</item> <!-- Deprecated/removed since v8; kept to open old Snakefiles -->
+        </list>
+        <!-- snakemake rule directives -->
+        <list name="SmkDirective">
+            <item>benchmark</item>
+            <item>cache</item>
+            <item>container</item> <!-- Per-rule image -->
+            <item>containerized</item> <!-- Per-rule containerization (legacy compatibility) -->
+            <item>conda</item>
+            <item>cwl</item> <!-- Execute a CWL tool/workflow -->
+            <item>default_target</item> <!-- Mark default target(s) for the rule -->
+            <item>envmodules</item> <!-- Environment modules integration -->
+            <item>group</item>
+            <item>handover</item> <!-- Workflow handover/integration hook -->
+            <item>input</item>
+            <item>localrule</item> <!-- Mark rule as local -->
+            <item>log</item>
+            <item>message</item>
+            <item>name</item>
+            <item>notebook</item>
+            <item>output</item>
+            <item>params</item>
+            <item>priority</item>
+            <item>resources</item>
+            <item>run</item>
+            <item>script</item>
+            <item>shadow</item>
+            <item>shell</item>
+            <item>singularity</item> <!-- Legacy; prefer container + -sdm apptainer -->
+            <item>threads</item>
+            <item>version</item> <!-- Removed since v8; kept to highlight older code -->
+            <item>wildcard_constraints</item>
+            <item>wrapper</item>
+        </list>
+        <!-- python keywords -->
+        <list name="PyKeywordAll">
+            <item>async</item>
+            <item>return</item>
+            <item>import</item>
+            <item>from</item>
+            <item>for</item>
+            <item>if</item>
+            <item>else</item>
+            <item>in</item>
+            <item>pass</item>
+            <item>break</item>
+            <item>continue</item>
+            <item>and</item>
+            <item>or</item>
+            <item>not</item>
+            <item>is</item>
+            <item>lambda</item>
+            <item>as</item>
+            <item>assert</item>
+            <item>yield</item>
+            <item>raise</item>
+            <item>del</item>
+            <item>global</item>
+            <item>nonlocal</item>
+            <item>await</item>
+        </list>
+        <!--  python block openers that require an expression after them  -->
+        <list name="PyBlockExprColon">
+            <item>if</item>
+            <item>elif</item>
+            <item>for</item>
+            <item>while</item>
+            <item>with</item>
+            <item>except</item>
+            <item>def</item>
+            <item>class</item>
+            <item>async</item>
+            <item>match</item>
+            <item>case</item>
+        </list>
+        <!--  python block openers followed by a colon  -->
+        <list name="PyBlockColonOnly">
+            <item>else</item>
+            <item>try</item>
+            <item>finally</item>
+        </list>
+        <contexts>
+            <!-- Base context -->
+            <context name="TopLevel" attribute="Normal Text" lineEndContext="#stay">
+                <!-- catching block openers `word:` and switching to contexts -->
+                <RegExpr attribute="Block Opener" String="\b(?:rule|checkpoint)\b" context="SmkRuleHeader"/>
+                <RegExpr attribute="Block Opener" String="\buse rule\b" context="SmkUseRuleHeader"/>
+                <RegExpr attribute="Block Opener" String="\bmodule\b" context="SmkModuleHeader"/>
+                <RegExpr attribute="Block Opener" String="\bsubworkflow\b" context="SmkSubworkflowHeader"/>
+                <keyword attribute="Block Opener" String="SmkBlockColonOnly" firstNonSpace="true" context="SmkWaitColon"/>
+                <keyword attribute="Block Opener" String="SmkBlockNameColon" firstNonSpace="true" context="SmkWaitNameThenColon"/>
+                <keyword attribute="Block Opener" String="PyBlockColonOnly" firstNonSpace="true" context="PyWaitColon"/>
+                <keyword attribute="Block Opener" String="PyBlockExprColon" firstNonSpace="true" context="PyWaitExprThenColon"/>
+                <!-- a block opener (`word:`) not catched before is not allowed -->
+                <RegExpr String="[a-zA-Z_][a-zA-Z0-9_]*:" attribute="Error" firstNonSpace="true"/>
+                <!-- Python is possible at top-level -->
+                <IncludeRules context="PyInline"/>
+            </context>
+            <!--  rule :  -->
+            <context name="SmkRuleHeader" attribute="Normal Text" lineEndContext="#stay">
+                <!--   must be followed by the rule name  -->
+                <DetectIdentifier attribute="Rule Name"/>
+                <DetectSpaces/>
+                <DetectChar char=":" attribute="Normal Text" context="#pop!SmkRuleBody"/>
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <!--  use rule <rulename> as <alias> with:  -->
+            <context name="SmkUseRuleHeader" attribute="Normal Text" lineEndContext="#stay">
+                <WordDetect String="as" attribute="RuleHeaderKeyword" />
+                <WordDetect String="with" attribute="RuleHeaderKeyword" />
+                <RegExpr attribute="Rule Name" String="[A-Za-z_]\w*(?!\s*:)" />
+                <DetectSpaces/>
+                <DetectChar char=":" attribute="Normal Text" context="#pop!SmkRuleBody"/>
+            </context>
+            <context name="SmkModuleHeader" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces/>
+                <DetectIdentifier attribute="Rule Name"/>
+                <DetectChar char=":" attribute="Normal Text" context="#pop!SmkModuleBody"/>
+            </context>
+            <context name="SmkSubworkflowHeader" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces/>
+                <DetectIdentifier attribute="Rule Name"/>
+                <DetectChar char=":" attribute="Normal Text" context="#pop!SmkSubworkflowBody"/>
+            </context>
+            <context name="SmkModuleBody" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr String="^\S" column="0" lookAhead="true" context="#pop"/>
+                <DetectChar attribute="Comment" char="#" context="CommentLine"/>
+                <DetectSpaces/>
+                <RegExpr attribute="SmkDirective" String="\b(?:snakefile|config|replace_rule|skip_rule|skip_keyword)\b" context="SmkDirectiveBody"/>
+                <RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/>
+                <RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/>
+            </context>
+            <context name="SmkSubworkflowBody" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr String="^\S" column="0" lookAhead="true" context="#pop"/>
+                <DetectChar attribute="Comment" char="#" context="CommentLine"/>
+                <DetectSpaces/>
+                <RegExpr attribute="SmkDirective" String="\b(?:snakefile|workdir|configfile)\b" context="SmkDirectiveBody"/>
+                <RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/>
+                <RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/>
+            </context>
+            <context name="SmkWaitColon" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" char=":" context="#pop"/>
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <context name="PyWaitColon" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" char=":" context="#pop!ErrorBadBlock"/>
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <context name="SmkWaitNameThenColon" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces/>
+                <DetectIdentifier attribute="Rule Name" />
+                <DetectChar attribute="Normal Text" char=":" context="#pop!ErrorBadBlock"/>
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <context name="PyWaitExprThenColon" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" char=":" context="#pop!ErrorBadBlock"/>
+                <IncludeRules context="PyInline" />
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <context name="ErrorBadBlock" attribute="Error" lineEndContext="#pop">
+                <DetectSpaces attribute="Normal Text"/>
+                <DetectChar char="#" lookAhead="true" context="#pop"/>
+            </context>
+            <context name="PyCommonOperators" attribute="Operator">
+                <!-- 3 chars -->
+                <StringDetect String="&lt;&lt;=" attribute="Operator"/>
+                <StringDetect String="&gt;&gt;=" attribute="Operator"/>
+                <StringDetect String="**="     attribute="Operator"/>
+                <StringDetect String="//="     attribute="Operator"/>
+
+                <!-- 2 chars -->
+                <Detect2Chars char=":"  char1="=" attribute="Operator"/>   <!-- := walrus -->
+                <Detect2Chars char="-"  char1="&gt;" attribute="Operator"/> <!-- -> annotations -->
+                <Detect2Chars char="&lt;" char1="=" attribute="Operator"/> <!-- <= -->
+                <Detect2Chars char="&gt;" char1="=" attribute="Operator"/> <!-- >= -->
+                <Detect2Chars char="="  char1="=" attribute="Operator"/>   <!-- == -->
+                <Detect2Chars char="!"  char1="=" attribute="Operator"/>   <!-- != -->
+                <Detect2Chars char="&lt;" char1="&lt;" attribute="Operator"/> <!-- << -->
+                <Detect2Chars char="&gt;" char1="&gt;" attribute="Operator"/> <!-- >> -->
+                <Detect2Chars char="*"  char1="*" attribute="Operator"/>   <!-- ** -->
+                <Detect2Chars char="/"  char1="/" attribute="Operator"/>   <!-- // -->
+                <Detect2Chars char="+"  char1="=" attribute="Operator"/>   <!-- += -->
+                <Detect2Chars char="-"  char1="=" attribute="Operator"/>   <!-- -= -->
+                <Detect2Chars char="*"  char1="=" attribute="Operator"/>   <!-- *= -->
+                <Detect2Chars char="/"  char1="=" attribute="Operator"/>   <!-- /= -->
+                <Detect2Chars char="%"  char1="=" attribute="Operator"/>   <!-- %= -->
+                <Detect2Chars char="&amp;" char1="=" attribute="Operator"/> <!-- &= -->
+                <Detect2Chars char="|"  char1="=" attribute="Operator"/>   <!-- |= -->
+                <Detect2Chars char="^"  char1="=" attribute="Operator"/>   <!-- ^= -->
+                <Detect2Chars char="@"  char1="=" attribute="Operator"/>   <!-- @= -->
+
+                <!-- 1 char -->
+                <AnyChar String="+-*/%&amp;|^~&lt;&gt;=@" />
+            </context>
+            <!-- Python inline expressions -->
+            <context name="PyInline" attribute="Normal Text" lineEndContext="#pop">
+                <IncludeRules context="PyCommonOperators"/>
+                <AnyChar String="()[]{},.:" attribute="Operator"/>
+                <IncludeRules context="StringVariantsStart"/>
+                <keyword attribute="Python Keyword" String="PyKeywordAll"/>
+                <keyword String="PyLiterals" attribute="Constant"/>
+                <RegExpr attribute="Python Function" String="\b[A-Za-z_]\w*(?=\s*\()"/>
+                <DetectIdentifier attribute="Variable"/>
+                <Float attribute="Number"/>
+                <Int attribute="Number"/>
+                <DetectChar attribute="Comment" char="#" context="CommentLine"/>
+            </context>
+            <context name="SmkRuleBody" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop" fallthroughContext="#pop">
+                <RegExpr String="^\S" column="0" lookAhead="true" context="#pop"/>
+                <DetectSpaces/>
+                <StringDetect attribute="Documentation" firstNonSpace="true"
+                              String="&quot;&quot;&quot;" context="RuleDocDq"/>
+                <StringDetect attribute="Documentation" firstNonSpace="true"
+                              String="'''" context="RuleDocSq"/>
+                <DetectChar attribute="Comment" char="#" context="CommentLine"/>
+                <StringDetect attribute="SmkDirective" String="run:" context="SmkRunBlock"/>
+                <keyword attribute="SmkDirective" String="SmkDirective" context="SmkWaitColonAfterDirective" firstNonSpace="true"/>
+                <keyword attribute="SmkDirective" String="PyBlockColonOnly" context="#pop" lookAhead="true" firstNonSpace="true"/>
+                <keyword attribute="SmkDirective" String="PyBlockExprColon" context="#pop" lookAhead="true" firstNonSpace="true"/>
+                <!--  wrong `keyword:` is not allowed, but prentending to go to Directive body not to break the flow  -->
+                <RegExpr String="[A-Za-z_]\w*\s*:" attribute="Error" context="SmkDirectiveBody"/>
+                <!-- any other text should be considered as error and we should stay in RuleBody -->
+                <RegExpr String="[A-Za-z_]\w*\s*" attribute="Error" context="ErrorBadBlock"/>
+            </context>
+            <context name="RuleDocDq" attribute="Documentation" lineEndContext="#stay">
+                <StringDetect attribute="Documentation" String="&quot;&quot;&quot;" context="#pop"/>
+            </context>
+            <context name="RuleDocSq" attribute="Documentation" lineEndContext="#stay">
+                <StringDetect attribute="Documentation" String="'''" context="#pop"/>
+            </context>
+            <context name="SmkWaitColonAfterDirective" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" char=":" context="#pop!SmkDirectiveBody"/>
+                <RegExpr String="\S.*" attribute="Error" context="#pop!ErrorBadBlock"/>
+            </context>
+            <context name="SmkDirectiveBody" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop" fallthroughContext="#pop">
+                <RegExpr String="^\S" column="0" lookAhead="true" context="#pop"/>
+                <RegExpr attribute="RuleHeaderKeyword" String="(?:rule|checkpoint|use rule)\b" firstNonSpace="true" lookAhead="true" context="#pop#pop"/>
+                <RegExpr attribute="SmkDirective" String="[A-Za-z_]\w*\s*:"  lookAhead="true" context="#pop" firstNonSpace="true"/>
+                <DetectSpaces/>
+                <DetectChar attribute="Comment" char="#" context="CommentLine"/>
+                <!-- Python -->
+                <IncludeRules context="PyInline"/>
+            </context>
+            <context name="SmkRunBlock" attribute="Normal Text" lineEmptyContext="#pop" fallthroughContext="#pop">
+                <RegExpr String="^\S" column="0" lookAhead="true" context="#pop"/>
+                <!--  do not exit if python keyword     -->
+                <keyword attribute="Python Keyword" String="PyBlockColonOnly"/>
+                <keyword attribute="Python Keyword" String="PyBlockExprColon"/>
+                <!--  but exit if other `word:`     -->
+                <RegExpr attribute="RuleHeaderKeyword" String="(?:rule|checkpoint|use rule)\b" firstNonSpace="true" lookAhead="true" context="#pop#pop"/>
+                <RegExpr attribute="SmkDirective" String="[A-Za-z_]\w*\s*:"  lookAhead="true" context="#pop" firstNonSpace="true"/>
+                <DetectSpaces/>
+                <IncludeRules context="PyInline"/>
+            </context>
+            <context name="StringEscapes" attribute="EscapeCharacter" lineEndContext="#stay">
+                <!-- Escapes Python (spécifiques) + fallback, fusionnés pour satisfaire le validateur -->
+                <RegExpr attribute="EscapeCharacter" String="\\(?:[abfnrtv\\&quot;']|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{[^}]+\}|\r?\n|.)"/>
+            </context>
+            <context name="FStringInterpolation" attribute="Normal Text">
+                <RegExpr attribute="SmkPlaceholder"
+                         String="\{\{(?:params|input|output|resources|wildcards|config|threads|workflow|log|group|rule)(?:\.[A-Za-z_][A-Za-z0-9_]*)*(?:\[[^{}\[\]]+\])*\}\}"/>
+                <!-- Escaped {{wildcards}}  -->
+                <RegExpr attribute="SmkWildcard" String="\{\{[A-Za-z_][A-Za-z0-9_]*(?:,[^{}]+)?\}\}"/>
+                <!-- Double brackets {{ / }}  -->
+                <Detect2Chars char="{" char1="{" attribute="Escape"/>
+                <Detect2Chars char="}" char1="}" attribute="Escape"/>
+                <DetectChar char="{" attribute="FStringDelimiter" context="FStringExpr"/>
+            </context>
+            <context name="FStringExpr" attribute="FStringExpr" lineEndContext="#stay">
+                <DetectChar char="}" attribute="FStringDelimiter" context="#pop"/>
+                <IncludeRules context="PyInline"/>
+            </context>
+            <context name="StringInterpolation" attribute="Normal Text">
+                <RegExpr attribute="SmkPlaceholder"
+                         String="\{(?:params|input|output|resources|wildcards|config|threads|workflow|log|group|rule)(?:\.[A-Za-z_][A-Za-z0-9_]*)*(?:\[[^{}\[\]]+\])*\}"/>
+                <RegExpr attribute="SmkWildcard" String="\{[A-Za-z_][A-Za-z0-9_]*(?:,[^{}]+)?\}" />
+            </context>
+            <!-- String variants handling -->
+            <context name="StringVariantsStart" attribute="String" lineEndContext="#stay">
+                <!-- f-strings -->
+                <StringDetect attribute="String" String="f&quot;&quot;&quot;" context="FTripleDoubleQuoteString"/>
+                <StringDetect attribute="String" String="f'''"                context="FTripleSingleQuoteString"/>
+                <Detect2Chars attribute="String" char="f" char1="&quot;"      context="FDoubleQuoteString"/>
+                <Detect2Chars attribute="String" char="f" char1="'"           context="FSingleQuoteString"/>
+
+                <!-- r strings -->
+                <StringDetect attribute="String" String="r&quot;&quot;&quot;" context="RTripleDoubleQuoteString"/>
+                <StringDetect attribute="String" String="r'''"                context="RTripleSingleQuoteString"/>
+                <Detect2Chars attribute="String" char="r" char1="&quot;"      context="RDoubleQuoteString"/>
+                <Detect2Chars attribute="String" char="r" char1="'"           context="RSingleQuoteString"/>
+
+                <!-- non-f strings -->
+                <StringDetect attribute="String" String="&quot;&quot;&quot;"   context="TripleDoubleQuoteString"/>
+                <StringDetect attribute="String" String="'''"                  context="TripleSingleQuoteString"/>
+                <DetectChar   attribute="String" char="&quot;"                 context="DoubleQuoteString"/>
+                <DetectChar   attribute="String" char="'"                      context="SingleQuoteString"/>
+            </context>
+
+            <!-- F Multi-line strings -->
+            <context name="FTripleSingleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="FStringInterpolation"/>
+                <StringDetect attribute="String" String="'''" context="#pop"/>
+            </context>
+            <context name="FTripleDoubleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="FStringInterpolation"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop"/>
+            </context>
+            <!-- F Single-line strings -->
+            <context name="FSingleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="FStringInterpolation"/>
+                <DetectChar attribute="String" char="'" context="#pop"/>
+            </context>
+            <context name="FDoubleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="FStringInterpolation"/>
+                <DetectChar attribute="String" char="&quot;" context="#pop"/>
+            </context>
+
+            <!-- R (raw) strings will be passed to snakemake that will proceed placeholder replacement  -->
+
+            <!-- R Multi-line strings -->
+            <context name="RTripleSingleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringInterpolation"/>
+                <StringDetect attribute="String" String="'''" context="#pop"/>
+            </context>
+            <context name="RTripleDoubleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringInterpolation"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop"/>
+            </context>
+            <!-- R Single-line strings -->
+            <context name="RSingleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringInterpolation"/>
+                <DetectChar attribute="String" char="'" context="#pop"/>
+            </context>
+            <context name="RDoubleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringInterpolation"/>
+                <DetectChar attribute="String" char="&quot;" context="#pop"/>
+            </context>
+
+
+
+            <!-- Multi-line strings -->
+            <context name="TripleSingleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="StringInterpolation"/>
+                <StringDetect attribute="String" String="'''" context="#pop"/>
+            </context>
+            <context name="TripleDoubleQuoteString" attribute="String" lineEndContext="#stay">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="StringInterpolation"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop"/>
+            </context>
+            <!-- Single-line strings -->
+            <context name="SingleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="StringInterpolation"/>
+                <DetectChar attribute="String" char="'" context="#pop"/>
+            </context>
+            <context name="DoubleQuoteString" attribute="String" lineEndContext="#pop">
+                <IncludeRules context="StringEscapes"/>
+                <IncludeRules context="StringInterpolation"/>
+                <DetectChar attribute="String" char="&quot;" context="#pop"/>
+            </context>
+            <!-- Comments context -->
+            <context name="CommentLine" attribute="Comment" lineEndContext="#pop">
+            </context>
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Block Opener" defStyleNum="dsControlFlow" spellChecking="false"/>
+            <itemData name="RuleHeaderKeyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="SmkDirective" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Python Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Constant" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Rule Name" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="EscapeCharacter" defStyleNum="dsChar" spellChecking="false"/>
+            <itemData name="SmkWildcard"         defStyleNum="dsPreprocessor"/>
+            <itemData name="SmkPlaceholder"        defStyleNum="dsExtension"/>
+            <itemData name="FStringDelimiter"   defStyleNum="dsSpecialChar"/>
+            <itemData name="FStringExpr"            defStyleNum="dsExtension"/>
+            <itemData name="Escape"           defStyleNum="dsSpecialChar"/>
+            <itemData name="Python Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+            <itemData name="Documentation" defStyleNum="dsDocumentation"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <folding indentationsensitive="1"/>
+        <comments>
+            <comment name="singleLine" start="#" position="afterwhitespace"/>
+        </comments>
+        <keywords casesensitive="1" additionalDeliminator="#'"/>
+    </general>
+</language>
diff -pruN 6.18.0-1/data/syntax/sparql.xml 6.19.0-0ubuntu1/data/syntax/sparql.xml
--- 6.18.0-1/data/syntax/sparql.xml	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/sparql.xml	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="SPARQL" section="Database" version="1" kateversion="5.0"
+    extensions="*.rq;*.sparql"
+    mimetype="application/sparql-query"
+    author="Damian Oswald (damian.oswald@protonmail.com)"
+    license="MIT">
+  <highlighting>
+    <list name="keywords">
+      <item>ADD</item>
+      <item>AS</item>
+      <item>ASC</item>
+      <item>ASK</item>
+      <item>BASE</item>
+      <item>BIND</item>
+      <item>BY</item>
+      <item>CLEAR</item>
+      <item>CONSTRUCT</item>
+      <item>COPY</item>
+      <item>CREATE</item>
+      <item>DATA</item>
+      <item>DEFAULT</item>
+      <item>DELETE</item>
+      <item>DESC</item>
+      <item>DESCRIBE</item>
+      <item>DISTINCT</item>
+      <item>DROP</item>
+      <item>EXISTS</item>
+      <item>FILTER</item>
+      <item>FROM</item>
+      <item>GRAPH</item>
+      <item>GROUP</item>
+      <item>HAVING</item>
+      <item>IN</item>
+      <item>INSERT</item>
+      <item>INTO</item>
+      <item>LIMIT</item>
+      <item>LOAD</item>
+      <item>MINUS</item>
+      <item>MOVE</item>
+      <item>NAMED</item>
+      <item>NOT</item>
+      <item>OFFSET</item>
+      <item>OPTIONAL</item>
+      <item>ORDER</item>
+      <item>PREFIX</item>
+      <item>REDUCED</item>
+      <item>SELECT</item>
+      <item>SERVICE</item>
+      <item>SILENT</item>
+      <item>TO</item>
+      <item>UNDEF</item>
+      <item>UNION</item>
+      <item>USING</item>
+      <item>VALUES</item>
+      <item>WHERE</item>
+      <item>WITH</item>
+    </list>
+    <list name="functions">
+      <item>ABS</item>
+      <item>BNODE</item>
+      <item>BOUND</item>
+      <item>CEIL</item>
+      <item>COALESCE</item>
+      <item>CONCAT</item>
+      <item>CONTAINS</item>
+      <item>DATATYPE</item>
+      <item>DAY</item>
+      <item>ENCODE_FOR_URI</item>
+      <item>FLOOR</item>
+      <item>HOURS</item>
+      <item>IF</item>
+      <item>IRI</item>
+      <item>ISBLANK</item>
+      <item>ISIRI</item>
+      <item>ISLITERAL</item>
+      <item>ISNUMERIC</item>
+      <item>ISURI</item>
+      <item>LANG</item>
+      <item>LANGMATCHES</item>
+      <item>LCASE</item>
+      <item>MD5</item>
+      <item>MINUTES</item>
+      <item>MONTH</item>
+      <item>NOW</item>
+      <item>RAND</item>
+      <item>REGEX</item>
+      <item>REPLACE</item>
+      <item>ROUND</item>
+      <item>SAMETERM</item>
+      <item>SECONDS</item>
+      <item>SHA1</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA512</item>
+      <item>STR</item>
+      <item>STRAFTER</item>
+      <item>STRBEFORE</item>
+      <item>STRDT</item>
+      <item>STRENDS</item>
+      <item>STRLANG</item>
+      <item>STRLEN</item>
+      <item>STRSTARTS</item>
+      <item>STRUUID</item>
+      <item>SUBSTR</item>
+      <item>TIMEZONE</item>
+      <item>TZ</item>
+      <item>UCASE</item>
+      <item>URI</item>
+      <item>UUID</item>
+      <item>YEAR</item>
+    </list>
+    <list name="aggregates">
+      <item>AVG</item>
+      <item>COUNT</item>
+      <item>GROUP_CONCAT</item>
+      <item>MAX</item>
+      <item>MIN</item>
+      <item>SAMPLE</item>
+      <item>SUM</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="Singleline Comment" char="#"/>
+        <RangeDetect attribute="IRI" context="#stay" char="&lt;" char1="&gt;"/>
+        <StringDetect attribute="String" context="StringTSS" String="'''"/>
+        <StringDetect attribute="String" context="StringTDS" String="&quot;&quot;&quot;"/>
+        <DetectChar attribute="String" context="StringS" char="'"/>
+        <DetectChar attribute="String" context="StringD" char="&quot;"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <StringDetect attribute="Variable" context="#stay" String="[\?\$]\w+"/>
+        <keyword attribute="Keyword" String="keywords" context="#stay" insensitive="true"/>
+        <keyword attribute="Function" String="functions" context="#stay" insensitive="true"/>
+        <keyword attribute="Function" String="aggregates" context="#stay" insensitive="true"/>
+        <Detect2Chars attribute="Operator" context="#stay" char="&amp;" char1="&amp;"/>
+        <Detect2Chars attribute="Operator" context="#stay" char="|" char1="|"/>
+        <Detect2Chars attribute="Operator" context="#stay" char="!" char1="="/>
+        <Detect2Chars attribute="Operator" context="#stay" char="&lt;" char1="="/>
+        <Detect2Chars attribute="Operator" context="#stay" char="&gt;" char1="="/>
+        <Detect2Chars attribute="Operator" context="#stay" char="^" char1="^"/>
+        <AnyChar attribute="Operator" context="#stay" String="*+-/=!&lt;&gt;()[]{},;.|^"/>
+        <StringDetect attribute="Boolean" context="#stay" String="\b(true|false)\b" insensitive="true"/>
+        <StringDetect attribute="Prefixed Name" context="#stay" String="\b[a-zA-Z0-9_.-]*:[a-zA-Z0-9_.-]+"/>
+        <StringDetect attribute="Blank Node" context="#stay" String="_:[a-zA-Z0-9_.-]+"/>
+        <StringDetect attribute="LangTag" context="#stay" String="@[a-zA-Z]+(-[a-zA-Z0-9]+)*"/>
+      </context>
+      <context name="StringS" attribute="String" lineEndContext="#stay">
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+      <context name="StringD" attribute="String" lineEndContext="#stay">
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context name="StringTSS" attribute="String" lineEndContext="#stay">
+        <StringDetect attribute="String" context="#pop" String="'''"/>
+      </context>
+      <context name="StringTDS" attribute="String" lineEndContext="#stay">
+        <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;"/>
+      </context>
+      <context name="Singleline Comment" attribute="Comment" lineEndContext="#pop">
+        <IncludeRules context="##Comments"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"   defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"       defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Function"      defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Decimal"       defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Hex"           defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"         defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="String"        defStyleNum="dsString"/>
+      <itemData name="String Char"   defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Comment"       defStyleNum="dsComment"/>
+      <itemData name="Operator"      defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Variable"      defStyleNum="dsOthers" spellChecking="false" bold="1"/>
+      <itemData name="IRI"           defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Prefixed Name" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Blank Node"    defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="LangTag"       defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Boolean"       defStyleNum="dsConstant" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="0" />
+  </general>
+</language>
\ No newline at end of file
diff -pruN 6.18.0-1/data/syntax/systemd-unit.xml 6.19.0-0ubuntu1/data/syntax/systemd-unit.xml
--- 6.18.0-1/data/syntax/systemd-unit.xml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/systemd-unit.xml	2025-10-05 12:41:31.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Created for systemd version 257. -->
+<!-- Created for systemd version 258. -->
 <!DOCTYPE language [
 <!ENTITY alp "A-Za-z">
 <!ENTITY aln "&alp;0-9">
@@ -18,12 +18,11 @@
 <!ENTITY tsp_min "minutes?|min|m">
 <!ENTITY tsp_sec "seconds?|sec|s">
 <!ENTITY tsp_msec "msec|ms">
-<!-- Accept both UTF-8 "Micro Sign" and UTF-8 "Greek Small Letter Mu" for micro seconds. -->
-<!ENTITY tsp_usec "usec|[u&#181;&#956;]s">
+<!-- Accept both UTF-8 "Micro Sign" and UTF-8 "Greek Small Letter Mu" for micro seconds. --><!ENTITY tsp_usec "usec|[u&#181;&#956;]s">
 <!ENTITY tsp_unit "&tsp_year;|&tsp_month;|&tsp_week;|&tsp_day;|&tsp_hour;|&tsp_sec;|&tsp_msec;|&tsp_usec;|&tsp_min;">
 <!ENTITY tsp "\d+(?:\.\d+)?\h*(?=(&tsp_unit;)?)">
 ]>
-<language version="17" author="Andreas Gratzer" extensions="*.automount;*.device;*.mount;*.path;*.service;*.slice;*.socket;*.swap;*.target;*.timer" kateversion="5.0" license="MIT" mimetype="text/x-systemd-unit" name="systemd unit" section="Configuration">
+<language version="18" author="Andreas Gratzer" extensions="*.automount;*.device;*.mount;*.path;*.service;*.slice;*.socket;*.swap;*.target;*.timer" kateversion="5.0" license="MIT" mimetype="text/x-systemd-unit" name="systemd unit" section="Configuration">
   <highlighting>
     <list name="boolean">
       <!-- 0, 1, t, f, y, n are also valid, but handled using AnyChar. -->
@@ -136,6 +135,176 @@
       <item>arc</item>
       <item>alpha</item>
     </list>
+    <list name="bpf delegate attachment">
+      <item>BPFXdpDevmap</item>
+      <item>BPFXdpCpumap</item>
+      <item>BPFXdp</item>
+      <item>BPFTraceUprobeSession</item>
+      <item>BPFTraceUprobeMulti</item>
+      <item>BPFTraceRawTp</item>
+      <item>BPFTraceKprobeSession</item>
+      <item>BPFTraceKprobeMulti</item>
+      <item>BPFTraceIter</item>
+      <item>BPFTraceFexit</item>
+      <item>BPFTraceFentry</item>
+      <item>BPFTcxIngress</item>
+      <item>BPFTcxEgress</item>
+      <item>BPFStructOps</item>
+      <item>BPFSkSkbVerdict</item>
+      <item>BPFSkSkbStreamVerdict</item>
+      <item>BPFSkSkbStreamParser</item>
+      <item>BPFSkReuseportSelectOrMigrate</item>
+      <item>BPFSkReuseportSelect</item>
+      <item>BPFSkMsgVerdict</item>
+      <item>BPFSkLookup</item>
+      <item>BPFPerfEvent</item>
+      <item>BPFNetkitPrimary</item>
+      <item>BPFNetkitPeer</item>
+      <item>BPFNetfilter</item>
+      <item>BPFModifyReturn</item>
+      <item>BPFLsmMac</item>
+      <item>BPFLsmCgroup</item>
+      <item>BPFLircMode2</item>
+      <item>BPFFlowDissector</item>
+      <item>BPFCgroupUnixSendmsg</item>
+      <item>BPFCgroupUnixRecvmsg</item>
+      <item>BPFCgroupUnixGetsockname</item>
+      <item>BPFCgroupUnixGetpeername</item>
+      <item>BPFCgroupUnixConnect</item>
+      <item>BPFCgroupUdp6Sendmsg</item>
+      <item>BPFCgroupUdp6Recvmsg</item>
+      <item>BPFCgroupUdp4Sendmsg</item>
+      <item>BPFCgroupUdp4Recvmsg</item>
+      <item>BPFCgroupSysctl</item>
+      <item>BPFCgroupSockOps</item>
+      <item>BPFCgroupSetsockopt</item>
+      <item>BPFCgroupInetSockRelease</item>
+      <item>BPFCgroupInetSockCreate</item>
+      <item>BPFCgroupInetIngress</item>
+      <item>BPFCgroupInetEgress</item>
+      <item>BPFCgroupInet6PostBind</item>
+      <item>BPFCgroupInet6Getsockname</item>
+      <item>BPFCgroupInet6Getpeername</item>
+      <item>BPFCgroupInet6Connect</item>
+      <item>BPFCgroupInet6Bind</item>
+      <item>BPFCgroupInet4PostBind</item>
+      <item>BPFCgroupInet4Getsockname</item>
+      <item>BPFCgroupInet4Getpeername</item>
+      <item>BPFCgroupInet4Connect</item>
+      <item>BPFCgroupInet4Bind</item>
+      <item>BPFCgroupGetsockopt</item>
+      <item>BPFCgroupDevice</item>
+    </list>
+    <list name="bpf delegate command">
+      <item>BPFTokenCreate</item>
+      <item>BPFTaskFdQuery</item>
+      <item>BPFRawTracepointOpen</item>
+      <item>BPFProgTestRun</item>
+      <item>BPFProgStreamReadByFd</item>
+      <item>BPFProgQuery</item>
+      <item>BPFProgLoad</item>
+      <item>BPFProgGetNextId</item>
+      <item>BPFProgGetFdById</item>
+      <item>BPFProgDetach</item>
+      <item>BPFProgBindMap</item>
+      <item>BPFProgAttach</item>
+      <item>BPFObjPin</item>
+      <item>BPFObjGetInfoByFd</item>
+      <item>BPFObjGet</item>
+      <item>BPFMapUpdateElem</item>
+      <item>BPFMapUpdateBatch</item>
+      <item>BPFMapLookupElem</item>
+      <item>BPFMapLookupBatch</item>
+      <item>BPFMapLookupAndDeleteElem</item>
+      <item>BPFMapLookupAndDeleteBatch</item>
+      <item>BPFMapGetNextKey</item>
+      <item>BPFMapGetNextId</item>
+      <item>BPFMapGetFdById</item>
+      <item>BPFMapFreeze</item>
+      <item>BPFMapDeleteElem</item>
+      <item>BPFMapDeleteBatch</item>
+      <item>BPFMapCreate</item>
+      <item>BPFLinkUpdate</item>
+      <item>BPFLinkGetNextId</item>
+      <item>BPFLinkGetFdById</item>
+      <item>BPFLinkDetach</item>
+      <item>BPFLinkCreate</item>
+      <item>BPFIterCreate</item>
+      <item>BPFEnableStats</item>
+      <item>BPFBtfLoad</item>
+      <item>BPFBtfGetNextId</item>
+      <item>BPFBtfGetFdById</item>
+    </list>
+    <list name="bpf delegate map">
+      <item>BPFMapTypeXskmap</item>
+      <item>BPFMapTypeUserRingbuf</item>
+      <item>BPFMapTypeUnspec</item>
+      <item>BPFMapTypeTaskStorage</item>
+      <item>BPFMapTypeStructOps</item>
+      <item>BPFMapTypeStackTrace</item>
+      <item>BPFMapTypeStack</item>
+      <item>BPFMapTypeSockmap</item>
+      <item>BPFMapTypeSockhash</item>
+      <item>BPFMapTypeSkStorage</item>
+      <item>BPFMapTypeRingbuf</item>
+      <item>BPFMapTypeReuseportSockarray</item>
+      <item>BPFMapTypeQueue</item>
+      <item>BPFMapTypeProgArray</item>
+      <item>BPFMapTypePerfEventArray</item>
+      <item>BPFMapTypePercpuHash</item>
+      <item>BPFMapTypePercpuCgroupStorageDeprecated</item>
+      <item>BPFMapTypePercpuArray</item>
+      <item>BPFMapTypeLruPercpuHash</item>
+      <item>BPFMapTypeLruHash</item>
+      <item>BPFMapTypeLpmTrie</item>
+      <item>BPFMapTypeInodeStorage</item>
+      <item>BPFMapTypeHashOfMaps</item>
+      <item>BPFMapTypeHash</item>
+      <item>BPFMapTypeDevmapHash</item>
+      <item>BPFMapTypeDevmap</item>
+      <item>BPFMapTypeCpumap</item>
+      <item>BPFMapTypeCgrpStorage</item>
+      <item>BPFMapTypeCgroupStorageDeprecated</item>
+      <item>BPFMapTypeCgroupArray</item>
+      <item>BPFMapTypeBloomFilter</item>
+      <item>BPFMapTypeArrayOfMaps</item>
+      <item>BPFMapTypeArray</item>
+      <item>BPFMapTypeArena</item>
+    </list>
+    <list name="bpf delegate program">
+      <item>BPFProgTypeXdp</item>
+      <item>BPFProgTypeUnspec</item>
+      <item>BPFProgTypeTracing</item>
+      <item>BPFProgTypeTracepoint</item>
+      <item>BPFProgTypeStructOps</item>
+      <item>BPFProgTypeSocketFilter</item>
+      <item>BPFProgTypeSockOps</item>
+      <item>BPFProgTypeSkSkb</item>
+      <item>BPFProgTypeSkReuseport</item>
+      <item>BPFProgTypeSkMsg</item>
+      <item>BPFProgTypeSkLookup</item>
+      <item>BPFProgTypeSchedCls</item>
+      <item>BPFProgTypeSchedAct</item>
+      <item>BPFProgTypeRawTracepointWritable</item>
+      <item>BPFProgTypeRawTracepoint</item>
+      <item>BPFProgTypePerfEvent</item>
+      <item>BPFProgTypeNetfilter</item>
+      <item>BPFProgTypeLwtXmit</item>
+      <item>BPFProgTypeLwtSeg6local</item>
+      <item>BPFProgTypeLwtOut</item>
+      <item>BPFProgTypeLwtIn</item>
+      <item>BPFProgTypeLsm</item>
+      <item>BPFProgTypeLircMode2</item>
+      <item>BPFProgTypeKprobe</item>
+      <item>BPFProgTypeFlowDissector</item>
+      <item>BPFProgTypeExt</item>
+      <item>BPFProgTypeCgroupSysctl</item>
+      <item>BPFProgTypeCgroupSockopt</item>
+      <item>BPFProgTypeCgroupSockAddr</item>
+      <item>BPFProgTypeCgroupSock</item>
+      <item>BPFProgTypeCgroupSkb</item>
+      <item>BPFProgTypeCgroupDevice</item>
+    </list>
     <list name="bpf program type">
       <item>sysctl</item>
       <item>sock_ops</item>
@@ -218,13 +387,13 @@
       <item>pids</item>
       <item>memory</item>
       <item>io</item>
-      <item>devices</item>
       <item>cpuset</item>
-      <item>cpuacct</item>
       <item>cpu</item>
+      <item>bpf-socket-bind</item>
+      <item>bpf-restrict-network-interfaces</item>
+      <item>bpf-foreign</item>
       <item>bpf-firewall</item>
       <item>bpf-devices</item>
-      <item>blkio</item>
     </list>
     <list name="controller cg">
       <item>v2</item>
@@ -525,7 +694,6 @@
       <item>udf</item>
       <item>tracefs</item>
       <item>tmpfs</item>
-      <item>reiserfs</item>
       <item>proc</item>
       <item>overlay</item>
       <item>ocfs2</item>
@@ -579,6 +747,7 @@
     <list name="job mode">
       <item>replace-irreversibly</item>
       <item>replace</item>
+      <item>lenient</item>
       <item>isolate</item>
       <item>ignore-requirements</item>
       <item>ignore-dependencies</item>
@@ -653,6 +822,7 @@
     <list name="namespace type">
       <item>uts</item>
       <item>user</item>
+      <item>time</item>
       <item>pid</item>
       <item>net</item>
       <item>mnt</item>
@@ -725,6 +895,7 @@
     <list name="private users">
       <item>self</item>
       <item>identity</item>
+      <item>full</item>
     </list>
     <list name="proc subset">
       <item>pid</item>
@@ -1034,7 +1205,10 @@
     <list name="options unit">
       <!-- Only options of type "text". Others are handled separately. -->
       <item>AssertCredential</item>
+      <item>AssertKernelModuleLoaded</item>
+      <item>AssertVersion</item>
       <item>ConditionCredential</item>
+      <item>ConditionKernelModuleLoaded</item>
       <item>Description</item>
       <item>Documentation</item>
       <item>JobTimeoutRebootArgument</item>
@@ -1198,6 +1372,22 @@
         <IncludeRules context="boolean"/>
         <IncludeRules context="virtualization"/>
       </context>
+      <context name="bpf delegate attachments" attribute="Normal" lineEndContext="#pop">
+        <keyword String="bpf delegate attachment" attribute="Constant"/>
+        <IncludeRules context="list"/>
+      </context>
+      <context name="bpf delegate commands" attribute="Normal" lineEndContext="#pop">
+        <keyword String="bpf delegate command" attribute="Constant"/>
+        <IncludeRules context="list"/>
+      </context>
+      <context name="bpf delegate maps" attribute="Normal" lineEndContext="#pop">
+        <keyword String="bpf delegate map" attribute="Constant"/>
+        <IncludeRules context="list"/>
+      </context>
+      <context name="bpf delegate programs" attribute="Normal" lineEndContext="#pop">
+        <keyword String="bpf delegate program" attribute="Constant"/>
+        <IncludeRules context="list"/>
+      </context>
       <context name="bpf program" attribute="Normal" lineEndContext="#pop">
         <keyword String="bpf program type" attribute="Constant"/>
       </context>
@@ -1237,9 +1427,17 @@
         <IncludeRules context="infinity"/>
       </context>
       <context name="cardinal %KMGT infinity" attribute="Normal" lineEndContext="#pop">
-        <RegExpr String="\b[1-9]\d*\h*(?=([KMGT%])?)" attribute="Number" context="#pop!measurement unit"/>
+        <IncludeRules context="cardinal %KMGT"/>
         <IncludeRules context="infinity"/>
       </context>
+      <context name="cardinal %KMGT off" attribute="Normal" lineEndContext="#pop">
+        <IncludeRules context="cardinal %KMGT"/>
+        <WordDetect String="off" attribute="Constant" context="#pop"/>
+      </context>
+      <context name="cardinal %KMGT" attribute="Normal" lineEndContext="#pop">
+        <RegExpr String="\b[1-9]\d*\h*(?=([KMGT%])?)" attribute="Number" context="#pop!measurement unit"/>
+        <LineContinue attribute="Continuation"/>
+      </context>
       <context name="cardinal KMGT" attribute="Normal" lineEndContext="#pop">
         <RegExpr String="\b[1-9]\d*\h*(?=([KMGT])?)" attribute="Number" context="#pop!measurement unit"/>
         <LineContinue attribute="Continuation"/>
@@ -1283,6 +1481,10 @@
         <WordDetect String="idle" attribute="Constant" context="#pop"/>
         <IncludeRules context="weight"/>
       </context>
+      <context name="defer trigger" attribute="Normal" lineEndContext="#pop">
+        <WordDetect String="patient" attribute="Constant" context="#pop"/>
+        <IncludeRules context="boolean"/>
+      </context>
       <context name="delegate" attribute="Normal" lineEndContext="#pop">
         <IncludeRules context="boolean"/>
         <IncludeRules context="controller list"/>
@@ -1304,15 +1506,14 @@
       <context name="exec command" attribute="Normal" lineEndContext="#pop">
         <DetectChar char="," context="#pop!exec prefix"/>
         <!-- Escapes (not exactly the same as detected by HlCStringChar). -->
-        <RegExpr String="\\(?:[&quot;'\abfnrstv]|[0-7]{3}|u[&hex;]{4}|U[&hex;]{8}|x[&hex;]{2})" attribute="Escape"/>
+        <RegExpr String="\\(?:[&quot;'\\abfnrstv]|[0-7]{3}|u[&hex;]{4}|U[&hex;]{8}|x[&hex;]{2})" attribute="Escape"/>
         <!-- Environment variable as a separate word. | Environment variable within word. -->
         <RegExpr String="(?&lt;=\h)\$\w+(?=\h|,|\\|$)|\${\w+}" attribute="Environment Variable"/>
         <IncludeRules context="text"/>
       </context>
       <context name="exec prefix" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!exec command">
         <DetectSpaces/>
-        <!-- Prefix characters excluding invalid repetitions. -->
-        <RegExpr String="(?:(@|-|:)(?![@\-:+!]*\1)){0,3}(?:\+|!!?)?(?:(@|-|:)(?![@\-:]\2)){0,3}(?=\H)" attribute="Prefix" context="#pop!exec command"/>
+        <RegExpr String="[@|:\-+!]*(?=\H)" attribute="Prefix" context="#pop!exec command"/>
       </context>
       <context name="exit status" attribute="Normal" lineEndContext="#pop">
         <keyword String="exit status" attribute="Constant"/>
@@ -1515,6 +1716,10 @@
         <keyword String="protect home" attribute="Constant" context="#pop"/>
         <IncludeRules context="boolean"/>
       </context>
+      <context name="protect hostname" attribute="Normal" lineEndContext="#pop">
+        <WordDetect String="private" attribute="Constant" context="#pop"/>
+        <IncludeRules context="boolean"/>
+      </context>
       <context name="protect system" attribute="Normal" lineEndContext="#pop">
         <keyword String="protect system" attribute="Constant" context="#pop"/>
         <IncludeRules context="boolean"/>
@@ -1702,6 +1907,10 @@
         <keyword String="options exec" firstNonSpace="true" attribute="Option Name" context="text"/>
         <WordDetect String="AmbientCapabilities" firstNonSpace="true" attribute="Option Name" context="~ capability list"/>
         <WordDetect String="AppArmorProfile" firstNonSpace="true" attribute="Option Name" context="- text"/>
+        <WordDetect String="BPFDelegateAttachments" firstNonSpace="true" attribute="Option Name" context="bpf delegate attachments"/>
+        <WordDetect String="BPFDelegateCommands" firstNonSpace="true" attribute="Option Name" context="bpf delegate commands"/>
+        <WordDetect String="BPFDelegateMaps" firstNonSpace="true" attribute="Option Name" context="bpf delegate maps"/>
+        <WordDetect String="BPFDelegatePrograms" firstNonSpace="true" attribute="Option Name" context="bpf delegate programs"/>
         <WordDetect String="BindLogSockets" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="BindPaths" firstNonSpace="true" attribute="Option Name" context="bind list"/>
         <WordDetect String="BindReadOnlyPaths" firstNonSpace="true" attribute="Option Name" context="bind list"/>
@@ -1709,10 +1918,13 @@
         <WordDetect String="CPUSchedulingPolicy" firstNonSpace="true" attribute="Option Name" context="cpu scheduling policy"/>
         <WordDetect String="CPUSchedulingPriority" firstNonSpace="true" attribute="Option Name" context="cpu scheduling priority"/>
         <WordDetect String="CPUSchedulingResetOnFork" firstNonSpace="true" attribute="Option Name" context="boolean"/>
+        <WordDetect String="CacheDirectoryAccounting" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="CacheDirectoryMode" firstNonSpace="true" attribute="Option Name" context="file mode"/>
+        <WordDetect String="CacheDirectoryQuota" firstNonSpace="true" attribute="Option Name" context="cardinal %KMGT off"/>
         <WordDetect String="CapabilityBoundingSet" firstNonSpace="true" attribute="Option Name" context="~ capability list"/>
         <WordDetect String="ConfigurationDirectoryMode" firstNonSpace="true" attribute="Option Name" context="file mode"/>
         <WordDetect String="CoredumpFilter" firstNonSpace="true" attribute="Option Name" context="memory mapping"/>
+        <WordDetect String="DelegateNamespaces" firstNonSpace="true" attribute="Option Name" context="~ namespace list"/>
         <WordDetect String="DynamicUser" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="Environment" firstNonSpace="true" attribute="Option Name" context="variable assignment"/>
         <WordDetect String="EnvironmentFile" firstNonSpace="true" attribute="Option Name" context="- text"/>
@@ -1744,7 +1956,9 @@
         <WordDetect String="LogLevelMax" firstNonSpace="true" attribute="Option Name" context="log level"/>
         <WordDetect String="LogRateLimitBurst" firstNonSpace="true" attribute="Option Name" context="cardinal"/>
         <WordDetect String="LogRateLimitIntervalSec" firstNonSpace="true" attribute="Option Name" context="time span"/>
+        <WordDetect String="LogsDirectoryAccounting" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="LogsDirectoryMode" firstNonSpace="true" attribute="Option Name" context="file mode"/>
+        <WordDetect String="LogsDirectoryQuota" firstNonSpace="true" attribute="Option Name" context="cardinal %KMGT off"/>
         <WordDetect String="MemoryDenyWriteExecute" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="MemoryKSM" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="MountAPIVFS" firstNonSpace="true" attribute="Option Name" context="boolean"/>
@@ -1756,6 +1970,7 @@
         <WordDetect String="NoNewPrivileges" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="OOMScoreAdjust" firstNonSpace="true" attribute="Option Name" context="oom score adjust"/>
         <WordDetect String="Personality" firstNonSpace="true" attribute="Option Name" context="personality"/>
+        <WordDetect String="PrivateBPF" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PrivateDevices" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PrivateIPC" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PrivateMounts" firstNonSpace="true" attribute="Option Name" context="boolean"/>
@@ -1767,7 +1982,7 @@
         <WordDetect String="ProtectClock" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="ProtectControlGroups" firstNonSpace="true" attribute="Option Name" context="protect control groups"/>
         <WordDetect String="ProtectHome" firstNonSpace="true" attribute="Option Name" context="protect home"/>
-        <WordDetect String="ProtectHostname" firstNonSpace="true" attribute="Option Name" context="boolean"/>
+        <WordDetect String="ProtectHostname" firstNonSpace="true" attribute="Option Name" context="protect hostname"/>
         <WordDetect String="ProtectKernelLogs" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="ProtectKernelModules" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="ProtectKernelTunables" firstNonSpace="true" attribute="Option Name" context="boolean"/>
@@ -1790,7 +2005,9 @@
         <WordDetect String="StandardError" firstNonSpace="true" attribute="Option Name" context="standard output"/>
         <WordDetect String="StandardInput" firstNonSpace="true" attribute="Option Name" context="standard input"/>
         <WordDetect String="StandardOutput" firstNonSpace="true" attribute="Option Name" context="standard output"/>
+        <WordDetect String="StateDirectoryAccounting" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="StateDirectoryMode" firstNonSpace="true" attribute="Option Name" context="file mode"/>
+        <WordDetect String="StateDirectoryQuota" firstNonSpace="true" attribute="Option Name" context="cardinal %KMGT off"/>
         <WordDetect String="SupplementaryGroups" firstNonSpace="true" attribute="Option Name" context="group list"/>
         <WordDetect String="SyslogFacility" firstNonSpace="true" attribute="Option Name" context="log facility"/>
         <WordDetect String="SyslogLevel" firstNonSpace="true" attribute="Option Name" context="log level"/>
@@ -1857,7 +2074,6 @@
         <WordDetect String="AllowedCPUs" firstNonSpace="true" attribute="Option Name" context="cpu index list"/>
         <WordDetect String="AllowedMemoryNodes" firstNonSpace="true" attribute="Option Name" context="cpu index list"/>
         <WordDetect String="BPFProgram" firstNonSpace="true" attribute="Option Name" context="bpf program"/>
-        <WordDetect String="CPUAccounting" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="CPUQuota" firstNonSpace="true" attribute="Option Name" context="percent"/>
         <WordDetect String="CPUQuotaPeriodSec" firstNonSpace="true" attribute="Option Name" context="time span"/>
         <WordDetect String="CPUWeight" firstNonSpace="true" attribute="Option Name" context="cpu weight"/>
@@ -1909,6 +2125,10 @@
         <WordDetect String="TasksAccounting" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="TasksMax" firstNonSpace="true" attribute="Option Name" context="cardinal % infinity"/>
       </context>
+      <context name="options slice" attribute="Normal" lineEndContext="#stay">
+        <WordDetect String="ConcurrencyHardMax" firstNonSpace="true" attribute="Option Name" context="cardinal KMGT infinity"/>
+        <WordDetect String="ConcurrencySoftMax" firstNonSpace="true" attribute="Option Name" context="cardinal KMGT infinity"/>
+      </context>
       <context name="options service" attribute="Normal" lineEndContext="#stay">
         <keyword String="options service" firstNonSpace="true" attribute="Option Name" context="text"/>
         <WordDetect String="ExecCondition" firstNonSpace="true" attribute="Option Name" context="exec"/>
@@ -1952,10 +2172,13 @@
       <context name="options socket" attribute="Normal" lineEndContext="#stay">
         <keyword String="options socket" firstNonSpace="true" attribute="Option Name" context="text"/>
         <WordDetect String="Accept" firstNonSpace="true" attribute="Option Name" context="boolean"/>
+        <WordDetect String="AcceptFileDescriptors" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="Backlog" firstNonSpace="true" attribute="Option Name" context="cardinal"/>
         <WordDetect String="BindIPv6Only" firstNonSpace="true" attribute="Option Name" context="ip bind"/>
         <WordDetect String="Broadcast" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="DeferAcceptSec" firstNonSpace="true" attribute="Option Name" context="time span"/>
+        <WordDetect String="DeferTrigger" firstNonSpace="true" attribute="Option Name" context="defer trigger"/>
+        <WordDetect String="DeferTriggerMaxSec" firstNonSpace="true" attribute="Option Name" context="timeout"/>
         <WordDetect String="DirectoryMode" firstNonSpace="true" attribute="Option Name" context="file mode"/>
         <WordDetect String="ExecStartPost" firstNonSpace="true" attribute="Option Name" context="exec"/>
         <WordDetect String="ExecStartPre" firstNonSpace="true" attribute="Option Name" context="exec"/>
@@ -1977,6 +2200,7 @@
         <WordDetect String="NoDelay" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PassCredentials" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PassFileDescriptorsToExec" firstNonSpace="true" attribute="Option Name" context="boolean"/>
+        <WordDetect String="PassPIDFD" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PassPacketInfo" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PassSecurity" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="PipeSize" firstNonSpace="true" attribute="Option Name" context="cardinal KMGT"/>
@@ -2019,6 +2243,7 @@
         <WordDetect String="OnUnitInactiveSec" firstNonSpace="true" attribute="Option Name" context="time span"/>
         <WordDetect String="Persistent" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="RandomizedDelaySec" firstNonSpace="true" attribute="Option Name" context="time span"/>
+        <WordDetect String="RandomizedOffsetSec" firstNonSpace="true" attribute="Option Name" context="time span"/>
         <WordDetect String="RemainAfterElapse" firstNonSpace="true" attribute="Option Name" context="boolean"/>
         <WordDetect String="Unit" firstNonSpace="true" attribute="Option Name" context="unit"/>
         <WordDetect String="WakeSystem" firstNonSpace="true" attribute="Option Name" context="boolean"/>
@@ -2092,6 +2317,7 @@
         <WordDetect String="ConditionPathIsSymbolicLink" firstNonSpace="true" attribute="Option Name" context="AC text"/>
         <WordDetect String="ConditionSecurity" firstNonSpace="true" attribute="Option Name" context="AC security"/>
         <WordDetect String="ConditionUser" firstNonSpace="true" attribute="Option Name" context="AC user"/>
+        <WordDetect String="ConditionVersion" firstNonSpace="true" attribute="Option Name" context="AC text *"/>
         <WordDetect String="ConditionVirtualization" firstNonSpace="true" attribute="Option Name" context="AC virtualization"/>
         <WordDetect String="Conflicts" firstNonSpace="true" attribute="Option Name" context="unit list"/>
         <WordDetect String="DefaultDependencies" firstNonSpace="true" attribute="Option Name" context="boolean"/>
@@ -2148,6 +2374,7 @@
       <context name="section slice" attribute="Normal" lineEndContext="#stay">
         <IncludeRules context="section"/>
         <IncludeRules context="options resource-control"/>
+        <IncludeRules context="options slice"/>
       </context>
       <context name="section service" attribute="Normal" lineEndContext="#stay">
         <IncludeRules context="section"/>
diff -pruN 6.18.0-1/data/syntax/wml.xml 6.19.0-0ubuntu1/data/syntax/wml.xml
--- 6.18.0-1/data/syntax/wml.xml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/wml.xml	2025-10-05 12:41:31.000000000 +0000
@@ -2,7 +2,7 @@
 <!DOCTYPE language>
 <!--
   Thread for discussions: http://www.wesnoth.org/forum/viewtopic.php?f=21&t=13781
-  Alternatively try the "normal" way: #kate @ irc.libera.chat, kwrite-devel@kde.org
+  Alternatively try the "normal" way: https://kate-editor.org/support/
   Changelog (0.35 and later):
   ***************************
 * 0.42.1
diff -pruN 6.18.0-1/data/syntax/xkb.xml 6.19.0-0ubuntu1/data/syntax/xkb.xml
--- 6.18.0-1/data/syntax/xkb.xml	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/xkb.xml	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language
+  version="2"
+  kateversion="5.79"
+  name="XKeyboardConfig"
+  alternativeNames="XKB"
+  section="Configuration"
+  extensions="*.xkb"
+  license="MIT"
+  author="Jonathan Poelen (jonathan.poelen@gmail.com)"
+>
+<!--
+  https://xkbcommon.org/doc/current/user-configuration.html
+  https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html
+-->
+<highlighting>
+
+  <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#keywords -->
+  <!-- case-sensitive -->
+  <list name="keywords">
+    <item>action</item>
+    <item>alias</item>
+    <item>default</item>
+    <item>group</item>
+    <item>hidden</item>
+    <item>include</item>
+    <item>indicator</item>
+    <item>interpret</item>
+    <item>key</item>
+    <item>keys</item>
+    <item>logo</item>
+    <item>mod_map</item>
+    <item>modmap</item>
+    <item>modifier_map</item>
+    <item>outline</item>
+    <item>overlay</item>
+    <item>partial</item>
+    <item>row</item>
+    <item>section</item>
+    <item>shape</item>
+    <item>solid</item>
+    <item>text</item>
+    <item>type</item>
+    <item>virtual_modifiers</item>
+    <item>virtual</item>
+
+    <!-- other keywords -->
+    <item>allowExplicit</item>
+    <item>controls</item>
+    <item>groups</item>
+    <item>maximum</item>
+    <item>minimum</item>
+    <item>symbols</item>
+    <item>actions</item>
+    <item>all</item>
+
+    <!-- in xkb_geometry (ignored by xkb config) -->
+    <item>approx</item>
+    <item>baseColor</item>
+    <item>color</item>
+    <item>corner</item>
+    <item>cornerRadius</item>
+    <item>description</item>
+    <item>gap</item>
+    <item>height</item>
+    <item>labelColor</item>
+    <item>left</item>
+    <item>model</item>
+    <item>offColor</item>
+    <item>onColor</item>
+    <item>outline</item>
+    <item>priority</item>
+    <item>shape</item>
+    <item>text</item>
+    <item>top</item>
+    <item>width</item>
+    <item>xfont</item>
+  </list>
+
+  <list name="xkb sections">
+    <item>xkb_compat_map</item>
+    <item>xkb_compat</item>
+    <item>xkb_compatibility_map</item>
+    <item>xkb_compatibility</item>
+    <item>xkb_geometry</item>
+    <item>xkb_keycodes</item>
+    <item>xkb_keymap</item>
+    <item>xkb_layout</item>
+    <item>xkb_semantics</item>
+    <item>xkb_symbols</item>
+    <item>xkb_types</item>
+  </list>
+
+  <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#merge-mode-def -->
+  <list name="merge mode keywords">
+    <item>augment</item>
+    <item>override</item>
+    <item>replace</item>
+    <item>alternate</item>
+  </list>
+
+  <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#section-flags-def -->
+  <!-- Generic flags -->
+  <list name="flags">
+    <item>partial</item>
+    <item>default</item>
+    <item>hidden</item>
+  </list>
+  <!-- Symbols flags -->
+  <list name="keygroups">
+    <item>alphanumeric_keys</item>
+    <item>modifier_keys</item>
+    <item>keypad_keys</item>
+    <item>function_keys</item>
+    <item>alternate_group</item>
+  </list>
+
+  <!-- case-insensitive -->
+  <list name="xkb statement">
+    <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#key-type-statement -->
+    <item>level_name</item>
+    <item>modifiers</item>
+    <item>map</item>
+    <item>preserve</item>
+    <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#the-xkb_compat-section -->
+    <item>useModMapMods</item>
+    <item>virtualModifier</item>
+    <item>repeat</item>
+    <item>action</item>
+    <item>whichModState</item>
+    <item>groups</item>
+    <item>whichGroupState</item>
+    <item>name</item>
+    <item>groupName</item>
+  </list>
+
+  <!-- case-insensitive -->
+  <list name="xkb functions">
+    <item>AnyOfOrNone</item>
+    <item>AnyOf</item>
+    <item>Any</item>
+    <item>NoneOf</item>
+    <item>AllOf</item>
+    <item>Exactly</item>
+    <item>LockGroup</item>
+    <item>LockMods</item>
+    <item>SetGroup</item>
+    <item>SetMods</item>
+    <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#key-actions -->
+    <item>NoAction</item>
+    <item>VoidAction</item>
+    <item>SetMods</item>
+    <item>LatchMods</item>
+    <item>LockMods</item>
+    <item>SetGroup</item>
+    <item>LatchGroup</item>
+    <item>LockGroup</item>
+    <item>MovePointer</item>
+    <item>MovePtr</item>
+    <item>PointerButton</item>
+    <item>PtrBtn</item>
+    <item>LockPointerButton</item>
+    <item>LockPtrBtn</item>
+    <item>SetPointerDefault</item>
+    <item>SetPtrDflt</item>
+    <item>SetControls</item>
+    <item>LockControls</item>
+    <item>TerminateServer</item>
+    <item>Terminate</item>
+    <item>SwitchScreen</item>
+    <item>Private</item>
+    <!-- Unsupported legacy action -->
+    <!--
+    <item>RedirectKey</item>
+    <item>Redirect</item>
+    <item>ISOLock</item>
+    <item>DeviceButton</item>
+    <item>DevBtn</item>
+    <item>LockDeviceButton</item>
+    <item>LockDevBtn</item>
+    <item>DeviceValuator</item>
+    <item>DevVal</item>
+    <item>MessageAction</item>
+    <item>Message</item>
+    -->
+  </list>
+
+  <!-- case-insensitive -->
+  <list name="boolean">
+    <item>true</item>
+    <item>yes</item>
+    <item>on</item>
+    <item>false</item>
+    <item>no</item>
+    <item>off</item>
+  </list>
+
+  <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#usual-modifiers-keysyms -->
+  <list name="modifier states">
+    <!-- special value -->
+    <item>None</item>
+    <item>Shift</item>
+    <item>Lock</item>
+    <item>Control</item>
+    <item>Alt</item>
+    <item>Meta</item>
+    <item>Super</item>
+    <item>Hyper</item>
+    <item>ScrollLock</item>
+    <item>NumLock</item>
+    <item>LevelThree</item>
+    <item>LevelFive</item>
+    <item>Kana_Lock</item>
+    <!-- <item>Square</item> -->
+    <!-- <item>Cross</item> -->
+    <!-- <item>Circle</item> -->
+    <!-- <item>Triangle</item> -->
+  </list>
+  <list name="modifiers">
+    <include>modifier states</include>
+    <item>Shift_L</item>
+    <item>Shift_R</item>
+    <item>ISO_Level2_Latch</item>
+    <item>Caps_Lock</item>
+    <item>Control_L</item>
+    <item>Control_R</item>
+    <item>Alt_L</item>
+    <item>Alt_R</item>
+    <item>Meta_L</item>
+    <item>Meta_R</item>
+    <item>Super_L</item>
+    <item>Super_R</item>
+    <item>Hyper_L</item>
+    <item>Hyper_R</item>
+    <item>Scroll_Lock</item>
+    <item>Num_Lock</item>
+    <item>ISO_Level5_Lock</item>
+    <item>ISO_Level3_Shift</item>
+    <item>ISO_Level3_Latch</item>
+    <item>ISO_Level3_Lock</item>
+    <item>ISO_Level5_Shift</item>
+    <item>ISO_Level5_Latch</item>
+    <item>ISO_Level5_Lock</item>
+    <item>Mod1</item>
+    <item>Mod2</item>
+    <item>Mod3</item>
+    <item>Mod4</item>
+    <item>Mod5</item>
+    <item>Level1</item>
+    <item>Level2</item>
+    <item>Level3</item>
+    <item>Level4</item>
+    <item>Level5</item>
+    <item>Level6</item>
+    <item>Level7</item>
+    <item>Level8</item>
+    <!-- special value of SetMods -->
+    <item>modMapMods</item>
+  </list>
+
+  <!-- /usr/include/xkbcommon/xkbcommon-keysyms.h -->
+  <!-- https://xkbcommon.org/doc/current/xkbcommon-keysyms_8h.html -->
+  <!--
+  <list name="key">
+  </list>
+  -->
+
+  <contexts>
+
+<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+  <DetectSpaces/>
+  <AnyChar attribute="Assign Symbol" String="="/>
+  <AnyChar attribute="Not Symbol" String="!"/>
+  <AnyChar attribute="Separator Symbol" String=",;"/>
+  <AnyChar attribute="Operator" String="+-"/>
+  <AnyChar attribute="Square Brace" String="[]"/>
+  <AnyChar attribute="Parenthesis" String="()"/>
+  <DetectChar attribute="String" context="String" char='"'/>
+  <DetectChar attribute="Curly Brace" char="{" beginRegion="Brace1"/>
+  <DetectChar attribute="Curly Brace" char="}" endRegion="Brace1"/>
+  <StringDetect attribute="Comment" context="Comment" String="//"/>
+  <StringDetect attribute="Comment" context="Comment" String="#"/>
+  <Float attribute="Float"/>
+  <HlCHex attribute="Hex"/>
+  <Int attribute="Decimal"/> <!-- or simple name in some section -->
+
+  <WordDetect attribute="Include Keyword" String="include" context="MaybeMergeString"/>
+  <keyword attribute="Keyword" String="keywords" weakDeliminator="-"
+           context="MaybeSelectState"/>
+  <keyword attribute="XKB Statetement" String="xkb statement" insensitive="1"
+           context="MaybeSelectState"/>
+  <keyword attribute="Modifier" String="modifiers"/>
+  <keyword attribute="XKB Section" String="xkb sections" weakDeliminator="-"
+           context="MaybeMergeString"/>
+  <keyword attribute="Function" String="xkb functions" insensitive="1"/>
+  <keyword attribute="Key Group" String="keygroups" weakDeliminator="-"/>
+  <keyword attribute="Flag" String="flags"/>
+  <keyword attribute="Merge Mode Keyword" String="merge mode keywords" weakDeliminator="-"
+           context="MaybeMergeString"/>
+  <keyword attribute="Boolean" String="boolean" insensitive="1"/>
+
+  <DetectChar char="U" context="MaybeUnicode" lookAhead="1"/>
+  <DetectIdentifier/>
+
+  <!-- Ascii char without space nor > -->
+  <RegExpr attribute="Types" String="&lt;[!-=?-~]+&gt;"/>
+</context>
+
+
+<context name="MaybeMergeString" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">
+  <DetectSpaces/>
+  <DetectChar attribute="String" context="#pop!MergeString" char='"'/>
+</context>
+
+
+<!--
+  @{ Unicode
+-->
+
+<context name="MaybeUnicode" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+  <RegExpr attribute="Unicode Value Prefix" String="\bU(?=[0-9a-fA-F]{4,6}\b)"
+           context="Unicode"/>
+  <DetectIdentifier context="#pop"/>
+</context>
+
+<context name="Unicode" attribute="Unicode Value" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+  <DetectIdentifier attribute="Unicode Value" context="#pop#pop"/>
+  <Int additionalDeliminator="U"/>
+</context>
+
+<!--
+  @} Unicode
+-->
+
+
+<!--
+  @{ State List
+  - level_name[Level1]
+              ~      ~  Container Symbol
+               ~~~~~~   Associated Modifier State
+  - map[Shift+Lock]
+       ~          ~     Container Symbol
+        ~~~~~ ~~~~      Modifier State
+             ~          Modifier State Separator
+  - name[Group1]
+        ~      ~        Container Symbol
+         ~~~~~~         State
+  - layout[1]
+          ~ ~           Container Symbol
+           ~            Decimal
+-->
+
+<context name="MaybeSelectState" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">
+  <DetectChar char="[" context="SelectState" lookAhead="1"/>
+</context>
+
+<context name="SelectState" attribute="String" fallthroughContext="#pop#pop">
+  <RegExpr attribute="Container Symbol" String="\[(?=[a-zA-Z0-9+\s]+\])"
+           context="StateList" />
+</context>
+
+<context name="StateList" attribute="Modifier State Separator">
+  <DetectChar attribute="Modifier State Separator" char="+"/>
+  <DetectChar attribute="Container Symbol" char="]" context="#pop#pop"/>
+  <keyword attribute="Modifier State" String="modifier states"/>
+  <keyword attribute="Associated Modifier State" String="modifiers"/>
+  <DetectIdentifier attribute="State"/>
+  <Int attribute="Decimal"/>
+</context>
+
+<!--
+  @} State List
+-->
+
+
+<!--
+  @{ String
+  https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#literals
+-->
+
+<context name="String" attribute="String" lineEndContext="#pop">
+  <DetectChar attribute="String" context="#pop" char='"'/>
+  <DetectIdentifier/>
+  <DetectChar char="\" context="StringEscape" lookAhead="1"/>
+</context>
+
+<context name="MergeString" attribute="String" lineEndContext="#pop">
+  <IncludeRules context="String"/>
+  <!-- https://xkbcommon.org/doc/current/keymap-text-format-v1-v2.html#xkb-include -->
+  <AnyChar attribute="Merge Mode Symbol" String="|+^"/>
+  <StringDetect attribute="%-expansion" String="%%"/>
+  <StringDetect attribute="%-expansion" String="%H"/>
+  <StringDetect attribute="%-expansion" String="%S"/>
+  <StringDetect attribute="%-expansion" String="%E"/>
+  <StringDetect attribute="Error" String="%"/>
+</context>
+
+<context name="StringEscape" attribute="String" lineEndContext="#pop">
+  <RegExpr attribute="String Char" context="#pop"
+           String='\\([\\"befnrtv]|[0-7]{1,4}|u\{([0-9a-fA-F]{4,6})?\})'/>
+  <RegExpr attribute="Error" context="#pop"
+           String='\\(u(\{[0-9a-fA-F]{0,7}\}?)?)?'/>
+</context>
+
+<!--
+  @} String
+-->
+
+
+<!--
+  Comment
+-->
+<context name="Comment" attribute="Comment" lineEndContext="#pop">
+  <DetectSpaces/>
+  <LineContinue attribute="Comment" context="#stay"/>
+  <IncludeRules context="##Comments"/>
+  <DetectIdentifier/>
+</context>
+
+  </contexts>
+
+  <itemDatas>
+    <itemData name="Normal Text" defStyleNum="dsNormal"/>
+    <itemData name="Comment"     defStyleNum="dsComment"/>
+    <itemData name="Keyword"     defStyleNum="dsKeyword"/>
+    <itemData name="Key Group"   defStyleNum="dsKeyword"/>
+    <itemData name="XKB Section" defStyleNum="dsFunction"/>
+    <itemData name="XKB Statetement" defStyleNum="dsKeyword"/>
+    <itemData name="Include Keyword" defStyleNum="dsImport"/>
+    <itemData name="Merge Mode Keyword" defStyleNum="dsImport"/>
+    <itemData name="Merge Mode Symbol"  defStyleNum="dsImport"/>
+    <itemData name="Modifier"     defStyleNum="dsPreprocessor"/>
+    <itemData name="Flag"         defStyleNum="dsAttribute"/>
+    <itemData name="Boolean"      defStyleNum="dsBuiltIn"/>
+    <itemData name="Function"     defStyleNum="dsFunction"/>
+    <itemData name="String"       defStyleNum="dsString"/>
+    <itemData name="String Char"  defStyleNum="dsChar"/>
+    <itemData name="%-expansion"  defStyleNum="dsSpecialChar"/>
+    <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+    <itemData name="Hex"          defStyleNum="dsBaseN"/>
+    <itemData name="Float"        defStyleNum="dsFloat"/>
+    <itemData name="Unicode Value"        defStyleNum="dsVariable"/>
+    <itemData name="Unicode Value Prefix" defStyleNum="dsVariable" bold="1"/>
+    <itemData name="Not Symbol"       defStyleNum="dsExtension"/>
+    <itemData name="Assign Symbol"    defStyleNum="dsOperator"/>
+    <itemData name="Operator"         defStyleNum="dsOperator"/>
+    <itemData name="Separator Symbol" defStyleNum="dsNormal"/>
+    <itemData name="Curly Brace"  defStyleNum="dsNormal"/>
+    <itemData name="Square Brace" defStyleNum="dsNormal"/>
+    <itemData name="Parenthesis"  defStyleNum="dsNormal"/>
+    <itemData name="Container Symbol"          defStyleNum="dsFunction" bold="1"/>
+    <itemData name="Modifier State"            defStyleNum="dsPreprocessor"/>
+    <itemData name="Modifier State Separator"  defStyleNum="dsOperator"/>
+    <itemData name="Associated Modifier State" defStyleNum="dsPreprocessor"/>
+    <itemData name="State"                     defStyleNum="dsFunction"/>
+    <itemData name="Types"        defStyleNum="dsDataType"/>
+    <itemData name="Error"        defStyleNum="dsError"/>
+  </itemDatas>
+
+</highlighting>
+
+<general>
+ <comments>
+  <comment name="singleLine" start="//"/>
+ </comments>
+ <keywords casesensitive="1"/>
+</general>
+
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff -pruN 6.18.0-1/data/syntax/zig.xml 6.19.0-0ubuntu1/data/syntax/zig.xml
--- 6.18.0-1/data/syntax/zig.xml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/syntax/zig.xml	2025-10-05 12:41:31.000000000 +0000
@@ -7,7 +7,7 @@
     <!ENTITY exp_float "(?:[eE][+-]?&dec_int;)">
     <!ENTITY exp_hexfloat "(?:[pP][-+]?&dec_int;)">
 ]>
-<language name="Zig" section="Sources" version="3" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">
+<language name="Zig" section="Sources" version="4" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">
     <highlighting>
         <list name="keywords">
             <item>addrspace</item>
@@ -234,6 +234,8 @@
                 <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
                 <keyword attribute="Modifiers" context="#stay" String="modifiers"/>
                 <WordDetect attribute="Self Variable" String="self"/>
+                <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+                <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
                 <!-- <AnyChar context="SpecialType" String="iu" lookAhead="1"/> -->
                 <DetectIdentifier/>
             </context>
diff -pruN 6.18.0-1/data/themes/monokai.theme 6.19.0-0ubuntu1/data/themes/monokai.theme
--- 6.18.0-1/data/themes/monokai.theme	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/data/themes/monokai.theme	2025-10-05 12:41:31.000000000 +0000
@@ -118,6 +118,13 @@
                 "text-color": "#f92672"
             }
         },
+        "JSONC": {
+            "Style_String_Key": {
+                "italic": false,
+                "selected-text-color": "#f92672",
+                "text-color": "#f92672"
+            }
+        },
         "JavaScript": {
             "Object Member": {
                 "selected-text-color": "#f8f8f2",
@@ -605,7 +612,7 @@
         ],
         "license": "SPDX-License-Identifier: MIT",
         "name": "Monokai",
-        "revision": 7
+        "revision": 9
     },
     "text-styles": {
         "Alert": {
@@ -709,8 +716,10 @@
             "text-color": "#f92672"
         },
         "RegionMarker": {
-            "selected-text-color": "#75715e",
-            "text-color": "#75715e"
+            "background-color": "#4f0c27",
+            "bold": true,
+            "selected-text-color": "#fd971f",
+            "text-color": "#fd971f"
         },
         "SpecialChar": {
             "selected-text-color": "#ae81ff",
diff -pruN 6.18.0-1/debian/changelog 6.19.0-0ubuntu1/debian/changelog
--- 6.18.0-1/debian/changelog	2025-09-30 17:15:54.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/changelog	2025-10-12 14:09:10.000000000 +0000
@@ -1,64 +1,76 @@
-kf6-syntax-highlighting (6.18.0-1) unstable; urgency=medium
+kf6-syntax-highlighting (6.19.0-0ubuntu1) resolute; urgency=medium
 
-  [ Patrick Franz ]
-  * New upstream release (6.18.0).
-  * Update build-deps and deps with the info from cmake.
-  * Update list of installed files.
+  * New upstream release (6.18.0)
+  * New upstream release (6.19.0)
 
- -- Patrick Franz <deltaone@debian.org>  Tue, 30 Sep 2025 19:15:54 +0200
+ -- Rik Mills <rikmills@kde.org>  Sun, 12 Oct 2025 15:09:10 +0100
 
-kf6-syntax-highlighting (6.13.0-1) unstable; urgency=medium
+kf6-syntax-highlighting (6.17.0-0ubuntu1) questing; urgency=medium
 
-  [ Patrick Franz ]
-  * New upstream release (6.13.0).
-  * Bump Standards-Version to 4.7.2 (No changes needed).
-  * Update build-deps and deps with the info from cmake.
-  * Update d/copyright.
+  * New upstream release (6.17.0)
 
- -- Patrick Franz <deltaone@debian.org>  Sat, 12 Apr 2025 19:34:07 +0200
+ -- Rik Mills <rikmills@kde.org>  Fri, 08 Aug 2025 18:19:52 +0100
 
-kf6-syntax-highlighting (6.11.0-1) unstable; urgency=medium
+kf6-syntax-highlighting (6.16.0-0ubuntu1) questing; urgency=medium
 
-  [ Aurélien COUDERC ]
-  * New upstream release (6.11.0).
-  * Update build-deps and deps with the info from cmake.
+  * New upstream release (6.16.0)
 
- -- Aurélien COUDERC <coucouf@debian.org>  Sat, 15 Feb 2025 17:00:05 +0100
+ -- Rik Mills <rikmills@kde.org>  Fri, 11 Jul 2025 16:50:01 +0100
 
-kf6-syntax-highlighting (6.10.0-2) unstable; urgency=medium
+kf6-syntax-highlighting (6.15.0-0ubuntu1) questing; urgency=medium
 
-  [ Patrick Franz ]
-  * Fix FTCBFS: Missing B-D on native libraries used by
-    native_katehighlightingindexer, thx to Helmut Grohne (Closes:
-    #1095181).
+  * New upstream release (6.15.0)
+  * Comment out .install for docs packages for now, as the qch docs are
+    currently not buildable in Ubuntu.
 
- -- Patrick Franz <deltaone@debian.org>  Sat, 08 Feb 2025 19:13:28 +0100
+ -- Rik Mills <rikmills@kde.org>  Fri, 13 Jun 2025 16:37:07 +0100
 
-kf6-syntax-highlighting (6.10.0-1) unstable; urgency=medium
+kf6-syntax-highlighting (6.14.0-0ubuntu1) questing; urgency=medium
 
-  [ Aurélien COUDERC ]
-  * New upstream release (6.9.0).
-  * Update build-deps and deps with the info from cmake.
-  * New upstream release (6.10.0).
-  * Update build-deps and deps with the info from cmake.
+  * New upstream release (6.14.0)
 
- -- Aurélien COUDERC <coucouf@debian.org>  Fri, 10 Jan 2025 23:23:56 +0100
+ -- Rik Mills <rikmills@kde.org>  Sat, 10 May 2025 07:02:22 +0100
 
-kf6-syntax-highlighting (6.8.0-1) unstable; urgency=medium
+kf6-syntax-highlighting (6.12.0-0ubuntu1) plucky; urgency=medium
 
-  [ Aurélien COUDERC ]
-  * New upstream release (6.8.0).
-  * Update build-deps and deps with the info from cmake.
-  * Release to unstable.
+  * New upstream release (6.12.0)
 
- -- Aurélien COUDERC <coucouf@debian.org>  Wed, 04 Dec 2024 12:01:26 +0100
+ -- Rik Mills <rikmills@kde.org>  Tue, 18 Mar 2025 10:56:40 +0000
 
-kf6-syntax-highlighting (6.7.0-1) experimental; urgency=medium
+kf6-syntax-highlighting (6.11.0-0ubuntu1) plucky; urgency=medium
 
-  * Team upload.
-  * New upstream release.
+  * New upstream release (6.11.0)
+
+ -- Rik Mills <rikmills@kde.org>  Fri, 14 Feb 2025 16:51:40 +0000
+
+kf6-syntax-highlighting (6.10.0-0ubuntu1) plucky; urgency=medium
+
+  * New upstream release (6.10.0)
+  * Disable acc test for now.
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 09 Jan 2025 12:22:57 +0000
+
+kf6-syntax-highlighting (6.9.0-0ubuntu1) plucky; urgency=medium
+
+  * New upstream release (6.9.0)
+
+ -- Rik Mills <rikmills@kde.org>  Fri, 13 Dec 2024 14:50:51 +0000
 
- -- Simon Quigley <tsimonq2@debian.org>  Sun, 03 Nov 2024 19:29:29 -0600
+kf6-syntax-highlighting (6.8.0-0ubuntu2) plucky; urgency=medium
+
+  * Merge changes from 6.6.0-2 in Debian unstable.
+    - Use dh_qmldeps to detect QML dependencies.
+    - Add qml6-module packages to -dev package for QML dependency
+      detection.
+
+ -- Rik Mills <rikmills@kde.org>  Sun, 01 Dec 2024 13:57:41 +0000
+
+kf6-syntax-highlighting (6.8.0-0ubuntu1) plucky; urgency=medium
+
+  * New upstream release (6.7.0)
+  * New upstream release (6.8.0)
+
+ -- Rik Mills <rikmills@kde.org>  Fri, 08 Nov 2024 16:40:17 +0000
 
 kf6-syntax-highlighting (6.6.0-2) unstable; urgency=medium
 
@@ -77,6 +89,19 @@ kf6-syntax-highlighting (6.6.0-1) unstab
 
  -- Aurélien COUDERC <coucouf@debian.org>  Fri, 06 Sep 2024 23:09:21 +0200
 
+kf6-syntax-highlighting (6.6.0-0ubuntu2) oracular; urgency=medium
+
+  * Fix last upload with updates lost in git my merge.
+    - Refresh symbols all arches.
+
+ -- Rik Mills <rikmills@kde.org>  Sat, 21 Sep 2024 17:58:28 +0100
+
+kf6-syntax-highlighting (6.6.0-0ubuntu1) oracular; urgency=medium
+
+  * New upstream release (6.6.0)
+
+ -- Scarlett Moore <sgmoore@debian.org>  Fri, 20 Sep 2024 19:09:54 +0100
+
 kf6-syntax-highlighting (6.5.0-2) unstable; urgency=medium
 
   * Team upload.
@@ -98,6 +123,13 @@ kf6-syntax-highlighting (6.5.0-1) unstab
 
  -- Aurélien COUDERC <coucouf@debian.org>  Sat, 10 Aug 2024 23:22:02 +0200
 
+kf6-syntax-highlighting (6.5.0-0ubuntu1) oracular; urgency=medium
+
+  * New upstream release (6.5.0)
+  * Mark a symbol optional.
+
+ -- Rik Mills <rikmills@kde.org>  Tue, 13 Aug 2024 19:25:48 +0100
+
 kf6-syntax-highlighting (6.4.0-1) experimental; urgency=medium
 
   [ Aurélien COUDERC ]
@@ -106,6 +138,14 @@ kf6-syntax-highlighting (6.4.0-1) experi
 
  -- Aurélien COUDERC <coucouf@debian.org>  Fri, 19 Jul 2024 09:24:21 +0200
 
+kf6-syntax-highlighting (6.4.0-0ubuntu1) oracular; urgency=medium
+
+  * New upstream release (6.4.0)
+  * Pass gcc option -std=c++17 to acc autopkgtests
+  * Update symbols
+
+ -- José Manuel Santamaría Lema <panfaust@gmail.com>  Sat, 13 Jul 2024 16:37:08 +0100
+
 kf6-syntax-highlighting (6.3.0-1) experimental; urgency=medium
 
   [ Patrick Franz ]
diff -pruN 6.18.0-1/debian/control 6.19.0-0ubuntu1/debian/control
--- 6.18.0-1/debian/control	2025-09-30 17:12:45.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/control	2025-10-12 14:09:10.000000000 +0000
@@ -1,29 +1,28 @@
 Source: kf6-syntax-highlighting
 Section: libs
 Priority: optional
-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
+Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
 Uploaders: Aurélien COUDERC <coucouf@debian.org>,
            Patrick Franz <deltaone@debian.org>,
-Build-Depends: debhelper-compat (= 13),
+Build-Depends: cmake (>= 3.16~),
+               debhelper-compat (= 13),
                dh-sequence-kf6,
                dh-sequence-pkgkde-symbolshelper,
                dh-sequence-qmldeps,
-               cmake (>= 3.16~),
                doxygen,
-               extra-cmake-modules (>= 6.18.0~),
+               extra-cmake-modules (>= 6.19.0~),
                libxerces-c-dev,
                libxkbcommon-dev,
                perl:any,
                pkgconf,
-               qt6-base-dev (>= 6.7.0~),
-               qt6-base-dev:native (>= 6.7.0~),
-               qt6-declarative-dev (>= 6.7.0~),
+               qt6-base-dev (>= 6.5.0+dfsg~),
+               qt6-declarative-dev (>= 6.5.0+dfsg~),
                qt6-tools-dev (>= 6.5.0~),
-               qt6-tools-dev:native,
-Standards-Version: 4.7.2
+Standards-Version: 4.7.0
 Homepage: https://invent.kde.org/frameworks/syntax-highlighting
-Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/kf6-syntax-highlighting
-Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/kf6-syntax-highlighting.git
+Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kf6-syntax-highlighting
+Vcs-Git: https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kf6-syntax-highlighting
 Rules-Requires-Root: no
 
 Package: libkf6syntaxhighlighting-data
@@ -45,8 +44,8 @@ Section: libdevel
 Architecture: any
 Depends: libkf6syntaxhighlighting6 (= ${binary:Version}),
          qml6-module-org-kde-syntaxhighlighting (= ${binary:Version}),
-         qt6-base-dev (>= 6.7.0~),
-         qt6-declarative-dev (>= 6.7.0~),
+         qt6-base-dev (>= 6.5.0+dfsg~),
+         qt6-declarative-dev (>= 6.5.0+dfsg~),
          ${misc:Depends},
 Recommends: libkf6syntaxhighlighting-doc (= ${source:Version}),
 Multi-Arch: same
diff -pruN 6.18.0-1/debian/copyright 6.19.0-0ubuntu1/debian/copyright
--- 6.18.0-1/debian/copyright	2025-09-27 09:44:23.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/copyright	2025-10-12 14:09:10.000000000 +0000
@@ -850,7 +850,10 @@ License: GPL-2.0-only
  General Public License for more details.
  .
  You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. Also add information on how to contact you by
+ electronic and paper mail.
  .
  On Debian systems, the complete text of the GNU General Public
  License version 2 can be found in
@@ -868,7 +871,10 @@ License: GPL-2.0-or-later
  General Public License for more details.
  .
  You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. Also add information on how to contact you by
+ electronic and paper mail.
  .
  On Debian systems, the complete text of the GNU General Public
  License version 2 can be found in
@@ -921,7 +927,9 @@ License: LGPL-2.0-only
  Library General Public License for more details.
  .
  You should have received a copy of the GNU Library General Public
- License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301, USA.
  .
  On Debian systems, the complete text of the GNU Library General
  Public License version 2 can be found in
@@ -939,7 +947,9 @@ License: LGPL-2.0-or-later
  Library General Public License for more details.
  .
  You should have received a copy of the GNU Library General Public
- License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301, USA.
  .
  On Debian systems, the complete text of the GNU Library General
  Public License version 2 can be found in
@@ -981,7 +991,10 @@ License: LGPL-2.1-or-later
  Lesser General Public License for more details.
  .
  You should have received a copy of the GNU Lesser General Public
- License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301  USA Also add information on how to contact you by
+ electronic and paper mail.
  .
  On Debian systems, the complete text of the GNU Lesser General
  Public License version 2.1 can be found in
diff -pruN 6.18.0-1/debian/libkf6syntaxhighlighting-dev.acc.in 6.19.0-0ubuntu1/debian/libkf6syntaxhighlighting-dev.acc.in
--- 6.18.0-1/debian/libkf6syntaxhighlighting-dev.acc.in	2024-12-08 04:09:28.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/libkf6syntaxhighlighting-dev.acc.in	2025-10-12 14:09:10.000000000 +0000
@@ -16,6 +16,7 @@
 <gcc_options>
     -fPIC
     -std=c++17
+    -I/usr/lib/@@DEB_HOST_MULTIARCH@@/qt6/mkspecs/linux-lsb-g++
 </gcc_options>
 
 </descriptor>
diff -pruN 6.18.0-1/debian/libkf6syntaxhighlighting6.symbols 6.19.0-0ubuntu1/debian/libkf6syntaxhighlighting6.symbols
--- 6.18.0-1/debian/libkf6syntaxhighlighting6.symbols	2024-12-08 04:09:28.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/libkf6syntaxhighlighting6.symbols	2025-10-12 14:09:10.000000000 +0000
@@ -1,4 +1,4 @@
-# SymbolsHelper-Confirmed: 6.6.0 amd64
+# SymbolsHelper-Confirmed: 6.6.0 amd64 arm64 armhf ppc64el riscv64 s390x
 libKF6SyntaxHighlighting.so.6 libkf6syntaxhighlighting6 #MINVER#
 * Build-Depends-Package: libkf6syntaxhighlighting-dev
  _ZGVZN9QMetaType21registerConverterImplI5QListIN19KSyntaxHighlighting10DefinitionEE9QIterableI13QMetaSequenceEEEbSt8functionIFbPKvPvEES_S_E10unregister@Base 6.0.0
@@ -212,8 +212,8 @@ libKF6SyntaxHighlighting.so.6 libkf6synt
  _ZNK19KSyntaxHighlighting6Format8isItalicERKNS_5ThemeE@Base 6.0.0
  _ZNK19KSyntaxHighlighting6Format9textColorERKNS_5ThemeE@Base 6.0.0
  _ZNK19KSyntaxHighlighting6Format9textStyleEv@Base 6.0.0
- (optional=templinst)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_N19KSyntaxHighlighting10DefinitionEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE24_M_get_insert_unique_posERS2_@Base 6.0.0
- (optional=templinst)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_N19KSyntaxHighlighting10DefinitionEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS2_@Base 6.0.0
+ (optional=templinst|arch=armhf riscv64)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_N19KSyntaxHighlighting10DefinitionEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE24_M_get_insert_unique_posERS2_@Base 6.0.0
+ (optional=templinst|arch=armhf riscv64)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_N19KSyntaxHighlighting10DefinitionEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS2_@Base 6.0.0
  _ZTIN19KSyntaxHighlighting10RepositoryE@Base 6.0.0
  _ZTIN19KSyntaxHighlighting15AnsiHighlighterE@Base 6.0.0
  _ZTIN19KSyntaxHighlighting15HtmlHighlighterE@Base 6.0.0
@@ -225,7 +225,7 @@ libKF6SyntaxHighlighting.so.6 libkf6synt
  (arch=!armel !riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 6.0.0
  (arch=armel riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 6.0.0
  (arch=!armel !riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 6.0.0
- (arch=armel armhf)_ZTISt19_Sp_make_shared_tag@Base 6.0.0
+ (optional|arch=amd64 armhf)_ZTISt19_Sp_make_shared_tag@Base 6.4.0
  _ZTIZN9QMetaType17registerConverterI5QListIN19KSyntaxHighlighting10DefinitionEE9QIterableI13QMetaSequenceEN9QtPrivate33QSequentialIterableConvertFunctorIS4_EEEEbT1_EUlPKvPvE_@Base 6.0.0
  _ZTIZN9QMetaType17registerConverterI5QListIN19KSyntaxHighlighting5ThemeEE9QIterableI13QMetaSequenceEN9QtPrivate33QSequentialIterableConvertFunctorIS4_EEEEbT1_EUlPKvPvE_@Base 6.0.0
  _ZTIZN9QMetaType19registerMutableViewI5QListIN19KSyntaxHighlighting10DefinitionEE9QIterableI13QMetaSequenceEN9QtPrivate37QSequentialIterableMutableViewFunctorIS4_EEEEbT1_EUlPvSC_E_@Base 6.0.0
diff -pruN 6.18.0-1/debian/rules 6.19.0-0ubuntu1/debian/rules
--- 6.18.0-1/debian/rules	2024-12-08 04:09:28.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/rules	2025-10-12 14:09:10.000000000 +0000
@@ -3,7 +3,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
-archs_that_need_atomic = armel m68k powerpc sh4
+archs_that_need_atomic = armel m68k mipsel powerpc sh4
 ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(archs_that_need_atomic)))
 	export DEB_LDFLAGS_MAINT_APPEND = -Wl,--no-as-needed -latomic -Wl,--as-needed
 endif
@@ -13,3 +13,5 @@ endif
 
 override_dh_auto_configure:
 	dh_auto_configure -- -DBUILD_QCH=ON
+
+override_dh_auto_test:
diff -pruN 6.18.0-1/debian/tests/control 6.19.0-0ubuntu1/debian/tests/control
--- 6.18.0-1/debian/tests/control	2024-03-16 23:43:44.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/tests/control	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-Tests: acc
-Depends: dh-acc, exuberant-ctags, @
-Restrictions: allow-stderr
diff -pruN 6.18.0-1/debian/tests/control.disable 6.19.0-0ubuntu1/debian/tests/control.disable
--- 6.18.0-1/debian/tests/control.disable	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/debian/tests/control.disable	2025-10-12 14:09:10.000000000 +0000
@@ -0,0 +1,3 @@
+Tests: acc
+Depends: dh-acc, exuberant-ctags, @
+Restrictions: allow-stderr
diff -pruN 6.18.0-1/examples/minimal-qml/example.qml 6.19.0-0ubuntu1/examples/minimal-qml/example.qml
--- 6.18.0-1/examples/minimal-qml/example.qml	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/examples/minimal-qml/example.qml	2025-10-05 12:41:31.000000000 +0000
@@ -7,6 +7,7 @@
 import QtQuick
 import QtQuick.Controls as QQC2
 import org.kde.syntaxhighlighting
+import org.kde.kirigami as Kirigami
 
 QQC2.ScrollView {
     width: 250
diff -pruN 6.18.0-1/poqm/af/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/af/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/af/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/af/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1374,6 +1374,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1563,6 +1567,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1570,6 +1578,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ar/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ar/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ar/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ar/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -18,7 +18,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-08-20 21:41+0400\n"
+"PO-Revision-Date: 2025-09-27 10:16+0400\n"
 "Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
 "Language-Team: ar\n"
 "Language: ar\n"
@@ -30,12 +30,9 @@ msgstr ""
 "X-Generator: Lokalize 23.08.5\n"
 "X-Qt-Contexts: true\n"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "MS-DOS Batch"
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
-msgstr "رقعة مايكروسوفت دوس"
+msgstr "4DOS دُفعة إلى ذاكرة"
 
 msgctxt "Language|"
 msgid "ABAP"
@@ -45,16 +42,13 @@ msgctxt "Language|"
 msgid "ABC"
 msgstr "ABC"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "E Language"
 msgctxt "Language|"
 msgid "ACPI Source Language"
-msgstr "لغة E"
+msgstr "لغة مصدر ACPI"
 
 msgctxt "Language|"
 msgid "ACPI DSL"
-msgstr ""
+msgstr "لغة خاصة لنطاق ACPI"
 
 msgctxt "Language|"
 msgid "ActionScript 2.0"
@@ -66,15 +60,15 @@ msgstr "Ada"
 
 msgctxt "Language|"
 msgid "Agda"
-msgstr ""
+msgstr "أجدة"
 
 msgctxt "Language|"
 msgid "AHDL"
-msgstr ""
+msgstr "AHDL"
 
 msgctxt "Language|"
 msgid "AutoHotKey"
-msgstr ""
+msgstr "مفتاح التشغيل الآلي السريع"
 
 msgctxt "Language|"
 msgid "Alerts"
@@ -82,11 +76,11 @@ msgstr "إنذارات"
 
 msgctxt "Language|"
 msgid "AMPLE"
-msgstr ""
+msgstr "AMPLE"
 
 msgctxt "Language|"
 msgid "ANS-Forth94"
-msgstr ""
+msgstr "ANS-Forth94"
 
 msgctxt "Language|"
 msgid "ANSI C89"
@@ -98,52 +92,43 @@ msgstr "أنسيس"
 
 msgctxt "Language|"
 msgid "ANTLR"
-msgstr ""
+msgstr "ANTLR"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Apache Configuration"
 msgctxt "Language|"
 msgid "Apache Configuration"
-msgstr "ضبط Apache"
+msgstr "ضبط أباتشي"
 
 msgctxt "Language|"
 msgid "AppArmor Security Profile"
-msgstr ""
+msgstr "تشكيلة أمان AppArmor"
 
 msgctxt "Language|"
 msgid "AsciiDoc"
-msgstr ""
+msgstr "AsciiDoc"
 
 msgctxt "Language|"
 msgid "Asm6502"
-msgstr ""
+msgstr "لغة التجميع 6502"
 
 msgctxt "Language|"
 msgid "ARM Assembler"
-msgstr ""
+msgstr "مجمّع ARM"
 
 msgctxt "Language|"
 msgid "AVR Assembler"
-msgstr ""
+msgstr "مجمّع AVR"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Motorola DSP56k"
 msgctxt "Language|"
 msgid "Motorola DSP56k"
-msgstr "موتورولّا DSP56k"
+msgstr "Motorola DSP56k"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Motorola 68k (VASM/Devpac)"
 msgctxt "Language|"
 msgid "Motorola 68k (VASM/Devpac)"
-msgstr "موتورولّا 68k ‏(VASM/Devpac)"
+msgstr "Motorola 68k (VASM/Devpac)"
 
 msgctxt "Language|"
 msgid "ASN.1"
-msgstr ""
+msgstr "ASN.1"
 
 msgctxt "Language|"
 msgid "ASP"
@@ -151,7 +136,7 @@ msgstr "إيه إس بي"
 
 msgctxt "Language|"
 msgid "ATS"
-msgstr ""
+msgstr "ATS"
 
 msgctxt "Language|"
 msgid "AWK"
@@ -163,11 +148,11 @@ msgstr "بب تخ"
 
 msgctxt "Language|"
 msgid "Bitbake"
-msgstr ""
+msgstr "بِت بَيك"
 
 msgctxt "Language|"
 msgid "B-Method"
-msgstr ""
+msgstr "منهج B"
 
 msgctxt "Language|"
 msgid "Boo"
@@ -179,34 +164,28 @@ msgstr "كابال"
 
 msgctxt "Language|"
 msgid "Cap'n Proto"
-msgstr ""
+msgstr "بروتو كاب'ن"
 
 msgctxt "Language|"
 msgid "CartoCSS MML"
-msgstr ""
+msgstr "CartoCSS MML"
 
 msgctxt "Language|"
 msgid "CartoCSS MSS"
-msgstr ""
+msgstr "CartoCSS MSS"
 
-#, fuzzy
-#| msgctxt "Language Section|"
-#| msgid "Scripts"
 msgctxt "Language|"
 msgid "CashScript"
-msgstr "السّكربتات"
+msgstr "سكربت النقد"
 
 msgctxt "Language|"
 msgid "CleanCSS"
-msgstr ""
+msgstr "CleanCSS"
 
 msgctxt "Language|"
 msgid "CGiS"
-msgstr ""
+msgstr "CGiS"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Cg"
 msgctxt "Language|"
 msgid "Cg"
 msgstr "Cg"
@@ -217,20 +196,19 @@ msgstr "سجل التغييرات"
 
 msgctxt "Language|"
 msgid "Common Intermediate Language (CIL)"
-msgstr ""
+msgstr "اللغة الوسيطة المشتركة (CIL)"
 
 msgctxt "Language|"
 msgid "Cisco"
 msgstr "سيسكو"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "Clipper"
-msgstr "دائرة التقطيع"
+msgstr "كليبر"
 
 msgctxt "Language|"
 msgid "CLIST"
-msgstr ""
+msgstr "CLIST"
 
 msgctxt "Language|"
 msgid "Clojure"
@@ -246,22 +224,19 @@ msgstr "كافي سكريبت"
 
 msgctxt "Language|"
 msgid "ColdFusion"
-msgstr ""
+msgstr "كولدفيوجن"
 
 msgctxt "Language|"
 msgid "Common Lisp"
-msgstr ""
+msgstr "لِسب الشائعة"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Component-Pascal"
 msgctxt "Language|"
 msgid "Component-Pascal"
-msgstr "مكوّن-باسكال"
+msgstr "مكون باسكال"
 
 msgctxt "Language|"
 msgid "Crack"
-msgstr ""
+msgstr "كراك"
 
 msgctxt "Language|"
 msgid "Crystal"
@@ -273,15 +248,15 @@ msgstr "أوراق الأنماط الم
 
 msgctxt "Language|"
 msgid "CSV (pipe)"
-msgstr ""
+msgstr "CSV (أنبوب)"
 
 msgctxt "Language|"
 msgid "CSV (semicolon)"
-msgstr ""
+msgstr "CSV (فاصلة منقوطة)"
 
 msgctxt "Language|"
 msgid "CSV (whitespace)"
-msgstr ""
+msgstr "CSV (مسافات بيضاء)"
 
 msgctxt "Language|"
 msgid "CSV"
@@ -291,16 +266,13 @@ msgctxt "Language|"
 msgid "C#"
 msgstr "سي#"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Scripts"
 msgctxt "Language|"
 msgid "CubeScript"
-msgstr "السّكربتات"
+msgstr "مكعب سكريبت"
 
 msgctxt "Language|"
 msgid "CUE Sheet"
-msgstr ""
+msgstr "ورقة CUE"
 
 msgctxt "Language|"
 msgid "Curry"
@@ -314,53 +286,37 @@ msgctxt "Language|"
 msgid "Dart"
 msgstr "دارت"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Debian Changelog"
 msgctxt "Language|"
 msgid "Debian Changelog"
-msgstr "سجل تغييرات دبيان"
+msgstr "سجل التغييرات دبيان"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Debian Control"
 msgctxt "Language|"
 msgid "Debian Control"
-msgstr "تحكّم دبيان"
+msgstr "تحكم دبيان"
 
-#, fuzzy
 msgctxt "Language|"
 msgid ".desktop"
-msgstr "سطح المكتب"
+msgstr "مكتب"
 
 msgctxt "Language|"
 msgid "Diff"
 msgstr "فرق"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Django HTML Template"
 msgctxt "Language|"
 msgid "Django HTML Template"
-msgstr "قالب دجانغو HTML"
+msgstr "قالب HTML لـ Django"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "MS-DOS Batch"
 msgctxt "Language|"
 msgid "MS-DOS Batch"
-msgstr "رقعة مايكروسوفت دوس"
+msgstr "دفعة MS-DOS"
 
 msgctxt "Language|"
 msgid "dot"
 msgstr "نقطة"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Makefile"
 msgctxt "Language|"
 msgid "Doxyfile"
-msgstr "ملفّ Make"
+msgstr "ملف Doxy"
 
 msgctxt "Language|"
 msgid "Doxygen"
@@ -368,11 +324,11 @@ msgstr "دي أكسجين"
 
 msgctxt "Language|"
 msgid "DTD"
-msgstr ""
+msgstr "تعريف نوع المستند"
 
 msgctxt "Language|"
 msgid "Devicetree Source (DTS)"
-msgstr ""
+msgstr "مصدر شجرة الجهاز (DTS)"
 
 msgctxt "Language|"
 msgid "D"
@@ -380,7 +336,7 @@ msgstr "D"
 
 msgctxt "Language|"
 msgid "FreeFEM"
-msgstr ""
+msgstr "FreeFEM"
 
 msgctxt "Language|"
 msgid "Eiffel"
@@ -392,7 +348,7 @@ msgstr "دردار"
 
 msgctxt "Language|"
 msgid "Elvish"
-msgstr ""
+msgstr "إلفيش"
 
 msgctxt "Language|"
 msgid "Email"
@@ -406,34 +362,29 @@ msgctxt "Language|"
 msgid "Euphoria"
 msgstr "ابتهاج"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "E Language"
 msgctxt "Language|"
 msgid "E Language"
 msgstr "لغة E"
 
 msgctxt "Language|"
 msgid "Intel x86 (FASM)"
-msgstr ""
+msgstr "Intel x86 (FASM)"
 
 msgctxt "Language|"
 msgid "FASTQ"
-msgstr ""
+msgstr "FASTQ"
 
-#, fuzzy
-#| msgid "Overwrite"
 msgctxt "Language|"
 msgid "ferite"
-msgstr "اطمس"
+msgstr "فيريت"
 
 msgctxt "Language|"
 msgid "4GL"
-msgstr ""
+msgstr "لغة الجيل الرابع"
 
 msgctxt "Language|"
 msgid "4GL-PER"
-msgstr ""
+msgstr "4GL-PER"
 
 msgctxt "Language|"
 msgid "Fish"
@@ -441,54 +392,51 @@ msgstr "فيش"
 
 msgctxt "Language|"
 msgid "FlatBuffers"
-msgstr ""
+msgstr "FlatBuffers"
 
 msgctxt "Language|"
 msgid "Fluent"
-msgstr ""
+msgstr "Fluent"
 
-#, fuzzy
-#| msgid "File Format"
 msgctxt "Language|"
 msgid "Fortran (Fixed Format)"
-msgstr "نسق الملفّ"
+msgstr "فورتران (تنسيق ثابت)"
 
 msgctxt "Language|"
 msgid "Fortran (Free Format)"
-msgstr ""
+msgstr "فورتران (تنسيق حرّ)"
 
 msgctxt "Language|"
 msgid "FreeBASIC"
-msgstr ""
+msgstr "فري بيسيك"
 
 msgctxt "Language|"
 msgid "FSharp"
-msgstr ""
+msgstr "إف شارب"
 
 msgctxt "Language|"
 msgid "fstab"
-msgstr ""
+msgstr "fstab"
 
 msgctxt "Language|"
 msgid "FTL"
-msgstr ""
+msgstr "FTL"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "GAP"
-msgstr "الفراغ:"
+msgstr "GAP"
 
 msgctxt "Language|"
 msgid "G-Code"
-msgstr ""
+msgstr "رمز G"
 
 msgctxt "Language|"
 msgid "GDB Backtrace"
-msgstr ""
+msgstr "تتبّع GDB الخلفي"
 
 msgctxt "Language|"
 msgid "GDB Init"
-msgstr ""
+msgstr "تهيئة GDB"
 
 msgctxt "Language|"
 msgid "GDB"
@@ -496,48 +444,43 @@ msgstr "منقّح غنو GDB"
 
 msgctxt "Language|"
 msgid "GDL"
-msgstr ""
+msgstr "GDL"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "GNU Gettext"
 msgctxt "Language|"
 msgid "GNU Gettext"
-msgstr "غنو غِت‌تكست"
+msgstr "جت تكست لـ GNU"
 
 msgctxt "Language|"
 msgid "Cucumber Gherkin feature"
-msgstr ""
+msgstr "ميزة خيركن الخيار"
 
-#, fuzzy
-#| msgid "&Ignore"
 msgctxt "Language|"
 msgid "Git Ignore"
-msgstr "ت&جاهل"
+msgstr "تجاهل Git"
 
 msgctxt "Language|"
 msgid "Gitolite"
-msgstr ""
+msgstr "جيتولايت"
 
 msgctxt "Language|"
 msgid "Git Rebase"
-msgstr ""
+msgstr "إعادة قاعدة Git"
 
 msgctxt "Language|"
 msgid "Gleam"
-msgstr ""
+msgstr "جليم"
 
 msgctxt "Language|"
 msgid "GlossTex"
-msgstr ""
+msgstr "غلوس تيكس"
 
 msgctxt "Language|"
 msgid "GLSL"
-msgstr ""
+msgstr "GLSL"
 
 msgctxt "Language|"
 msgid "GNU Assembler"
-msgstr ""
+msgstr "مجمّع GNU"
 
 msgctxt "Language|"
 msgid "Gnuplot"
@@ -549,11 +492,11 @@ msgstr "غو"
 
 msgctxt "Language|"
 msgid "GPRBuild"
-msgstr ""
+msgstr "GPRBuild"
 
 msgctxt "Language|"
 msgid "KDev-PG[-Qt] Grammar"
-msgstr ""
+msgstr "قواعد KDev-PG[-Qt]"
 
 msgctxt "Language|"
 msgid "GraphQL"
@@ -561,7 +504,7 @@ msgstr "غراف كيو إل"
 
 msgctxt "Language|"
 msgid "Groovy"
-msgstr ""
+msgstr "غروفي"
 
 msgctxt "Language|"
 msgid "Hamlet"
@@ -569,11 +512,11 @@ msgstr "هاملت"
 
 msgctxt "Language|"
 msgid "Haml"
-msgstr ""
+msgstr "هامل"
 
 msgctxt "Language|"
 msgid "Hare"
-msgstr ""
+msgstr "هير"
 
 msgctxt "Language|"
 msgid "Haskell"
@@ -581,11 +524,11 @@ msgstr "هاسكل"
 
 msgctxt "Language|"
 msgid "Haxe"
-msgstr ""
+msgstr "هاكسي"
 
 msgctxt "Language|"
 msgid "Hjson"
-msgstr ""
+msgstr "Hjson"
 
 msgctxt "Language|"
 msgid "HTML"
@@ -593,25 +536,23 @@ msgstr "HTML"
 
 msgctxt "Language|"
 msgid "Hunspell Affix File"
-msgstr ""
+msgstr "ملف لاحقة Hunspell"
 
 msgctxt "Language|"
 msgid "Hunspell Thesaurus File"
-msgstr ""
+msgstr "ملف قاموس المرادفات لـ Hunspell"
 
 msgctxt "Language|"
 msgid "Hunspell Dictionary File"
-msgstr ""
+msgstr "ملف قاموس لـ Hunspell"
 
-#, fuzzy
-#| msgid "QA and Scripting"
 msgctxt "Language|"
 msgid "Quake Script"
-msgstr "ضمان الجودة والسّكربتة"
+msgstr "سكربت كوايك"
 
 msgctxt "Language|"
 msgid "IDL"
-msgstr ""
+msgstr "لغة تعريف الواجهة"
 
 msgctxt "Language|"
 msgid "Idris"
@@ -619,25 +560,19 @@ msgstr "إدريس"
 
 msgctxt "Language|"
 msgid "ILERPG"
-msgstr ""
+msgstr "ILERPG"
 
-#, fuzzy
-#| msgctxt "@item:intable Text context"
-#| msgid "Information"
 msgctxt "Language|"
 msgid "Inform"
-msgstr "المعلومات"
+msgstr "Inform"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "INI Files"
 msgctxt "Language|"
 msgid "INI Files"
-msgstr "ملفّات INI"
+msgstr "ملفات INI"
 
 msgctxt "Language|"
 msgid "InnoSetup"
-msgstr ""
+msgstr "InnoSetup"
 
 msgctxt "Language|"
 msgid "Intel HEX"
@@ -647,19 +582,13 @@ msgctxt "Language|"
 msgid "Jam"
 msgstr "جام"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Java"
 msgctxt "Language|"
 msgid "Javadoc"
-msgstr "جافا"
+msgstr "Javadoc"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "JavaScript"
 msgctxt "Language|"
 msgid "JavaScript React (JSX)"
-msgstr "جافاسكربت"
+msgstr "JavaScript React (JSX)"
 
 msgctxt "Language|"
 msgid "JavaScript"
@@ -671,22 +600,19 @@ msgstr "جاوة"
 
 msgctxt "Language|"
 msgid "JCL"
-msgstr ""
+msgstr "JCL"
 
 msgctxt "Language|"
 msgid "Jira"
 msgstr "جيرا"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "JSON"
 msgctxt "Language|"
 msgid "JSON5"
-msgstr "جسون"
+msgstr "JSON5"
 
 msgctxt "Language|"
 msgid "Jsonnet"
-msgstr ""
+msgstr "جسون نيت"
 
 msgctxt "Language|"
 msgid "JSON"
@@ -694,40 +620,35 @@ msgstr "جسون"
 
 msgctxt "Language|"
 msgid "JSP"
-msgstr ""
+msgstr "JSP"
 
 msgctxt "Language|"
 msgid "Julia"
 msgstr "جوليا"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "J"
-msgstr "J-113،397"
+msgstr "J"
 
-#, fuzzy
-#| msgid "Configure"
 msgctxt "Language|"
 msgid "Kate Config"
-msgstr "الضّبط"
+msgstr "ضبط Kate"
 
 msgctxt "Language|"
 msgid "KBasic"
-msgstr ""
+msgstr "KBasic"
 
-#, fuzzy
-#| msgid "Configure"
 msgctxt "Language|"
 msgid "Kconfig"
-msgstr "الضّبط"
+msgstr "ضبط K"
 
 msgctxt "Language|"
 msgid "Klipper Config"
-msgstr ""
+msgstr "ضبط Klipper"
 
 msgctxt "Language|"
 msgid "Klipper G-Code"
-msgstr ""
+msgstr "رمز G لـ Klipper"
 
 msgctxt "Language|"
 msgid "Kotlin"
@@ -737,11 +658,9 @@ msgctxt "Language|"
 msgid "k"
 msgstr "كـ"
 
-#, fuzzy
-#| msgid "Save File"
 msgctxt "Language|"
 msgid "LaTeX Log File"
-msgstr "احفظ الملفّ"
+msgstr "ملف سجل لـ LaTeX"
 
 msgctxt "Language|"
 msgid "LaTeX"
@@ -749,71 +668,59 @@ msgstr "لاتخ"
 
 msgctxt "Language|"
 msgid "LDIF"
-msgstr ""
+msgstr "LDIF"
 
-#, fuzzy
-#| msgid "QA and Scripting"
 msgctxt "Language|"
 msgid "GNU Linker Script"
-msgstr "ضمان الجودة والسّكربتة"
+msgstr "سكربت رابط GNU"
 
 msgctxt "Language|"
 msgid "LESSCSS"
-msgstr ""
+msgstr "LESSCSS"
 
 msgctxt "Language|"
 msgid "Lex/Flex"
-msgstr ""
+msgstr "ليكس/فليكس"
 
 msgctxt "Language|"
 msgid "LilyPond"
 msgstr "ليلي بوند"
 
-#, fuzzy
-#| msgctxt "Autoindent mode"
-#| msgid "Haskell"
 msgctxt "Language|"
 msgid "Literate Curry"
-msgstr "هاسكل"
+msgstr "كاري الأدبي"
 
-#, fuzzy
-#| msgctxt "Autoindent mode"
-#| msgid "Haskell"
 msgctxt "Language|"
 msgid "Literate Haskell"
-msgstr "هاسكل"
+msgstr "هاسكل الأدبي"
 
 msgctxt "Language|"
 msgid "LLVM"
-msgstr ""
+msgstr "LLVM"
 
 msgctxt "Language|"
 msgid "Logcat"
-msgstr ""
+msgstr "Logcat"
 
 msgctxt "Language|"
 msgid "Log File (advanced) Selector"
-msgstr ""
+msgstr "مُحدّد ملف السجل (متقدم)"
 
 msgctxt "Language|"
 msgid "Log File (advanced)"
-msgstr ""
+msgstr "ملف سجل (متقدم)"
 
-#, fuzzy
-#| msgid "Namespace"
 msgctxt "Language|"
 msgid "Log File (simplified) Selector"
-msgstr "فضاء تسمية"
+msgstr "مُحدّد ملف السجل (مبسط)"
 
-#, fuzzy
-#| msgid "Namespace"
 msgctxt "Language|"
 msgid "Log File (simplified)"
-msgstr "فضاء تسمية"
+msgstr "ملف سجل (مبسط)"
 
 msgctxt "Language|"
 msgid "Logtalk"
-msgstr ""
+msgstr "Logtalk"
 
 msgctxt "Language|"
 msgid "LPC"
@@ -829,7 +736,7 @@ msgstr "لوا"
 
 msgctxt "Language|"
 msgid "M3U"
-msgstr ""
+msgstr "M3U"
 
 msgctxt "Language|"
 msgid "GNU M4"
@@ -837,18 +744,15 @@ msgstr "غنو إم4"
 
 msgctxt "Language|"
 msgid "MAB-DB"
-msgstr ""
+msgstr "MAB-DB"
 
 msgctxt "Language|"
 msgid "Magma"
 msgstr "صهارة"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Makefile"
 msgctxt "Language|"
 msgid "Makefile"
-msgstr "ملفّ Make"
+msgstr "ملف ميك"
 
 msgctxt "Language|"
 msgid "Mako"
@@ -856,11 +760,11 @@ msgstr "ماكو"
 
 msgctxt "Language|"
 msgid "Troff Mandoc"
-msgstr ""
+msgstr "توثيق Troff"
 
 msgctxt "Language|"
 msgid "MapCSS"
-msgstr ""
+msgstr "MapCSS"
 
 msgctxt "Language|"
 msgid "Markdown"
@@ -868,11 +772,11 @@ msgstr "مارك‌داون"
 
 msgctxt "Language|"
 msgid "Mason"
-msgstr ""
+msgstr "ميسون"
 
 msgctxt "Language|"
 msgid "Mathematica"
-msgstr ""
+msgstr "ماثماتيكا"
 
 msgctxt "Language|"
 msgid "Matlab"
@@ -886,14 +790,13 @@ msgctxt "Language|"
 msgid "MediaWiki"
 msgstr "ميدياويكي"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "MEL"
-msgstr "Mel"
+msgstr "MEL"
 
 msgctxt "Language|"
 msgid "mergetag text"
-msgstr ""
+msgstr "نص علامة الدمج"
 
 msgctxt "Language|"
 msgid "Meson"
@@ -901,42 +804,39 @@ msgstr "ميزون"
 
 msgctxt "Language|"
 msgid "Metapost/Metafont"
-msgstr ""
+msgstr "ميتابوست/ميتافونت"
 
 msgctxt "Language|"
 msgid "Metamath"
-msgstr ""
+msgstr "ميتاماث"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "MIB"
-msgstr "م.بايت"
+msgstr "MIB"
 
 msgctxt "Language|"
 msgid "MIPS Assembler"
-msgstr ""
+msgstr "مجمّع MIPS"
 
 msgctxt "Language|"
 msgid "Modelica"
 msgstr "موديليكا"
 
-#, fuzzy
-#| msgid "Modified Lines"
 msgctxt "Language|"
 msgid "Modelines"
-msgstr "الأسطر المعدّلة"
+msgstr "Modelines"
 
 msgctxt "Language|"
 msgid "Modula-2 (ISO only)"
-msgstr ""
+msgstr "مودولا-2 (ISO فقط)"
 
 msgctxt "Language|"
 msgid "Modula-2 (PIM only)"
-msgstr ""
+msgstr "مودولا-2 (PIM فقط)"
 
 msgctxt "Language|"
 msgid "Modula-2 (R10 only)"
-msgstr ""
+msgstr "مودولا-2 (R10 فقط)"
 
 msgctxt "Language|"
 msgid "Modula-2"
@@ -948,7 +848,7 @@ msgstr "مودولا-3"
 
 msgctxt "Language|"
 msgid "MonoBasic"
-msgstr ""
+msgstr "مونو بيسيك"
 
 msgctxt "Language|"
 msgid "Music Publisher"
@@ -956,38 +856,35 @@ msgstr "ناشر موسيقى"
 
 msgctxt "Language|"
 msgid "Mustache/Handlebars (HTML)"
-msgstr ""
+msgstr "Mustache/Handlebars (HTML)"
 
 msgctxt "Language|"
 msgid "Nagios"
-msgstr ""
+msgstr "ناغيوس"
 
 msgctxt "Language|"
 msgid "Intel x86 (NASM)"
-msgstr ""
+msgstr "Intel x86 (NASM)"
 
 msgctxt "Language|"
 msgid "Nemerle"
-msgstr ""
+msgstr "نيميرل"
 
 msgctxt "Language|"
 msgid "nesC"
-msgstr ""
+msgstr "nesC"
 
 msgctxt "Language|"
 msgid "NFTables"
-msgstr ""
+msgstr "NFTables"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Configuration"
 msgctxt "Language|"
 msgid "nginx Configuration"
-msgstr "الضّبط"
+msgstr "ضبط nginx"
 
 msgctxt "Language|"
 msgid "noweb"
-msgstr ""
+msgstr "نو ويب"
 
 msgctxt "Language|"
 msgid "Objective-C++"
@@ -997,26 +894,17 @@ msgctxt "Language|"
 msgid "Objective-C"
 msgstr "سي-الكائنية"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Objective-C"
 msgctxt "Language|"
 msgid "Objective Caml Ocamllex"
-msgstr "أوبجيكتف سي"
+msgstr "كايمل الكائنية Ocamllex"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Objective-C"
 msgctxt "Language|"
 msgid "Objective Caml"
-msgstr "أوبجيكتف سي"
+msgstr "كايمل الكائنية"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Objective-C"
 msgctxt "Language|"
 msgid "Objective Caml Ocamlyacc"
-msgstr "أوبجيكتف سي"
+msgstr "كايمل الكائنية Ocamlyacc"
 
 msgctxt "Language|"
 msgid "Octave"
@@ -1028,7 +916,7 @@ msgstr "أودين"
 
 msgctxt "Language|"
 msgid "OORS"
-msgstr ""
+msgstr "OORS"
 
 msgctxt "Language|"
 msgid "OPAL"
@@ -1038,29 +926,21 @@ msgctxt "Language|"
 msgid "OpenCL"
 msgstr "أوبن‌سي‌إل"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "OpenCL"
 msgctxt "Language|"
 msgid "OpenSCAD"
-msgstr "أوبن‌سي‌إل"
+msgstr "OpenSCAD"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "PostScript"
 msgctxt "Language|"
 msgid "opsi-script"
-msgstr "PostScript"
+msgstr "سكربت opsi"
 
-#, fuzzy
-#| msgid "Normal Mode"
 msgctxt "Language|"
 msgid "Org Mode"
-msgstr "الوضع العاديّ"
+msgstr "وضع Org"
 
 msgctxt "Language|"
 msgid "Overpass QL"
-msgstr ""
+msgstr "Overpass QL"
 
 msgctxt "Language|"
 msgid "Pango"
@@ -1076,28 +956,27 @@ msgstr "بيرل"
 
 msgctxt "Language|"
 msgid "PHP/PHP"
-msgstr ""
+msgstr "PHP/PHP"
 
 msgctxt "Language|"
 msgid "PicAsm"
-msgstr ""
+msgstr "PicAsm"
 
 msgctxt "Language|"
 msgid "Pig"
 msgstr "الخنزير"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "Pike"
-msgstr "حاملو الرماح"
+msgstr "بايك"
 
 msgctxt "Language|"
 msgid "PL/I"
-msgstr ""
+msgstr "PL/I"
 
 msgctxt "Language|"
 msgid "PLY"
-msgstr ""
+msgstr "PLY"
 
 msgctxt "Language|"
 msgid "PostScript"
@@ -1105,20 +984,19 @@ msgstr "بوست سكريبت"
 
 msgctxt "Language|"
 msgid "POV-Ray"
-msgstr ""
+msgstr "POV-Ray"
 
 msgctxt "Language|"
 msgid "Praat"
 msgstr "برات"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "progress"
-msgstr "التقدّم"
+msgstr "تقدّم"
 
 msgctxt "Language|"
 msgid "Protobuf"
-msgstr ""
+msgstr "بروتوبوف"
 
 msgctxt "Language|"
 msgid "Pug"
@@ -1130,109 +1008,95 @@ msgstr "أراجوز"
 
 msgctxt "Language|"
 msgid "PureBasic"
-msgstr ""
+msgstr "بيسيك النقي"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Scripts"
 msgctxt "Language|"
 msgid "PureScript"
-msgstr "السّكربتات"
+msgstr "سكربت النقي"
 
 msgctxt "Language|"
 msgid "Pure"
-msgstr ""
+msgstr "نقي"
 
 msgctxt "Language|"
 msgid "Python"
 msgstr "بيثون"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Configuration"
 msgctxt "Language|"
 msgid "QDoc Configuration"
-msgstr "الضّبط"
+msgstr "ضبط QDoc"
 
 msgctxt "Language|"
 msgid "QFace"
-msgstr ""
+msgstr "QFace"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Makefile"
 msgctxt "Language|"
 msgid "QMake"
-msgstr "ملفّ Make"
+msgstr "QMake"
 
 msgctxt "Language|"
 msgid "QML"
 msgstr "كيو ام ال"
 
-#, fuzzy
+msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
 msgctxt "Language|"
 msgid "q"
-msgstr "Q"
+msgstr "q"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "Racket"
-msgstr "مضرب"
+msgstr "راكيت"
 
 msgctxt "Language|"
 msgid "Raku"
-msgstr ""
+msgstr "راكو"
 
 msgctxt "Language|"
 msgid "RapidQ"
-msgstr ""
+msgstr "RapidQ"
 
-#, fuzzy
-#| msgctxt "@item:intable Text context"
-#| msgid "Documentation"
 msgctxt "Language|"
 msgid "R documentation"
-msgstr "التّوثيق"
+msgstr "توثيق R"
 
 msgctxt "Language|"
 msgid "RelaxNG-Compact"
-msgstr ""
+msgstr "RelaxNG-Compact"
 
 msgctxt "Language|"
 msgid "RenPy"
-msgstr ""
+msgstr "RenPy"
 
 msgctxt "Language|"
 msgid "Replicode"
 msgstr "ريبلكود"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "reStructuredText"
-msgstr "النص المحدد:"
+msgstr "نصّ مُعاد الهيكلة"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "RETRO"
-msgstr "ريترو"
+msgstr "رجعي"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "REXX"
-msgstr "ري أكس أكس"
+msgstr "REXX"
 
 msgctxt "Language|"
 msgid "Ruby/Rails/RHTML"
-msgstr ""
+msgstr "روبي/ريلز/RHTML"
 
 msgctxt "Language|"
 msgid "RenderMan RIB"
-msgstr ""
+msgstr "RenderMan RIB"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "R Markdown"
-msgstr "مارك‌داون آر"
+msgstr "مارك‌داون R"
 
 msgctxt "Language|"
 msgid "Robot"
@@ -1240,15 +1104,15 @@ msgstr "روبوت"
 
 msgctxt "Language|"
 msgid "Roff"
-msgstr ""
+msgstr "Roff"
 
 msgctxt "Language|"
 msgid "RPM Spec"
-msgstr ""
+msgstr "مواصفات RPM"
 
 msgctxt "Language|"
 msgid "RSI IDL"
-msgstr ""
+msgstr "RSI IDL"
 
 msgctxt "Language|"
 msgid "Rich Text Format"
@@ -1262,24 +1126,17 @@ msgctxt "Language|"
 msgid "Rust"
 msgstr "صدأ"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Scripts"
 msgctxt "Language|"
 msgid "R Script"
-msgstr "السّكربتات"
+msgstr "سكربت R"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "SASS"
-msgstr "SASS6"
+msgstr "SASS"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Other"
 msgctxt "Language|"
 msgid "Sather"
-msgstr "أخرى"
+msgstr "ساثر"
 
 msgctxt "Language|"
 msgid "Scala"
@@ -1287,7 +1144,7 @@ msgstr "سكالا"
 
 msgctxt "Language|"
 msgid "Scheme"
-msgstr "المخطّط"
+msgstr "مخطّط"
 
 msgctxt "Language|"
 msgid "scilab"
@@ -1295,65 +1152,71 @@ msgstr "سايلاب"
 
 msgctxt "Language|"
 msgid "SCSS"
-msgstr ""
+msgstr "SCSS"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "sed"
-msgstr "محرر التيار"
+msgstr "sed"
 
 msgctxt "Language|"
 msgid "SELinux CIL Policy"
-msgstr ""
+msgstr "سياسة CIL لـ SELinux"
 
 msgctxt "Language|"
 msgid "SELinux File Contexts"
-msgstr ""
+msgstr "سياقات ملفات SELinux"
 
 msgctxt "Language|"
 msgid "SELinux Policy"
-msgstr ""
+msgstr "سياسة SELinux"
 
 msgctxt "Language|"
 msgid "SGML"
-msgstr ""
+msgstr "SGML"
 
 msgctxt "Language|"
 msgid "SiSU"
-msgstr ""
+msgstr "SiSU"
 
 msgctxt "Language|"
 msgid "Smali"
-msgstr ""
+msgstr "Smali"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "SML"
-msgstr "كيو‌إم‌إل"
+msgstr "SML"
 
 msgctxt "Language|"
-msgid "Snort/Suricata"
+msgid "Snakemake"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snort/Suricata"
+msgstr "Snort/Suricata"
+
+msgctxt "Language|"
 msgid "Solidity"
 msgstr "تظليل"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "سبايس"
 
 msgctxt "Language|"
 msgid "SQL (MySQL)"
-msgstr ""
+msgstr "SQL (MySQL)"
 
 msgctxt "Language|"
 msgid "SQL (Oracle)"
-msgstr ""
+msgstr "SQL (Oracle)"
 
 msgctxt "Language|"
 msgid "SQL (PostgreSQL)"
-msgstr ""
+msgstr "SQL (PostgreSQL)"
 
 msgctxt "Language|"
 msgid "SQL"
@@ -1365,54 +1228,51 @@ msgstr "ستان"
 
 msgctxt "Language|"
 msgid "Stata"
-msgstr ""
+msgstr "Stata"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "STL"
-msgstr "كيو‌إم‌إل"
+msgstr "STL"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "SubRip Subtitles"
 msgstr "ترجمات SubRip"
 
 msgctxt "Language|"
 msgid "SystemC"
-msgstr ""
+msgstr "SystemC"
 
 msgctxt "Language|"
 msgid "systemd unit"
-msgstr ""
+msgstr "وحدة systemd"
 
 msgctxt "Language|"
 msgid "SystemVerilog"
-msgstr ""
+msgstr "فيريلوج النظام"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "TADS 3"
-msgstr "تادس"
+msgstr "TADS 3"
 
 msgctxt "Language|"
 msgid "TaskJuggler"
-msgstr ""
+msgstr "TaskJuggler"
 
 msgctxt "Language|"
 msgid "Tcl/Tk"
-msgstr ""
+msgstr "Tcl/Tk"
 
 msgctxt "Language|"
 msgid "Tcsh"
-msgstr ""
+msgstr "Tcsh"
 
 msgctxt "Language|"
 msgid "Terraform"
-msgstr ""
+msgstr "تيرافورم"
 
 msgctxt "Language|"
 msgid "Texinfo"
-msgstr ""
+msgstr "معلومات Tex"
 
 msgctxt "Language|"
 msgid "Textile"
@@ -1420,11 +1280,11 @@ msgstr "نسيج"
 
 msgctxt "Language|"
 msgid "TextProto"
-msgstr ""
+msgstr "نص بروتو"
 
 msgctxt "Language|"
 msgid "TI Basic"
-msgstr ""
+msgstr "TI Basic"
 
 msgctxt "Language|"
 msgid "Tiger"
@@ -1432,33 +1292,27 @@ msgstr "نمر"
 
 msgctxt "Language|"
 msgid "TLA+"
-msgstr ""
+msgstr "TLA+"
 
 msgctxt "Language|"
 msgid "TSV"
-msgstr ""
+msgstr "TSV"
 
 msgctxt "Language|"
 msgid "txt2tags"
-msgstr ""
+msgstr "نص إلى وسم"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "JavaScript"
 msgctxt "Language|"
 msgid "TypeScript React (TSX)"
-msgstr "جافاسكربت"
+msgstr "TypeScript React (TSX)"
 
 msgctxt "Language|"
 msgid "TypeScript"
 msgstr "تايب سكريبت"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "JavaScript"
 msgctxt "Language|"
 msgid "UnrealScript"
-msgstr "جافاسكربت"
+msgstr "سكربت أنريل"
 
 msgctxt "Language|"
 msgid "Vala"
@@ -1466,41 +1320,28 @@ msgstr "فالا"
 
 msgctxt "Language|"
 msgid "Valgrind Suppression"
-msgstr ""
+msgstr "كبح Valgrind"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Apache Configuration"
 msgctxt "Language|"
 msgid "Varnish module spec file"
-msgstr "ضبط Apache"
+msgstr "ملف مواصفات و حدة Varnish"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Apache Configuration"
 msgctxt "Language|"
 msgid "Varnish Test Case language"
-msgstr "ضبط Apache"
+msgstr "لغة حالة اختبار Varnish"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Apache Configuration"
 msgctxt "Language|"
 msgid "Varnish Configuration Language"
-msgstr "ضبط Apache"
+msgstr "لغة ضبط Varnish"
 
 msgctxt "Language|"
 msgid "vCard, vCalendar, iCalendar"
-msgstr ""
+msgstr "vCard، vCalendar، iCalendar"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "Velocity"
-msgstr "سرعته "
+msgstr "سرعة"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "Vera"
 msgctxt "Language|"
 msgid "Vera"
 msgstr "فيرا"
@@ -1515,7 +1356,7 @@ msgstr "في إتش دي إل"
 
 msgctxt "Language|"
 msgid "Viper"
-msgstr ""
+msgstr "فايبر"
 
 msgctxt "Language|"
 msgid "VRML"
@@ -1525,66 +1366,53 @@ msgctxt "Language|"
 msgid "Vue"
 msgstr "فيو"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "V"
-msgstr "فولت"
+msgstr "V"
 
 msgctxt "Language|"
 msgid "Wavefront OBJ"
-msgstr ""
+msgstr "Wavefront OBJ"
 
 msgctxt "Language|"
 msgid "Wayland Trace"
-msgstr ""
+msgstr "تتبّع Wayland"
 
 msgctxt "Language|"
 msgid "Web Video Text Tracks"
-msgstr ""
+msgstr "مسارات نص فيديو الويب"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "WINE Config"
 msgctxt "Language|"
 msgid "WINE Config"
-msgstr "ضبط واين"
+msgstr "ضبط WINE"
 
 msgctxt "Language|"
 msgid "Wesnoth Markup Language"
-msgstr ""
+msgstr "لغة رقم Wesnoth"
 
 msgctxt "Language|"
 msgid "xHarbour"
-msgstr ""
+msgstr "xHarbour"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "HTML"
 msgctxt "Language|"
 msgid "XHTML"
-msgstr "HTML"
+msgstr "XHTML"
 
 msgctxt "Language|"
 msgid "XML (Debug)"
-msgstr ""
+msgstr "XML (تنقيح)"
 
 msgctxt "Language|"
 msgid "XML"
 msgstr "XML"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Scripts"
 msgctxt "Language|"
 msgid "Xonotic Script"
-msgstr "السّكربتات"
+msgstr "سكربت Xonotic"
 
-#, fuzzy
-#| msgctxt "Language Section"
-#| msgid "Configuration"
 msgctxt "Language|"
 msgid "x.org Configuration"
-msgstr "الضّبط"
+msgstr "ضبط x.org"
 
 msgctxt "Language|"
 msgid "XUL"
@@ -1592,42 +1420,35 @@ msgstr "زول"
 
 msgctxt "Language|"
 msgid "yacas"
-msgstr ""
+msgstr "ياكاس"
 
 msgctxt "Language|"
 msgid "Yacc/Bison"
-msgstr ""
+msgstr "Yacc/Bison"
 
-#, fuzzy
-#| msgctxt "Language"
-#| msgid "YAML"
 msgctxt "Language|"
 msgid "YAML"
 msgstr "YAML"
 
 msgctxt "Language|"
 msgid "YANG"
-msgstr ""
+msgstr "YANG"
 
-#, fuzzy
 msgctxt "Language|"
 msgid "YARA"
-msgstr "يارا"
+msgstr "YARA"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "Pig"
 msgctxt "Language|"
 msgid "Zig"
-msgstr "الخنزير"
+msgstr "زيغ"
 
 msgctxt "Language|"
 msgid "Zonnon"
-msgstr ""
+msgstr "زونون"
 
 msgctxt "Language|"
 msgid "Zsh"
-msgstr ""
+msgstr "Zsh"
 
 msgctxt "Language Section|"
 msgid "Scripts"
@@ -1659,7 +1480,7 @@ msgstr "الرّقْم:"
 
 msgctxt "Language Section|"
 msgid "Assembler"
-msgstr ""
+msgstr "لغة التّجميع"
 
 msgctxt "Language Section|"
 msgid "Database"
@@ -1671,23 +1492,23 @@ msgstr "ثلاثيّات الأبعاد"
 
 msgctxt "Theme|"
 msgid "Atom One Dark"
-msgstr ""
+msgstr "Atom One داكن"
 
 msgctxt "Theme|"
 msgid "Atom One Light"
-msgstr ""
+msgstr "Atom One فاتح"
 
 msgctxt "Theme|"
 msgid "ayu Dark"
-msgstr ""
+msgstr "ayu داكن"
 
 msgctxt "Theme|"
 msgid "ayu Light"
-msgstr ""
+msgstr "ayu فاتح"
 
 msgctxt "Theme|"
 msgid "ayu Mirage"
-msgstr ""
+msgstr "ayu سراب"
 
 msgctxt "Theme|"
 msgid "Breeze Dark"
@@ -1699,19 +1520,19 @@ msgstr "نسيم فاتح"
 
 msgctxt "Theme|"
 msgid "Catppuccin Frappé"
-msgstr ""
+msgstr "Catppuccin فرابيه"
 
 msgctxt "Theme|"
 msgid "Catppuccin Latte"
-msgstr ""
+msgstr "Catppuccin لاتيه"
 
 msgctxt "Theme|"
 msgid "Catppuccin Macchiato"
-msgstr ""
+msgstr "Catppuccin ماكياتو"
 
 msgctxt "Theme|"
 msgid "Catppuccin Mocha"
-msgstr ""
+msgstr "Catppuccin موكا"
 
 msgctxt "Theme|"
 msgid "Dracula"
@@ -1723,15 +1544,15 @@ msgstr "Falcon"
 
 msgctxt "Theme|"
 msgid "GitHub Dark"
-msgstr ""
+msgstr "غت هاب داكن"
 
 msgctxt "Theme|"
 msgid "GitHub Light"
-msgstr ""
+msgstr "غت هاب فاتح"
 
 msgctxt "Theme|"
 msgid "gruvbox Dark"
-msgstr ""
+msgstr "gruvbox داكن"
 
 msgctxt "Theme|"
 msgid "Homunculus"
@@ -1739,7 +1560,7 @@ msgstr "الأنيسيان"
 
 msgctxt "Theme|"
 msgid "Monokai"
-msgstr ""
+msgstr "مونوكاي"
 
 msgctxt "Theme|"
 msgid "Nord"
@@ -1759,7 +1580,7 @@ msgstr "متطرف"
 
 msgctxt "Theme|"
 msgid "Solarized Dark"
-msgstr ""
+msgstr "شمسي داكن"
 
 msgctxt "Theme|"
 msgid "Solarized Light"
@@ -1767,29 +1588,29 @@ msgstr "ضوء شمسي"
 
 msgctxt "Theme|"
 msgid "Tokyo Night Light"
-msgstr ""
+msgstr "طوكيو ليل فاتح"
 
 msgctxt "Theme|"
 msgid "Tokyo Night Storm"
-msgstr ""
+msgstr "طوكيو ليل عاصف"
 
 msgctxt "Theme|"
 msgid "Tokyo Night"
-msgstr ""
+msgstr "طوكيو ليل"
 
 msgctxt "Theme|"
 msgid "Vim Dark"
-msgstr ""
+msgstr "Vim داكن"
 
 msgctxt "Theme|"
 msgid "VSCodium Dark"
-msgstr ""
+msgstr "VSCodium داكن"
 
 #: cli/ksyntaxhighlighter.cpp:65
 msgctxt "SyntaxHighlightingCLI|"
 msgid ""
 "Command line syntax highlighter using KSyntaxHighlighting syntax definitions."
-msgstr ""
+msgstr "تمييز صياغة سطر الأوامر باستعمال تعريفات صياغة KSyntaxHighlighting."
 
 #: cli/ksyntaxhighlighter.cpp:69
 msgctxt "SyntaxHighlightingCLI|"
@@ -1802,26 +1623,28 @@ msgid ""
 "The source file to highlight. If absent, read the file from stdin and the --"
 "syntax option must be used."
 msgstr ""
+"ملف المصدر لتمييز الصياغة. إن غاب، اقرأ الملف من المدخل القياسي ويجب استعمال "
+"الخيار --syntax."
 
 #: cli/ksyntaxhighlighter.cpp:73
 msgctxt "SyntaxHighlightingCLI|"
 msgid "List all available syntax definitions."
-msgstr ""
+msgstr "اعرض قائمة بكلّ تعريفات الصياغة المتاحة."
 
 #: cli/ksyntaxhighlighter.cpp:75
 msgctxt "SyntaxHighlightingCLI|"
 msgid "List all available themes."
-msgstr ""
+msgstr "اعرض قائمة بكلّ السِّمات المتاحة."
 
 #: cli/ksyntaxhighlighter.cpp:79
 msgctxt "SyntaxHighlightingCLI|"
 msgid "Download new/updated syntax definitions."
-msgstr ""
+msgstr "نزّل تعريفات صياغة جديدة/محدثة."
 
 #: cli/ksyntaxhighlighter.cpp:83
 msgctxt "SyntaxHighlightingCLI|"
 msgid "File to write HTML output to (default: stdout)."
-msgstr ""
+msgstr "الملف اكتب فيه خرج HTML (مبدئي: الخرج القياسي)."
 
 #: cli/ksyntaxhighlighter.cpp:84
 msgctxt "SyntaxHighlightingCLI|"
@@ -1833,7 +1656,7 @@ msgctxt "SyntaxHighlightingCLI|"
 msgid ""
 "Highlight using this syntax definition (default: auto-detect based on input "
 "file)."
-msgstr ""
+msgstr "ميّز باستعمال تعريف الصياغة هذا (مبدئي: كشف آلي بناءً على ملف الإدخال)."
 
 #: cli/ksyntaxhighlighter.cpp:89
 msgctxt "SyntaxHighlightingCLI|"
@@ -1841,11 +1664,9 @@ msgid "syntax"
 msgstr "الصياغة"
 
 #: cli/ksyntaxhighlighter.cpp:93
-#, fuzzy
-#| msgid "Colors have been imported for highlighting: %1"
 msgctxt "SyntaxHighlightingCLI|"
 msgid "Color theme to use for highlighting."
-msgstr "استوردت الألوان للإبراز: %1"
+msgstr "سمة اللون استعملها للتمييز."
 
 #: cli/ksyntaxhighlighter.cpp:94
 msgctxt "SyntaxHighlightingCLI|"
@@ -1857,6 +1678,7 @@ msgctxt "SyntaxHighlightingCLI|"
 msgid ""
 "Use the specified format instead of html. Must be html, ansi or ansi256."
 msgstr ""
+"استعمل التنسيق المحدد بدلاً من html. يجب أن يكون html أو ansi أو ansi256."
 
 #: cli/ksyntaxhighlighter.cpp:99
 msgctxt "SyntaxHighlightingCLI|"
@@ -1869,6 +1691,8 @@ msgid ""
 "Add information to debug a syntax file. Only works with --output-format=ansi "
 "or ansi256. Possible values are format, region, context, stackSize and all."
 msgstr ""
+"أضف معلومات لتنقيح ملف الصياغة. يعمل فقط مع --output-format=ansi أو ansi256. "
+"القيم الممكنة هي format و region و context و stackSize و all."
 
 #: cli/ksyntaxhighlighter.cpp:107
 msgctxt "SyntaxHighlightingCLI|"
@@ -1878,15 +1702,12 @@ msgstr "النوع"
 #: cli/ksyntaxhighlighter.cpp:111
 msgctxt "SyntaxHighlightingCLI|"
 msgid "Disable ANSI background for the default color."
-msgstr ""
+msgstr "عطّل خلفية ANSI للّون المبدئي."
 
 #: cli/ksyntaxhighlighter.cpp:115
-#, fuzzy
-#| msgctxt "short translation please"
-#| msgid "Set the background color for the current line."
 msgctxt "SyntaxHighlightingCLI|"
 msgid "Select background color role from theme."
-msgstr "اضبط لون خلفيّة السّطر الحاليّ."
+msgstr "اختر دور لون الخلفية من السمة."
 
 #: cli/ksyntaxhighlighter.cpp:116
 msgctxt "SyntaxHighlightingCLI|"
@@ -1896,7 +1717,7 @@ msgstr "الدّور"
 #: cli/ksyntaxhighlighter.cpp:120
 msgctxt "SyntaxHighlightingCLI|"
 msgid "For ansi and ansi256 formats, flush the output buffer on each line."
-msgstr ""
+msgstr "لتنسيقي ansi و ansi256، افرغ مخزن الخرج المؤقت عند كل سطر."
 
 #: cli/ksyntaxhighlighter.cpp:125
 msgctxt "SyntaxHighlightingCLI|"
@@ -1904,6 +1725,8 @@ msgid ""
 "Set HTML page's title\n"
 "(default: the filename or \"KSyntaxHighlighter\" if reading from stdin)."
 msgstr ""
+"اضبط عنوان صفحة HTML\n"
+"(مبدئي: اسم الملف أو \"KSyntaxHighlighter\" إن قرأ من المدخل القياسي)."
 
 #: cli/ksyntaxhighlighter.cpp:126
 msgctxt "SyntaxHighlightingCLI|"
@@ -1918,19 +1741,19 @@ msgstr "لا شيء"
 #: lib/definitiondownloader.cpp:64
 msgctxt "QObject|"
 msgid "All syntax definitions are up-to-date."
-msgstr ""
+msgstr "كلّ تعريفات الصّياغة مُحدّثة."
 
 #: lib/definitiondownloader.cpp:78
 #, qt-format
 msgctxt "QObject|@info"
 msgid "Downloading new syntax definition for '%1'…"
-msgstr ""
+msgstr "نزّل تعريف صياغة جديد لـ «%1»…"
 
 #: lib/definitiondownloader.cpp:85
 #, qt-format
 msgctxt "QObject|@info"
 msgid "Updating syntax definition for '%1' to version %2…"
-msgstr ""
+msgstr "حدّث تعريف الصياغة لـ «%1» إلى الإصدار %2…"
 
 #, fuzzy
 #~ msgctxt "Language|"
diff -pruN 6.18.0-1/poqm/ast/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ast/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ast/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ast/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1022,6 +1022,10 @@ msgid "QML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1166,6 +1170,10 @@ msgid "SML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1174,6 +1182,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/az/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/az/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/az/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/az/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1052,6 +1052,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1197,6 +1201,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1205,6 +1213,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/be/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/be/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/be/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/be/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1054,6 +1054,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1198,6 +1202,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1206,6 +1214,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/bg/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/bg/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/bg/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/bg/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-28 18:31+0200\n"
+"PO-Revision-Date: 2025-09-26 15:16+0200\n"
 "Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
 "Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
 "Language: bg\n"
@@ -1029,6 +1029,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1173,6 +1177,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1181,6 +1189,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/bn/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/bn/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/bn/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/bn/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1265,6 +1265,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1445,6 +1449,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1452,6 +1460,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 msgctxt "Language|"
 msgid "Spice"
diff -pruN 6.18.0-1/poqm/br/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/br/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/br/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/br/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1374,6 +1374,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1562,6 +1566,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1569,6 +1577,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/bs/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/bs/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/bs/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/bs/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1562,6 +1562,10 @@ msgctxt "Language|"
 msgid "QML"
 msgstr "QML"
 
+msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "q"
@@ -1779,6 +1783,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1786,6 +1794,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ca/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ca/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ca/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ca/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: syntax-highlighting\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
-"PO-Revision-Date: 2025-07-24 09:50+0200\n"
+"PO-Revision-Date: 2025-10-04 11:38+0200\n"
 "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
 "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
 "Language: ca\n"
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Accelerator-Marker: &\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.04.0\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1031,6 +1031,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1175,6 +1179,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1183,6 +1191,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ca@valencia/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ca@valencia/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ca@valencia/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ca@valencia/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: syntax-highlighting\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
-"PO-Revision-Date: 2025-07-24 09:50+0200\n"
+"PO-Revision-Date: 2025-09-29 10:12+0200\n"
 "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
 "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
 "Language: ca@valencia\n"
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Accelerator-Marker: &\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.04.0\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1031,6 +1031,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1175,6 +1179,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1183,6 +1191,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/cs/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/cs/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/cs/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/cs/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1030,6 +1030,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1175,6 +1179,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1183,6 +1191,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/cy/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/cy/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/cy/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/cy/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1128,6 +1128,10 @@ msgid "QML"
 msgstr "SQL"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1289,6 +1293,10 @@ msgid "SML"
 msgstr "SQL"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1297,6 +1305,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/da/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/da/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/da/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/da/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1067,6 +1067,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1211,6 +1215,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1219,6 +1227,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/de/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/de/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/de/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/de/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1064,6 +1064,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1208,6 +1212,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1216,6 +1224,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/el/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/el/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/el/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/el/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1066,6 +1066,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1210,6 +1214,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1218,6 +1226,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/en_GB/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/en_GB/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/en_GB/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/en_GB/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1048,6 +1048,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1192,6 +1196,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1200,6 +1208,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/eo/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/eo/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/eo/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/eo/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1044,6 +1044,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1188,6 +1192,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1196,6 +1204,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/es/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/es/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/es/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/es/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: syntaxhighlighting6_qt\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-24 20:04+0100\n"
+"PO-Revision-Date: 2025-10-04 13:43+0100\n"
 "Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
 "Language-Team: Spanish <kde-l10n-es@kde.org>\n"
 "Language: es\n"
@@ -23,7 +23,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "First-Translator: Boris Wesslowski <Boris@Wesslowski.com>\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.08.1\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Qt-Contexts: true\n"
 
@@ -1036,6 +1036,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1180,6 +1184,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1188,6 +1196,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/et/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/et/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/et/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/et/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1050,6 +1050,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1194,6 +1198,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1202,6 +1210,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/eu/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/eu/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/eu/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/eu/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -14,14 +14,14 @@ msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-24 16:20+0200\n"
+"PO-Revision-Date: 2025-10-02 21:21+0200\n"
 "Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
 "Language-Team: Basque <kde-i18n-eu@kde.org>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.08.1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Qt-Contexts: true\n"
 
@@ -1034,6 +1034,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1178,6 +1182,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1186,6 +1194,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/fa/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/fa/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/fa/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/fa/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1435,6 +1435,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1632,6 +1636,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1639,6 +1647,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/fi/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/fi/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/fi/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/fi/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-06-03 19:52+0300\n"
+"PO-Revision-Date: 2025-09-16 20:28+0300\n"
 "Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
 "Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
 "Language: fi\n"
@@ -33,7 +33,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 23.08.5\n"
+"X-Generator: Lokalize 25.04.0\n"
 "X-Qt-Contexts: true\n"
 
 msgctxt "Language|"
@@ -612,12 +612,9 @@ msgctxt "Language|"
 msgid "Jira"
 msgstr "Jira"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "JSON"
 msgctxt "Language|"
 msgid "JSON5"
-msgstr "JSON"
+msgstr "JSON5"
 
 msgctxt "Language|"
 msgid "Jsonnet"
@@ -667,11 +664,9 @@ msgctxt "Language|"
 msgid "k"
 msgstr "k"
 
-#, fuzzy
-#| msgid "Save File"
 msgctxt "Language|"
 msgid "LaTeX Log File"
-msgstr "Tallenna tiedosto"
+msgstr "LaTeX-lokitiedosto"
 
 msgctxt "Language|"
 msgid "LaTeX"
@@ -713,23 +708,17 @@ msgctxt "Language|"
 msgid "Logcat"
 msgstr "Logcat"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "Log File (advanced)"
 msgctxt "Language|"
 msgid "Log File (advanced) Selector"
-msgstr "Lokitiedosto (mutkikas)"
+msgstr "Lokitiedoston (mutkikas) valitsin"
 
 msgctxt "Language|"
 msgid "Log File (advanced)"
 msgstr "Lokitiedosto (mutkikas)"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "Log File (simplified)"
 msgctxt "Language|"
 msgid "Log File (simplified) Selector"
-msgstr "Lokitiedosto (yksinkertaistettu)"
+msgstr "Lokitiedoston (yksinkertaistettu) valitsin"
 
 msgctxt "Language|"
 msgid "Log File (simplified)"
@@ -893,7 +882,7 @@ msgstr "nesC"
 
 msgctxt "Language|"
 msgid "NFTables"
-msgstr ""
+msgstr "NFTables"
 
 msgctxt "Language|"
 msgid "nginx Configuration"
@@ -1056,6 +1045,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1201,6 +1194,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1209,6 +1206,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
@@ -1386,7 +1387,7 @@ msgstr "Wayland Trace"
 
 msgctxt "Language|"
 msgid "Web Video Text Tracks"
-msgstr ""
+msgstr "Verkkovideon tekstiraidat"
 
 msgctxt "Language|"
 msgid "WINE Config"
@@ -1400,12 +1401,9 @@ msgctxt "Language|"
 msgid "xHarbour"
 msgstr "xHarbour"
 
-#, fuzzy
-#| msgctxt "Language|"
-#| msgid "HTML"
 msgctxt "Language|"
 msgid "XHTML"
-msgstr "HTML"
+msgstr "XHTML"
 
 msgctxt "Language|"
 msgid "XML (Debug)"
diff -pruN 6.18.0-1/poqm/fr/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/fr/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/fr/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/fr/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -26,7 +26,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-25 10:34+0200\n"
+"PO-Revision-Date: 2025-09-24 14:03+0200\n"
 "Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n"
 "Language-Team: French <French <kde-francophone@kde.org>>\n"
 "Language: fr\n"
@@ -36,7 +36,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Accelerator-Marker: &\n"
 "X-Environment: kde\n"
-"X-Generator: Lokalize 25.07.80\n"
+"X-Generator: Lokalize 25.08.1\n"
 "X-Qt-Contexts: true\n"
 "X-Text-Markup: qtrich\n"
 
@@ -1049,6 +1049,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1193,6 +1197,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort / Suricata"
 
@@ -1201,6 +1209,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/fy/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/fy/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/fy/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/fy/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1445,6 +1445,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1646,6 +1650,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1653,6 +1661,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ga/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ga/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ga/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ga/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1496,6 +1496,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1703,6 +1707,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1710,6 +1718,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/gl/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/gl/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/gl/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/gl/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1045,6 +1045,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1189,6 +1193,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1197,6 +1205,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/gu/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/gu/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/gu/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/gu/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1439,6 +1439,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1639,6 +1643,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1646,6 +1654,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/he/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/he/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/he/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/he/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -19,14 +19,14 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2025-07-24 09:40+0300\n"
+"PO-Revision-Date: 2025-10-04 10:52+0300\n"
 "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 "Language-Team: צוות התרגום של KDE ישראל\n"
 "Language: he\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.08.1\n"
 "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
 "n % 10 == 0) ? 2 : 3));\n"
 "X-Qt-Contexts: true\n"
@@ -249,7 +249,7 @@ msgstr "CSS"
 
 msgctxt "Language|"
 msgid "CSV (pipe)"
-msgstr "CSV (קו אופקי)"
+msgstr "CSV (קו אנכי)"
 
 msgctxt "Language|"
 msgid "CSV (semicolon)"
@@ -1040,6 +1040,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1184,6 +1188,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1192,6 +1200,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
@@ -1599,7 +1611,8 @@ msgstr "VSCodium כהה"
 msgctxt "SyntaxHighlightingCLI|"
 msgid ""
 "Command line syntax highlighter using KSyntaxHighlighting syntax definitions."
-msgstr "מדגיש תחביר בשורת הפקודה באמצעות הגדרות התחביר של KSyntaxHighlighting."
+msgstr ""
+"מדגיש תחביר בשורת הפקודות באמצעות הגדרות התחביר של KSyntaxHighlighting."
 
 #: cli/ksyntaxhighlighter.cpp:69
 msgctxt "SyntaxHighlightingCLI|"
diff -pruN 6.18.0-1/poqm/hi/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/hi/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/hi/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/hi/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1297,6 +1297,10 @@ msgid "QML"
 msgstr "एसएमएल"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1479,6 +1483,10 @@ msgid "SML"
 msgstr "एसएमएल"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1486,6 +1494,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgid "Spice"
 msgctxt "Language|"
diff -pruN 6.18.0-1/poqm/hr/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/hr/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/hr/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/hr/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1459,6 +1459,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1659,6 +1663,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1666,6 +1674,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/hsb/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/hsb/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/hsb/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/hsb/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1054,6 +1054,10 @@ msgid "QML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1202,6 +1206,10 @@ msgid "SML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1210,6 +1218,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/hu/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/hu/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/hu/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/hu/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1030,6 +1030,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1174,6 +1178,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1182,6 +1190,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ia/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ia/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ia/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ia/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1039,6 +1039,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1183,6 +1187,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1191,6 +1199,10 @@ msgid "Solidity"
 msgstr "Soliditate (Solidity)"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/id/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/id/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/id/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/id/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1060,6 +1060,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1204,6 +1208,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1212,6 +1220,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/is/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/is/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/is/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/is/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1039,6 +1039,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1183,6 +1187,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1191,6 +1199,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/it/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/it/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/it/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/it/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -13,7 +13,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-24 16:09+0200\n"
+"PO-Revision-Date: 2025-09-29 15:01+0200\n"
 "Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
 "Language-Team: Italian <kde-i18n-it@kde.org>\n"
 "Language: it\n"
@@ -21,7 +21,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 25.11.70\n"
+"X-Generator: Lokalize 25.08.1\n"
 "X-Qt-Contexts: true\n"
 
 msgctxt "Language|"
@@ -1039,6 +1039,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1183,6 +1187,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1191,6 +1199,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ja/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ja/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ja/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ja/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1459,6 +1459,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1657,6 +1661,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1664,6 +1672,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ka/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ka/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ka/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ka/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Qt-Contexts: true\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.7\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1022,6 +1022,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1166,6 +1170,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1174,6 +1182,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/kk/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/kk/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/kk/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/kk/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1561,6 +1561,10 @@ msgctxt "Language|"
 msgid "QML"
 msgstr "QML"
 
+msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "q"
@@ -1778,6 +1782,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1785,6 +1793,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/km/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/km/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/km/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/km/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1532,6 +1532,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1745,6 +1749,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1752,6 +1760,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ko/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ko/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ko/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ko/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1031,6 +1031,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1175,6 +1179,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1183,6 +1191,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ku/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ku/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ku/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ku/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1057,6 +1057,10 @@ msgid "QML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1208,6 +1212,10 @@ msgid "SML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1216,6 +1224,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/lb/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/lb/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/lb/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/lb/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1375,6 +1375,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1566,6 +1570,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1573,6 +1581,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/lt/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/lt/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/lt/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/lt/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1561,6 +1561,10 @@ msgctxt "Language|"
 msgid "QML"
 msgstr "QML"
 
+msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "q"
@@ -1779,6 +1783,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1786,6 +1794,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/lv/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/lv/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/lv/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/lv/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -13,7 +13,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-08-21 12:47+0300\n"
+"PO-Revision-Date: 2025-09-24 16:54+0300\n"
 "Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\n"
 "Language-Team: Latvian <kde-i18n-doc@kde.org>\n"
 "Language: lv\n"
@@ -1034,6 +1034,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1178,6 +1182,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1186,6 +1194,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/mai/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/mai/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/mai/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/mai/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1455,6 +1455,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1655,6 +1659,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1662,6 +1670,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/mk/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/mk/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/mk/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/mk/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1391,6 +1391,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1576,6 +1580,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1583,6 +1591,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ml/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ml/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ml/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ml/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1128,6 +1128,10 @@ msgid "QML"
 msgstr "GLSL"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1280,6 +1284,10 @@ msgid "SML"
 msgstr "GLSL"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1288,6 +1296,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/mr/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/mr/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/mr/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/mr/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1199,6 +1199,10 @@ msgid "QML"
 msgstr "SQL"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1369,6 +1373,10 @@ msgid "SML"
 msgstr "LSL"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1377,6 +1385,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/ms/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ms/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ms/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ms/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1371,6 +1371,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1561,6 +1565,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1568,6 +1576,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/nb/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/nb/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/nb/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/nb/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1039,6 +1039,10 @@ msgid "QML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1183,6 +1187,10 @@ msgid "SML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1191,6 +1199,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/nds/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/nds/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/nds/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/nds/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1593,6 +1593,10 @@ msgctxt "Language|"
 msgid "QML"
 msgstr "QML"
 
+msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "q"
@@ -1813,6 +1817,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1820,6 +1828,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/ne/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ne/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ne/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ne/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1424,6 +1424,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1621,6 +1625,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1628,6 +1636,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/nl/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/nl/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/nl/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/nl/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2025-07-24 13:54+0200\n"
+"PO-Revision-Date: 2025-10-04 13:24+0200\n"
 "Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
 "Language-Team: \n"
 "Language: nl\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 25.04.3\n"
+"X-Generator: Lokalize 25.08.1\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1023,6 +1023,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1167,6 +1171,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1175,6 +1183,10 @@ msgid "Solidity"
 msgstr "Soliditeit"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/nn/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/nn/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/nn/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/nn/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1040,6 +1040,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1184,6 +1188,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1192,6 +1200,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/oc/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/oc/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/oc/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/oc/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1171,6 +1171,10 @@ msgid "QML"
 msgstr "SQL"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1334,6 +1338,10 @@ msgid "SML"
 msgstr "SQL"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1342,6 +1350,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/pa/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/pa/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/pa/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/pa/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1263,6 +1263,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1444,6 +1448,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1451,6 +1459,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/pl/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/pl/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/pl/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/pl/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1036,6 +1036,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1180,6 +1184,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1188,6 +1196,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/pt/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/pt/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/pt/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/pt/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1088,6 +1088,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1232,6 +1236,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1240,6 +1248,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/pt_BR/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/pt_BR/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/pt_BR/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/pt_BR/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -5,14 +5,14 @@
 # Luiz Fernando Ranghetti <elchevive@opensuse.org>, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024.
 # André Marcelo Alvarenga <alvarenga@kde.org>, 2019, 2020.
 # Thiago Masato Costa Sueto <herzenschein@gmail.com>, 2021.
-# Geraldo Simiao <geraldosimiao@fedoraproject.org>, 2023.
+# SPDX-FileCopyrightText: 2023, 2025 Geraldo Simiao <geraldosimiao@fedoraproject.org>
 # SPDX-FileCopyrightText: 2025 Marcus Gama <marcus.gama@gmail.com>
 msgid ""
 msgstr ""
 "Project-Id-Version: syntaxhighlighting5_qt\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
-"PO-Revision-Date: 2025-08-28 08:58-0300\n"
-"Last-Translator: Marcus Gama <marcus.gama@gmail.com>\n"
+"PO-Revision-Date: 2025-10-04 01:54-0300\n"
+"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
 "Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 25.08.0\n"
+"X-Generator: Lokalize 25.08.1\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1031,6 +1031,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1175,6 +1179,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1183,6 +1191,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ro/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ro/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ro/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ro/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1065,6 +1065,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1209,6 +1213,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1217,6 +1225,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ru/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ru/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ru/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ru/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1055,6 +1055,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1199,6 +1203,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1207,6 +1215,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/sa/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sa/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sa/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sa/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1037,6 +1037,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1181,6 +1185,10 @@ msgid "SML"
 msgstr "एस एम एल"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "श्वास/सुरिकाता"
 
@@ -1189,6 +1197,10 @@ msgid "Solidity"
 msgstr "ठोसता"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "मसाला"
 
diff -pruN 6.18.0-1/poqm/se/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/se/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/se/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/se/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1029,6 +1029,10 @@ msgid "QML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1173,6 +1177,10 @@ msgid "SML"
 msgstr ""
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1181,6 +1189,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/si/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/si/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/si/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/si/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1476,6 +1476,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1680,6 +1684,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1687,6 +1695,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/sk/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sk/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sk/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sk/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1054,6 +1054,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1198,6 +1202,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1206,6 +1214,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/sl/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sl/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sl/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sl/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-24 06:56+0200\n"
+"PO-Revision-Date: 2025-10-04 08:21+0200\n"
 "Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
 "Language-Team: Slovenian <lugos-slo@lugos.si>\n"
 "Language: sl\n"
@@ -30,7 +30,7 @@ msgstr ""
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
 "%100<=4 ? 2 : 3);\n"
 "Translator: Andrej Mernik <andrejm@ubuntu.si>\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.7\n"
 "X-Qt-Contexts: true\n"
 
 msgctxt "Language|"
@@ -1042,6 +1042,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1186,6 +1190,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1194,6 +1202,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/sq/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sq/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sq/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sq/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1431,6 +1431,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1629,6 +1633,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1636,6 +1644,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/sr/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sr/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sr/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sr/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1080,6 +1080,10 @@ msgid "QML"
 msgstr "КуМЛ"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "Ку"
 
@@ -1224,6 +1228,10 @@ msgid "SML"
 msgstr "СМЛ"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1232,6 +1240,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "спајс"
 
diff -pruN 6.18.0-1/poqm/sr@ijekavian/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sr@ijekavian/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sr@ijekavian/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sr@ijekavian/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1079,6 +1079,10 @@ msgid "QML"
 msgstr "КуМЛ"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "Ку"
 
@@ -1223,6 +1227,10 @@ msgid "SML"
 msgstr "СМЛ"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1231,6 +1239,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "спајс"
 
diff -pruN 6.18.0-1/poqm/sr@ijekavianlatin/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sr@ijekavianlatin/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sr@ijekavianlatin/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sr@ijekavianlatin/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1079,6 +1079,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "Q"
 
@@ -1223,6 +1227,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1231,6 +1239,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/sr@latin/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sr@latin/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sr@latin/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sr@latin/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1079,6 +1079,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "Q"
 
@@ -1223,6 +1227,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1231,6 +1239,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/sv/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/sv/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/sv/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/sv/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2025-07-28 18:40+0200\n"
+"PO-Revision-Date: 2025-09-26 13:51+0200\n"
 "Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n"
 "Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
 "Language: sv\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 25.04.2\n"
+"X-Generator: Lokalize 25.08.0\n"
 
 msgctxt "Language|"
 msgid "4DOS BatchToMemory"
@@ -1022,6 +1022,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1166,6 +1170,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1174,6 +1182,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ta/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ta/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ta/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ta/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1392,6 +1392,10 @@ msgstr ""
 "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1578,6 +1582,10 @@ msgstr ""
 "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1585,6 +1593,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 msgctxt "Language|"
 msgid "Spice"
diff -pruN 6.18.0-1/poqm/tg/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/tg/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/tg/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/tg/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1078,6 +1078,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1222,6 +1226,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1230,6 +1238,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/th/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/th/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/th/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/th/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1391,6 +1391,10 @@ msgid "QML"
 msgstr "ภาษา QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1559,6 +1563,10 @@ msgid "SML"
 msgstr "ภาษา LSL"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1567,6 +1575,10 @@ msgid "Solidity"
 msgstr ""
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr ""
 
diff -pruN 6.18.0-1/poqm/tr/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/tr/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/tr/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/tr/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-07-24 20:24+0300\n"
+"PO-Revision-Date: 2025-10-04 19:57+0300\n"
 "Last-Translator: Emir SARI <emir_sari@îcloud.com>\n"
 "Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
 "Language: tr\n"
@@ -27,7 +27,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 25.04.2\n"
+"X-Generator: Lokalize 25.08.1\n"
 "X-Qt-Contexts: true\n"
 
 msgctxt "Language|"
@@ -1039,6 +1039,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1183,6 +1187,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1191,6 +1199,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/ug/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/ug/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/ug/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/ug/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1488,6 +1488,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1692,6 +1696,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1699,6 +1707,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/uk/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/uk/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/uk/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/uk/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: syntaxhighlighting5_qt\n"
-"PO-Revision-Date: 2025-07-24 09:51+0300\n"
+"PO-Revision-Date: 2025-10-04 18:29+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
 "Language: uk\n"
@@ -1029,6 +1029,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr "Quarto"
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1173,6 +1177,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1181,6 +1189,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/uz/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/uz/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/uz/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/uz/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1363,6 +1363,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1553,6 +1557,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1560,6 +1568,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/uz@cyrillic/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/uz@cyrillic/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/uz@cyrillic/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/uz@cyrillic/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1363,6 +1363,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1553,6 +1557,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1560,6 +1568,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/vi/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/vi/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/vi/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/vi/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1408,6 +1408,10 @@ msgid "QML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1605,6 +1609,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1612,6 +1620,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/wa/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/wa/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/wa/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/wa/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1477,6 +1477,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1679,6 +1683,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1686,6 +1694,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 #| msgctxt "Language"
 #| msgid "Spice"
diff -pruN 6.18.0-1/poqm/xh/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/xh/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/xh/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/xh/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1156,6 +1156,10 @@ msgid "QML"
 msgstr "Ulwimi"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr ""
 
@@ -1316,6 +1320,10 @@ msgid "SML"
 msgstr "Ulwimi"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr ""
 
@@ -1323,6 +1331,10 @@ msgctxt "Language|"
 msgid "Solidity"
 msgstr ""
 
+msgctxt "Language|"
+msgid "SPARQL"
+msgstr ""
+
 #, fuzzy
 msgctxt "Language|"
 msgid "Spice"
diff -pruN 6.18.0-1/poqm/zh_CN/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/zh_CN/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/zh_CN/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/zh_CN/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -1025,6 +1025,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1169,6 +1173,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr ""
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1177,6 +1185,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/poqm/zh_TW/syntaxhighlighting6_qt.po 6.19.0-0ubuntu1/poqm/zh_TW/syntaxhighlighting6_qt.po
--- 6.18.0-1/poqm/zh_TW/syntaxhighlighting6_qt.po	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/poqm/zh_TW/syntaxhighlighting6_qt.po	2025-10-05 12:41:31.000000000 +0000
@@ -17,7 +17,7 @@ msgstr ""
 "Project-Id-Version: katepart4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2016-09-08 07:30+0000\n"
-"PO-Revision-Date: 2025-08-29 20:54+0900\n"
+"PO-Revision-Date: 2025-09-30 16:40+0900\n"
 "Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
 "Language-Team: Traditional Chinese <zh-l10n@lists.slat.org>\n"
 "Language: zh_TW\n"
@@ -1037,6 +1037,10 @@ msgid "QML"
 msgstr "QML"
 
 msgctxt "Language|"
+msgid "Quarto"
+msgstr ""
+
+msgctxt "Language|"
 msgid "q"
 msgstr "q"
 
@@ -1181,6 +1185,10 @@ msgid "SML"
 msgstr "SML"
 
 msgctxt "Language|"
+msgid "Snakemake"
+msgstr "Snakemake"
+
+msgctxt "Language|"
 msgid "Snort/Suricata"
 msgstr "Snort/Suricata"
 
@@ -1189,6 +1197,10 @@ msgid "Solidity"
 msgstr "Solidity"
 
 msgctxt "Language|"
+msgid "SPARQL"
+msgstr "SPARQL"
+
+msgctxt "Language|"
 msgid "Spice"
 msgstr "Spice"
 
diff -pruN 6.18.0-1/src/indexer/katehighlightingindexer.cpp 6.19.0-0ubuntu1/src/indexer/katehighlightingindexer.cpp
--- 6.18.0-1/src/indexer/katehighlightingindexer.cpp	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/indexer/katehighlightingindexer.cpp	2025-10-05 12:41:31.000000000 +0000
@@ -209,10 +209,10 @@ namespace
 {
 
 struct KateVersion {
-    int majorRevision;
-    int minorRevision;
+    uint majorRevision;
+    uint minorRevision;
 
-    KateVersion(int majorRevision = 0, int minorRevision = 0)
+    KateVersion(uint majorRevision = 0, uint minorRevision = 0)
         : majorRevision(majorRevision)
         , minorRevision(minorRevision)
     {
@@ -237,11 +237,18 @@ public:
         m_currentContext = nullptr;
 
         const auto idx = verStr.indexOf(u'.');
-        if (idx <= 0) {
-            qWarning() << filename << "invalid kateversion" << verStr;
+        bool okVersion = idx > 0;
+        if (okVersion) {
+            m_currentDefinition->kateVersion = {
+                verStr.sliced(0, idx).toUInt(&okVersion),
+                verStr.sliced(idx + 1).toUInt(&okVersion),
+            };
+        }
+        if (!okVersion) {
+            qWarning() << filename << "invalid kateversion. The expected format is 'major.minor' (e.g. \"5.79\")." << verStr;
             m_success = false;
-        } else {
-            m_currentDefinition->kateVersion = {verStr.sliced(0, idx).toInt(), verStr.sliced(idx + 1).toInt()};
+            // continue with a recent version to avoid warning such as "available from XXX"
+            m_currentDefinition->kateVersion = {9999999, 0};
         }
 
         auto checkName = [this, &filename](char const *nameType, const QString &name) {
diff -pruN 6.18.0-1/src/lib/CMakeLists.txt 6.19.0-0ubuntu1/src/lib/CMakeLists.txt
--- 6.18.0-1/src/lib/CMakeLists.txt	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/CMakeLists.txt	2025-10-05 12:41:31.000000000 +0000
@@ -50,6 +50,7 @@ ecm_generate_export_header(KF6SyntaxHigh
     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
 )
 
+qt_extract_metatypes(KF6SyntaxHighlighting)
 target_link_libraries(KF6SyntaxHighlighting
     PUBLIC
         Qt6::Gui
@@ -73,12 +74,11 @@ set(Forwarding_Header_Names
 ecm_generate_headers(CamelCase_HEADERS
     HEADER_NAMES ${Forwarding_Header_Names}
     REQUIRED_HEADERS SyntaxHighlighting_HEADERS
-    OUTPUT_DIR ${CMAKE_BINARY_DIR}/KSyntaxHighlighting/KSyntaxHighlighting
+    SHARED_PREFIX KSyntaxHighlighting
 )
 
 target_include_directories(KF6SyntaxHighlighting
     INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KSyntaxHighlighting>"
-    PUBLIC "$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/KSyntaxHighlighting;>"
 )
 
 install(TARGETS KF6SyntaxHighlighting EXPORT KF6SyntaxHighlightingTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff -pruN 6.18.0-1/src/lib/ansihighlighter.cpp 6.19.0-0ubuntu1/src/lib/ansihighlighter.cpp
--- 6.18.0-1/src/lib/ansihighlighter.cpp	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/ansihighlighter.cpp	2025-10-05 12:41:31.000000000 +0000
@@ -13,7 +13,6 @@
 #include "ksyntaxhighlighting_logging.h"
 #include "state.h"
 #include "state_p.h"
-#include "theme.h"
 
 #include <QColor>
 #include <QFile>
diff -pruN 6.18.0-1/src/lib/definition.h 6.19.0-0ubuntu1/src/lib/definition.h
--- 6.18.0-1/src/lib/definition.h	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/definition.h	2025-10-05 12:41:31.000000000 +0000
@@ -391,7 +391,7 @@ public:
      * Returns the marker that starts a single line comment.
      * For instance, in C++ the single line comment marker is "//".
      * \since 5.50
-     * \sa singleLineCommentPosition();
+     * \sa singleLineCommentPosition()
      */
     QString singleLineCommentMarker() const;
 
@@ -399,7 +399,7 @@ public:
      * Returns the insert position of the comment marker for sinle line
      * comments.
      * \since 5.50
-     * \sa singleLineCommentMarker();
+     * \sa singleLineCommentMarker()
      */
     CommentPosition singleLineCommentPosition() const;
 
diff -pruN 6.18.0-1/src/lib/htmlhighlighter.cpp 6.19.0-0ubuntu1/src/lib/htmlhighlighter.cpp
--- 6.18.0-1/src/lib/htmlhighlighter.cpp	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/htmlhighlighter.cpp	2025-10-05 12:41:31.000000000 +0000
@@ -12,7 +12,6 @@
 #include "format.h"
 #include "ksyntaxhighlighting_logging.h"
 #include "state.h"
-#include "theme.h"
 
 #include <QFile>
 #include <QFileInfo>
diff -pruN 6.18.0-1/src/lib/repository.h 6.19.0-0ubuntu1/src/lib/repository.h
--- 6.18.0-1/src/lib/repository.h	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/repository.h	2025-10-05 12:41:31.000000000 +0000
@@ -215,11 +215,9 @@ public:
     Q_INVOKABLE KSyntaxHighlighting::Theme theme(const QString &themeName) const;
 
     /*!
-     * \enum ResolveState
-     *
      * Built-in default theme types.
      * \sa defaultTheme()
-     * 
+     *
      * \value LightTheme
      * \value DarkTheme
      */
@@ -234,7 +232,7 @@ public:
      * The returned Theme is guaranteed to be a valid theme.
      * \since 5.79
      */
-    Q_INVOKABLE KSyntaxHighlighting::Theme defaultTheme(DefaultTheme t = LightTheme) const;
+    Q_INVOKABLE KSyntaxHighlighting::Theme defaultTheme(KSyntaxHighlighting::Repository::DefaultTheme t = KSyntaxHighlighting::Repository::LightTheme) const;
 
     /*!
      * Returns the best matching theme for the given palette
diff -pruN 6.18.0-1/src/lib/theme.h 6.19.0-0ubuntu1/src/lib/theme.h
--- 6.18.0-1/src/lib/theme.h	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/lib/theme.h	2025-10-05 12:41:31.000000000 +0000
@@ -195,12 +195,10 @@ public:
     Q_ENUM(TextStyle)
 
     /*!
-     * \enum EditorColorRole
-     * 
      * Editor color roles, used to paint line numbers, editor background etc.
      * The colors typically should have good contrast with the colors used
      * in the TextStyle%s.
-     * 
+     *
      * \value BackgroundColor
      *        Background color for the editing area.
      * \value TextSelection
diff -pruN 6.18.0-1/src/quick/CMakeLists.txt 6.19.0-0ubuntu1/src/quick/CMakeLists.txt
--- 6.18.0-1/src/quick/CMakeLists.txt	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/CMakeLists.txt	2025-10-05 12:41:31.000000000 +0000
@@ -2,11 +2,11 @@
 # SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
 # SPDX-License-Identifier: BSD-3-Clause
 
-ecm_add_qml_module(kquicksyntaxhighlightingplugin URI "org.kde.syntaxhighlighting")
+ecm_add_qml_module(kquicksyntaxhighlightingplugin URI "org.kde.syntaxhighlighting" GENERATE_PLUGIN_SOURCE VERSION 1.0)
 
 target_sources(kquicksyntaxhighlightingplugin PRIVATE
-    kquicksyntaxhighlightingplugin.cpp
     kquicksyntaxhighlighter.cpp
+    types.cpp
 )
 target_link_libraries(kquicksyntaxhighlightingplugin PRIVATE
     KF6SyntaxHighlighting
diff -pruN 6.18.0-1/src/quick/kquicksyntaxhighlighter.h 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlighter.h
--- 6.18.0-1/src/quick/kquicksyntaxhighlighter.h	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlighter.h	2025-10-05 12:41:31.000000000 +0000
@@ -12,6 +12,7 @@
 #include <KSyntaxHighlighting/Theme>
 
 #include <QObject>
+#include <QQmlEngine>
 #include <QVariant>
 
 namespace KSyntaxHighlighting
@@ -83,6 +84,8 @@ class SyntaxHighlighter;
 class KQuickSyntaxHighlighter : public QObject
 {
     Q_OBJECT
+    QML_ELEMENT
+    QML_NAMED_ELEMENT(SyntaxHighlighter)
 
     /*!
      * \qmlproperty QtObject SyntaxHighlighter::textEdit
diff -pruN 6.18.0-1/src/quick/kquicksyntaxhighlightingplugin.cpp 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlightingplugin.cpp
--- 6.18.0-1/src/quick/kquicksyntaxhighlightingplugin.cpp	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlightingplugin.cpp	1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-/*
-    SPDX-FileCopyrightText: 2018 Eike Hein <hein@kde.org>
-    SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
-
-    SPDX-License-Identifier: MIT
-*/
-
-#include "kquicksyntaxhighlightingplugin.h"
-#include "kquicksyntaxhighlighter.h"
-
-#include <KSyntaxHighlighting/Definition>
-#include <KSyntaxHighlighting/Repository>
-#include <KSyntaxHighlighting/Theme>
-
-#include <memory>
-
-using namespace KSyntaxHighlighting;
-
-Repository *defaultRepository()
-{
-    static std::unique_ptr<Repository> s_instance;
-    if (!s_instance) {
-        s_instance = std::make_unique<Repository>();
-    }
-    return s_instance.get();
-}
-
-void KQuickSyntaxHighlightingPlugin::registerTypes(const char *uri)
-{
-    Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.syntaxhighlighting"));
-    qRegisterMetaType<Definition>();
-    qRegisterMetaType<QList<Definition>>();
-    qRegisterMetaType<Theme>();
-    qRegisterMetaType<QList<Theme>>();
-    qmlRegisterType<KQuickSyntaxHighlighter>(uri, 1, 0, "SyntaxHighlighter");
-    qmlRegisterUncreatableMetaObject(Definition::staticMetaObject, uri, 1, 0, "Definition", {});
-    qmlRegisterUncreatableMetaObject(Theme::staticMetaObject, uri, 1, 0, "Theme", {});
-    qmlRegisterSingletonType<Repository>(uri, 1, 0, "Repository", [](auto engine, auto scriptEngine) {
-        (void)engine;
-        auto repo = defaultRepository();
-        scriptEngine->setObjectOwnership(repo, QJSEngine::CppOwnership);
-        return defaultRepository();
-    });
-}
-
-#include "moc_kquicksyntaxhighlightingplugin.cpp"
diff -pruN 6.18.0-1/src/quick/kquicksyntaxhighlightingplugin.h 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlightingplugin.h
--- 6.18.0-1/src/quick/kquicksyntaxhighlightingplugin.h	2025-09-08 08:15:53.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/kquicksyntaxhighlightingplugin.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-/*
-    SPDX-FileCopyrightText: 2018 Eike Hein <hein@kde.org>
-
-    SPDX-License-Identifier: MIT
-*/
-
-#ifndef KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H
-#define KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H
-
-#include <QQmlEngine>
-#include <QQmlExtensionPlugin>
-
-class KQuickSyntaxHighlightingPlugin : public QQmlExtensionPlugin
-{
-    Q_OBJECT
-    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
-
-public:
-    void registerTypes(const char *uri) override;
-};
-
-#endif // KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H
diff -pruN 6.18.0-1/src/quick/types.cpp 6.19.0-0ubuntu1/src/quick/types.cpp
--- 6.18.0-1/src/quick/types.cpp	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/types.cpp	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,28 @@
+/*
+    SPDX-FileCopyrightText: 2018 Eike Hein <hein@kde.org>
+    SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
+
+    SPDX-License-Identifier: MIT
+*/
+
+#include "types.h"
+
+#include <QJSEngine>
+
+KSyntaxHighlighting::Repository *defaultRepository() // also used by KQuickSyntaxHighlighter
+{
+    static std::unique_ptr<KSyntaxHighlighting::Repository> s_instance;
+    if (!s_instance) {
+        s_instance = std::make_unique<KSyntaxHighlighting::Repository>();
+    }
+    return s_instance.get();
+}
+
+KSyntaxHighlighting::Repository *RepositoryForeign::create([[maybe_unused]] QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+    auto repo = defaultRepository();
+    scriptEngine->setObjectOwnership(repo, QJSEngine::CppOwnership);
+    return repo;
+}
+
+#include "moc_types.cpp"
diff -pruN 6.18.0-1/src/quick/types.h 6.19.0-0ubuntu1/src/quick/types.h
--- 6.18.0-1/src/quick/types.h	1970-01-01 00:00:00.000000000 +0000
+++ 6.19.0-0ubuntu1/src/quick/types.h	2025-10-05 12:41:31.000000000 +0000
@@ -0,0 +1,36 @@
+/*
+    SPDX-FileCopyrightText: 2025 Volker Krause <vkrause@kde.org>
+    SPDX-License-Identifier: MIT
+*/
+
+#ifndef TYPES_H
+#define TYPES_H
+
+#include <KSyntaxHighlighting/Definition>
+#include <KSyntaxHighlighting/Repository>
+#include <KSyntaxHighlighting/Theme>
+
+#include <QQmlEngine>
+
+struct DefinitionForeign {
+    Q_GADGET
+    QML_FOREIGN(KSyntaxHighlighting::Definition)
+    QML_VALUE_TYPE(definition)
+};
+
+struct ThemeForeign {
+    Q_GADGET
+    QML_FOREIGN(KSyntaxHighlighting::Theme)
+    QML_VALUE_TYPE(theme)
+};
+
+struct RepositoryForeign {
+    Q_GADGET
+    QML_FOREIGN(KSyntaxHighlighting::Repository)
+    QML_SINGLETON
+    QML_NAMED_ELEMENT(Repository)
+public:
+    static KSyntaxHighlighting::Repository *create(QQmlEngine *engine, QJSEngine *scriptEngine);
+};
+
+#endif
