{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.FrLdVXrY/b1/x2goserver_4.1.0.6-1.1_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.FrLdVXrY/b2/x2goserver_4.1.0.6-1.1_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -9,8 +9,8 @@\n 34960f11abe4aa3260712270da3e9abd 65280 x11 optional x2goserver-desktopsharing_4.1.0.6-1.1_all.deb\n 1ef490c58d56ebaaabbddd33f3b96625 57804 x11 optional x2goserver-extensions_4.1.0.6-1.1_all.deb\n 3e4a3cdc7feaf5b91968be7bfc88a297 54284 x11 optional x2goserver-fmbindings_4.1.0.6-1.1_all.deb\n bd14f329d7117695f3a983a6ac4678ed 59152 x11 optional x2goserver-printing_4.1.0.6-1.1_all.deb\n ffd0cda5d37ee2ff48e7527412e4f702 56788 x11 optional x2goserver-x2goagent_4.1.0.6-1.1_arm64.deb\n a35a961014046ef9eabf3143d16447bf 53704 x11 optional x2goserver-x2gokdrive_4.1.0.6-1.1_arm64.deb\n b86abee1c95164abf5bd38f3e86fa04d 56836 x11 optional x2goserver-xsession_4.1.0.6-1.1_all.deb\n- 4ff84829779720ce38eb1c0e9bd4b00f 137876 x11 optional x2goserver_4.1.0.6-1.1_arm64.deb\n+ 4075234fbc61ea1ba753a82b25f0e714 138700 x11 optional x2goserver_4.1.0.6-1.1_arm64.deb\n"}, {"source1": "x2goserver_4.1.0.6-1.1_arm64.deb", "source2": "x2goserver_4.1.0.6-1.1_arm64.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-09-23 14:10:47.000000 debian-binary\n -rw-r--r-- 0 0 0 9456 2023-09-23 14:10:47.000000 control.tar.xz\n--rw-r--r-- 0 0 0 128228 2023-09-23 14:10:47.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 129052 2023-09-23 14:10:47.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,12 +1,12 @@\n Package: x2goserver\n Version: 4.1.0.6-1.1\n Architecture: arm64\n Maintainer: Debian Remote Maintainers \n-Installed-Size: 517\n+Installed-Size: 527\n Pre-Depends: init-system-helpers (>= 1.54~)\n Depends: bc, libfile-basedir-perl, libfile-which-perl, libswitch-perl, libtry-tiny-perl, libx2go-server-perl (<< 4.1.0.6-1.1.1~), libx2go-server-perl (>= 4.1.0.6-1.1), lsof, net-tools, openssh-client, openssh-server, perl, psmisc, pwgen, x2goserver-common (<< 4.1.0.6-1.1.1~), x2goserver-common (>= 4.1.0.6-1.1), x2goserver-x2goagent (<< 4.1.0.6-1.1.1~), x2goserver-x2goagent (>= 4.1.0.6-1.1), xauth, xkb-data, debconf (>= 0.5) | debconf-2.0\n Recommends: fontconfig, sshfs, x11-apps, x11-session-utils, x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils, x2goserver-extensions (<< 4.1.0.6-1.1.1~), x2goserver-extensions (>= 4.1.0.6-1.1), x2goserver-fmbindings (<< 4.1.0.6-1.1.1~), x2goserver-fmbindings (>= 4.1.0.6-1.1), x2goserver-printing (<< 4.1.0.6-1.1.1~), x2goserver-printing (>= 4.1.0.6-1.1), x2goserver-xsession (<< 4.1.0.6-1.1.1~), x2goserver-xsession (>= 4.1.0.6-1.1), xfonts-base, xinit\n Suggests: pulseaudio-utils, rdesktop\n Breaks: x2godesktopsharing (<< 3.1.1.2-0~), x2goserver-compat (<< 4.0.1.99~), x2goserver-home, x2goserver-one, x2goserver-pyhoca (<< 4.0.1.99~)\n Replaces: x2goserver-compat, x2goserver-home, x2goserver-one, x2goserver-pyhoca\n Section: x11\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -76,15 +76,15 @@\n -rw-r--r-- 0 root (0) root (0) 696 2023-08-18 02:36:33.000000 ./usr/share/doc/x2goserver/README.sudoers\n -rw-r--r-- 0 root (0) root (0) 1110 2023-08-18 02:36:33.000000 ./usr/share/doc/x2goserver/README.upgrade-pgsql-database\n -rw-r--r-- 0 root (0) root (0) 1849 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 46044 2023-08-18 02:36:33.000000 ./usr/share/doc/x2goserver/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 11661 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/\n drwxr-xr-x 0 root (0) root (0) 0 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man1/\n--rw-r--r-- 0 root (0) root (0) 311 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man1/x2gooptionsstring.1.html\n+-rw-r--r-- 0 root (0) root (0) 10281 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man1/x2gooptionsstring.1.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man5/\n -rw-r--r-- 0 root (0) root (0) 4117 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man5/x2goserver.conf.5.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man8/\n -rw-r--r-- 0 root (0) root (0) 1346 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man8/x2gobasepath.8.html\n -rw-r--r-- 0 root (0) root (0) 2109 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man8/x2gocleansessions.8.html\n -rw-r--r-- 0 root (0) root (0) 1657 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man8/x2gocmdexitmessage.8.html\n -rw-r--r-- 0 root (0) root (0) 1391 2023-09-23 14:10:47.000000 ./usr/share/doc/x2goserver/html/man8/x2godbadmin.8.html\n"}, {"source1": "./usr/share/doc/x2goserver/html/man1/x2gooptionsstring.1.html", "source2": "./usr/share/doc/x2goserver/html/man1/x2gooptionsstring.1.html", "unified_diff": "@@ -1,8 +1,526 @@\n-Status: 403 Forbidden\n Content-type: text/html; charset=UTF-8\n \n \n-Invalid Man Page\n-\n-

Invalid Man Page

\n-The requested file man/man1/x2gooptionsstring.1 is not a valid (unformatted) man page.\n+Man page of X2GOOPTIONSSTRING\n+\n+

X2GOOPTIONSSTRING

\n+Section: General Commands Manual (1)
Updated: 2023-09-23
Index\n+Return to Main Contents
\n+\n+\n+\n+\n+\n+\n+ \n+

NAME

\n+\n+x2gooptionsstring - X2Go Agent Options String Manipulator and Extractor\n+ \n+

SYNOPSIS

\n+\n+\n+\n+
\n+
x2gooptionsstring --help|-h|-?
\n+\n+\n+\n+
x2gooptionsstring --man
\n+\n+\n+
x2gooptionsstring [<--mode|-m><=| >t[ransform]|-t] [--compact|-c] [--base64|-b] [--debug|-d] [--] options_string [+]|-key[=value] ...
\n+\n+\n+
x2gooptionsstring <--mode|-m><=| >e[xtract]|-e [--base64|-b] [--debug|-d] [--] options_string key[=value] ...
\n+\n+\n+\n+
\n+ \n+

DESCRIPTION

\n+\n+\n+\n+x2gooptionsstring is a utility for manipulating and extracting data from\n+options strings as passed to X2Go/NX Agent.\n+For more information about supported options strings, refer to the OPTIONS\n+STRINGS section in the X2Go::Server::Agent::NX::Options\n+documentation.\n+

\n+\n+For full support of options string, which are allowed (but not recommended) to\n+include binary data, the special --base64|-b switch is supported.\n+If given, all arguments other than flags must be base64-encoded (making it\n+possible to pass binary data via shells, for instance).\n+The program's output, minus potentially debugging messages, will also be\n+base64-encoded.\n+

\n+\n+Currently, two modes are supported:\n+

\n+
Transform (default)
\n+\n+\n+Transformation mode is enabled by default if no mode has been explicitly\n+selected.\n+\n+\n+

\n+\n+\n+Call this program with optional flags, the options string as the first\n+parameter and the transformations to be carried out as additional parameters.\n+At least one additional parameter (i.e., a transformation) must be provided.\n+Transformations are described here briefly, but also in the TRANSFORMATIONS\n+section in the X2Go::Server::Agent::NX::Options\n+documentation.\n+\n+\n+

\n+\n+\n+It can either add, remove or replace components.\n+\n+\n+

\n+\n+\n+To add or replace a component, pass key[=value] or\n++key[=value] as a parameter.\n+The latter syntax is useful if key starts with a dash and would therefore\n+be interpreted as a removal operation.\n+If the options string does not include a key key, it will be appended to\n+the end of the options string.\n+If it already exists, either with no value or a different value, the component\n+will be replaced with the provided value.\n+\n+\n+

\n+\n+\n+To fully remove a component, pass -key.\n+To only remove it if it is set to a specific value, pass\n+-key=value.\n+\n+\n+

\n+\n+\n+Use the --compact option to minimize the original options string, removing\n+duplicated and empty entries.\n+\n+\n+

\n+\n+\n+Assuming no error happened, the resulting options string is written to\n+stdout.\n+

Extract
\n+\n+\n+Extraction mode must be explicitly requested using the -e or\n+<--mode|-m><=| >e[xtract] flags.\n+\n+\n+

\n+\n+\n+Call this program with optional flags, the options string as the first\n+parameter and key-value pairs to be extracted as additional parameters.\n+At least one additional parameter (i.e., a key-value pair to extract) must be\n+provided.\n+\n+\n+

\n+\n+\n+A degenerated key-value pair without an explicit value can be used to test for\n+the existence of a key and extract its value at the same time.\n+\n+\n+

\n+\n+\n+A full, proper key-value pair can be used to test for the existence of a\n+key-value pair exactly as provided.\n+\n+\n+

\n+\n+\n+Assuming no error happened, the extracted key-value pairs will be written to\n+stdout.\n+Each pair will be base64-encoded and, if multiple key-value pairs to extract\n+have been provided, delimited via pipe characters ("|").\n+\n+\n+

\n+\n+\n+Key-value pairs which haven't been found in the original options string, as\n+well as potentially an empty key-value pair, will be represented as empty\n+fields.\n+

\n+

\n+\n+Refer to the OPTIONS PARSING section for a description of\n+when and how to terminate options passed to this program.\n+ \n+

OPTIONS

\n+\n+\n+\n+
\n+
--help|-?|-h
\n+\n+\n+Print a brief help message and exits.\n+
--man
\n+\n+\n+Prints the manual page and exits.\n+
--debug|-d
\n+\n+\n+Enables noisy debug output.\n+
-t
\n+\n+\n+Shorthand for --mode=transform.\n+
-e
\n+\n+\n+Shorthand for --mode=extract.\n+
<--mode|-m><=| >mode string
\n+\n+\n+Selects a specific program mode.\n+\n+\n+

\n+\n+\n+Currently, the following mode strings are supported:\n+

\n+
\n+
\n+transform\n+
\n+extract\n+
\n+
\n+\n+
\n+\n+\n+

\n+\n+\n+Mode strings can be abbreviated, as long as the abbreviation is uniquely\n+selecting one mode exactly.\n+

\n+\n+
--compact|-c
\n+\n+\n+Remove duplicate and empty entries after the initial parsing.\n+The order of arguments is preserved in a first-seen fashion.\n+\n+\n+

\n+\n+\n+This option is only available in transformation mode.\n+It will be silently ignored in extraction mode, as compaction is a\n+pre-requisite and done automatically during extraction.\n+

--base64|-b
\n+\n+\n+Enable a special full base64 mode.\n+\n+\n+

\n+\n+\n+Any binary data can be given and output by this program in this mode, even\n+when operating on a shell.\n+\n+\n+

\n+\n+\n+Input parameters must always be provided encoded in base64 form.\n+\n+\n+

\n+\n+\n+Likewise, the program will always output data encoded in a base64 form.\n+Since key-value pairs returned in extraction mode are already base64-encoded\n+and delimited with a character that is not legal in the base64 encoding, this\n+flag does not modify the extraction's mode output (i.e., you will not have\n+to decode the output data twice).\n+

\n+ \n+

OPTIONS PARSING

\n+\n+\n+\n+You can terminate program options parsing via a standard double-dash (--)\n+pseudo-option.\n+It is highly recommended to always do so.\n+

\n+\n+If you pass removal transformation operations or an extraction key-value pair\n+starts with a dash (-), passing the options terminator is mandatory, even\n+if no actual options are used.\n+Otherwise, transformation operations or extraction key-value pairs will be\n+interpreted as options to the program, which will almost certainly lead to an\n+error.\n+

\n+\n+For example, passing "-clipboard" as a transformation operation without a\n+previous options terminator will be interpreted as the option "-c", with the\n+rest of the string modified into "-lipboard".\n+Since this program does not accept an option called "-l", it will terminate\n+with an error.\n+Even if the program does not terminate with an error due to an unknown option\n+being supplied, a degradation into options is certainly not what the original\n+transformation operation was supposed to represent.\n+ \n+

EXAMPLES

\n+\n+\n+\n+ \n+

TRANSFORMATIONS

\n+\n+\n+\n+For an options string such as\n+

\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+

\n+calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50'\n+'-clipboard' shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ nx/nx,foo:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+while calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50'\n+'-clipboard=server' shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+Calling "x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' 'bar'"\n+shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo,bar:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+and calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50'\n+'+-bar' 'foo=gulp' '-clipboard=client' shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo=gulp,-bar:50\n+\n+
\n+\n+\n+
\n+\n+

\n+\n+For an options string such as\n+

\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo=bar,bar=baz,foo=oof:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+

\n+you can get a compacted version by cheating a bit and providing a\n+transformation which will certainly be a no-operation using\n+x2gooptionsstring '-c' '--'\n+'nx/nx,clipboard=both,foo=bar,bar=baz,,foo=oof,:50' '-', which shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo=oof,bar=baz:50\n+\n+
\n+\n+\n+
\n+\n+ \n+

EXTRACTIONS

\n+\n+\n+\n+For an options string such as\n+

\n+\n+\n+\n+

\n+ nx/nx,clipboard=both,foo=bar,-=-,,bar=baz,foo=oof:50\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+

\n+Calling x2gooptionsstring '-e' '--'\n+'nx/nx,clipboard=both,foo=bar,-=-,bar=baz,foo=oof,:50' 'foo' shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ Zm9vPW9vZg==\n+\n+
\n+\n+\n+\n+\n+

\n+\n+\n+while calling x2gooptionsstring '-e' '--'\n+'nx/nx,clipboard=both,foo=bar,-=-,bar=baz,foo=oof,:50' 'bar' ''\n+'clipboard=none' '-' shall return\n+\n+\n+

\n+\n+\n+\n+\n+

\n+ YmFyPWJheg==|||LT0t\n+\n+
\n+\n+\n+
\n+\n+ \n+

AUTHOR

\n+\n+\n+\n+This manual has been written by\n+Mihai Moldovan <ionic@ionic.de> <mailto:ionic@ionic.de> for the X2Go\n+project (<https://www.x2go.org>).\n+

\n+\n+


\n+ 

Index

\n+
\n+
NAME
\n+
SYNOPSIS
\n+
DESCRIPTION
\n+
OPTIONS
\n+
\n+
OPTIONS PARSING
\n+
\n+
EXAMPLES
\n+
\n+
TRANSFORMATIONS
\n+
EXTRACTIONS
\n+
\n+
AUTHOR
\n+
\n+
\n+This document was created by\n+man2html,\n+using the manual pages.
\n+Time: 14:10:47 GMT, September 23, 2023\n+\n+\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,4 +1,174 @@\n-Status: 403 Forbidden Content-type: text/html; charset=UTF-8\n-*\b**\b**\b**\b**\b**\b* I\bIn\bnv\bva\bal\bli\bid\bd M\bMa\ban\bn P\bPa\bag\bge\be *\b**\b**\b**\b**\b**\b*\n-The requested file man/man1/x2gooptionsstring.1 is not a valid (unformatted)\n-man page.\n+Content-type: text/html; charset=UTF-8\n+*\b**\b**\b**\b**\b**\b* X\bX2\b2G\bGO\bOO\bOP\bPT\bTI\bIO\bON\bNS\bSS\bST\bTR\bRI\bIN\bNG\bG *\b**\b**\b**\b**\b**\b*\n+Section: General Commands Manual (1)\n+Updated: 2023-09-23\n+_\bI_\bn_\bd_\be_\bx _\bR_\be_\bt_\bu_\br_\bn_\b _\bt_\bo_\b _\bM_\ba_\bi_\bn_\b _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs\n+===============================================================================\n+\u00a0\n+*\b**\b**\b**\b**\b* N\bNA\bAM\bME\bE *\b**\b**\b**\b**\b*\n+x2gooptionsstring - X2Go Agent Options String Manipulator and Extractor \u00a0\n+*\b**\b**\b**\b**\b* S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS *\b**\b**\b**\b**\b*\n+ x\bx2\b2g\bgo\boo\bop\bpt\bti\bio\bon\bns\bss\bst\btr\bri\bin\bng\bg -\b--\b-h\bhe\bel\blp\bp|-\b-h\bh|-\b-?\b?\n+ x\bx2\b2g\bgo\boo\bop\bpt\bti\bio\bon\bns\bss\bst\btr\bri\bin\bng\bg -\b--\b-m\bma\ban\bn\n+ x\bx2\b2g\bgo\boo\bop\bpt\bti\bio\bon\bns\bss\bst\btr\bri\bin\bng\bg [<-\b--\b-m\bmo\bod\bde\be|-\b-m\bm><=\b=| >t\bt[r\bra\ban\bns\bsf\bfo\bor\brm\bm]|-\b-t\bt] [-\b--\b-c\bco\bom\bmp\bpa\bac\bct\bt|-\b-c\bc] [-\b--\b-b\bba\bas\bse\be6\b64\b4|-\b-\n+ b\bb] [-\b--\b-d\bde\beb\bbu\bug\bg|-\b-d\bd] [-\b--\b-] options_string [+\b+]|-\b-key[=\b=value] ...\n+ x\bx2\b2g\bgo\boo\bop\bpt\bti\bio\bon\bns\bss\bst\btr\bri\bin\bng\bg <-\b--\b-m\bmo\bod\bde\be|-\b-m\bm><=\b=| >e\be[x\bxt\btr\bra\bac\bct\bt]|-\b-e\be [-\b--\b-b\bba\bas\bse\be6\b64\b4|-\b-b\bb] [-\b--\b-d\bde\beb\bbu\bug\bg|-\b-d\bd] [-\b--\b-\n+ ] options_string key[=\b=value] ...\n+\u00a0\n+*\b**\b**\b**\b**\b* D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN *\b**\b**\b**\b**\b*\n+x\bx2\b2g\bgo\boo\bop\bpt\bti\bio\bon\bns\bss\bst\btr\bri\bin\bng\bg is a utility for manipulating and extracting data from\n+options strings as passed to X\bX2\b2G\bGo\bo/\b/N\bNX\bX A\bAg\bge\ben\bnt\bt. For more information about\n+supported options strings, refer to the OPTIONS STRINGS section in the X2Go::\n+Server::Agent::NX::Options documentation.\n+For full support of options string, which are allowed (but not recommended) to\n+include binary data, the special -\b--\b-b\bba\bas\bse\be6\b64\b4|-\b-b\bb switch is supported. If given, all\n+arguments other than flags must be base64-encoded (making it possible to pass\n+binary data via shells, for instance). The program's output, minus potentially\n+debugging messages, will also be base64-encoded.\n+Currently, two modes are supported:\n+ Transform (default)\n+ Transformation mode is enabled by default if no mode has been explicitly\n+ selected.\n+ Call this program with optional flags, the options string as the first\n+ parameter and the transformations to be carried out as additional\n+ parameters. At least one additional parameter (i.e., a transformation)\n+ must be provided. Transformations are described here briefly, but also in\n+ the TRANSFORMATIONS section in the X2Go::Server::Agent::NX::Options\n+ documentation.\n+ It can either add, remove or replace components.\n+ To add or replace a component, pass key[=\b=value] or +\b+key[=\b=value] as a\n+ parameter. The latter syntax is useful if key starts with a dash and\n+ would therefore be interpreted as a removal operation. If the options\n+ string does not include a k\bke\bey\by key, it will be appended to the end of the\n+ options string. If it already exists, either with no value or a different\n+ value, the component will be replaced with the provided value.\n+ To fully remove a component, pass -\b-key. To only remove it if it is set to\n+ a specific value, pass -\b-key=\b=value.\n+ Use the -\b--\b-c\bco\bom\bmp\bpa\bac\bct\bt option to minimize the original options string,\n+ removing duplicated and empty entries.\n+ Assuming no error happened, the resulting options string is written to\n+ s\bst\btd\bdo\bou\but\bt.\n+ Extract\n+ Extraction mode must be explicitly requested using the -\b-e\be or <-\b--\b-m\bmo\bod\bde\be|-\b-\n+ m\bm><=\b=| >e\be[x\bxt\btr\bra\bac\bct\bt] flags.\n+ Call this program with optional flags, the options string as the first\n+ parameter and key-value pairs to be extracted as additional parameters.\n+ At least one additional parameter (i.e., a key-value pair to extract)\n+ must be provided.\n+ A degenerated key-value pair without an explicit value can be used to\n+ test for the existence of a key and extract its value at the same time.\n+ A full, proper key-value pair can be used to test for the existence of a\n+ key-value pair exactly as provided.\n+ Assuming no error happened, the extracted key-value pairs will be written\n+ to s\bst\btd\bdo\bou\but\bt. Each pair will be base64-encoded and, if multiple key-value\n+ pairs to extract have been provided, delimited via p\bpi\bip\bpe\be characters (\"|\").\n+ Key-value pairs which haven't been found in the original options string,\n+ as well as potentially an empty key-value pair, will be represented as\n+ empty fields.\n+Refer to the OPTIONS PARSING section for a description of when and how to\n+terminate options passed to this program. \u00a0\n+*\b**\b**\b**\b**\b* O\bOP\bPT\bTI\bIO\bON\bNS\bS *\b**\b**\b**\b**\b*\n+ -\b--\b-h\bhe\bel\blp\bp|-\b-?\b?|-\b-h\bh\n+ Print a brief help message and exits.\n+ -\b--\b-m\bma\ban\bn\n+ Prints the manual page and exits.\n+ -\b--\b-d\bde\beb\bbu\bug\bg|-\b-d\bd\n+ Enables noisy debug output.\n+ -\b-t\bt\n+ Shorthand for -\b--\b-m\bmo\bod\bde\be=\b=t\btr\bra\ban\bns\bsf\bfo\bor\brm\bm.\n+ -\b-e\be\n+ Shorthand for -\b--\b-m\bmo\bod\bde\be=\b=e\bex\bxt\btr\bra\bac\bct\bt.\n+ <-\b--\b-m\bmo\bod\bde\be|-\b-m\bm><=\b=| >mode string\n+ Selects a specific program mode.\n+ Currently, the following mode strings are supported:\n+ \u2022\n+ transform\n+ \u2022\n+ extract\n+ Mode strings can be abbreviated, as long as the abbreviation is\n+ uniquely selecting one mode exactly.\n+ -\b--\b-c\bco\bom\bmp\bpa\bac\bct\bt|-\b-c\bc\n+ Remove duplicate and empty entries after the initial parsing. The order\n+ of arguments is preserved in a first-seen fashion.\n+ This option is only available in t\btr\bra\ban\bns\bsf\bfo\bor\brm\bma\bat\bti\bio\bon\bn m\bmo\bod\bde\be. It will be silently\n+ ignored in e\bex\bxt\btr\bra\bac\bct\bti\bio\bon\bn m\bmo\bod\bde\be, as compaction is a pre-requisite and done\n+ automatically during extraction.\n+ -\b--\b-b\bba\bas\bse\be6\b64\b4|-\b-b\bb\n+ Enable a special full base64 mode.\n+ Any binary data can be given and output by this program in this mode,\n+ even when operating on a shell.\n+ Input parameters must always be provided encoded in base64 form.\n+ Likewise, the program will always output data encoded in a base64 form.\n+ Since key-value pairs returned in extraction mode are already base64-\n+ encoded and delimited with a character that is not legal in the base64\n+ encoding, this flag does not modify the extraction's mode output (i.e.,\n+ you will n\bno\bot\bt have to decode the output data twice).\n+\u00a0\n+*\b**\b**\b**\b* O\bOP\bPT\bTI\bIO\bON\bNS\bS P\bPA\bAR\bRS\bSI\bIN\bNG\bG *\b**\b**\b**\b*\n+You can terminate program options parsing via a standard double-dash (-\b--\b-\n+) pseudo-option. It is h\bhi\big\bgh\bhl\bly\by r\bre\bec\bco\bom\bmm\bme\ben\bnd\bde\bed\bd to always do so.\n+If you pass removal transformation operations or an extraction key-value pair\n+starts with a dash (-\b-), passing the options terminator is m\bma\ban\bnd\bda\bat\bto\bor\bry\by, even if no\n+actual options are used. Otherwise, transformation operations or extraction\n+key-value pairs will be interpreted as options to the program, which will\n+almost certainly lead to an error.\n+For example, passing \"-clipboard\" as a transformation operation without a\n+previous options terminator will be interpreted as the option \"-c\", with the\n+rest of the string modified into \"-lipboard\". Since this program does not\n+accept an option called \"-l\", it will terminate with an error. Even if the\n+program does not terminate with an error due to an unknown option being\n+supplied, a degradation into options is certainly not what the original\n+transformation operation was supposed to represent. \u00a0\n+*\b**\b**\b**\b**\b* E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS *\b**\b**\b**\b**\b*\n+\u00a0\n+*\b**\b**\b**\b* T\bTR\bRA\bAN\bNS\bSF\bFO\bOR\bRM\bMA\bAT\bTI\bIO\bON\bNS\bS *\b**\b**\b**\b*\n+For an options string such as\n+ nx/nx,clipboard=both,foo:50\n+ calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '-clipboard'\n+ shall return\n+ nx/nx,foo:50\n+ while calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '-\n+ clipboard=server' shall return\n+ nx/nx,clipboard=both,foo:50\n+ Calling \"x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' 'bar'\"\n+ shall return\n+ nx/nx,clipboard=both,foo,bar:50\n+ and calling x2gooptionsstring '--' 'nx/nx,clipboard=both,foo:50' '+-bar'\n+ 'foo=gulp' '-clipboard=client' shall return\n+ nx/nx,clipboard=both,foo=gulp,-bar:50\n+For an options string such as\n+ nx/nx,clipboard=both,foo=bar,bar=baz,foo=oof:50\n+ you can get a compacted version by cheating a bit and providing a\n+ transformation which will certainly be a no-operation using\n+ x2gooptionsstring '-c' '--' 'nx/\n+ nx,clipboard=both,foo=bar,bar=baz,,foo=oof,:50' '-', which shall return\n+ nx/nx,clipboard=both,foo=oof,bar=baz:50\n+\u00a0\n+*\b**\b**\b**\b* E\bEX\bXT\bTR\bRA\bAC\bCT\bTI\bIO\bON\bNS\bS *\b**\b**\b**\b*\n+For an options string such as\n+ nx/nx,clipboard=both,foo=bar,-=-,,bar=baz,foo=oof:50\n+ Calling x2gooptionsstring '-e' '--' 'nx/nx,clipboard=both,foo=bar,-\n+ =-,bar=baz,foo=oof,:50' 'foo' shall return\n+ Zm9vPW9vZg==\n+ while calling x2gooptionsstring '-e' '--' 'nx/nx,clipboard=both,foo=bar,-\n+ =-,bar=baz,foo=oof,:50' 'bar' '' 'clipboard=none' '-' shall return\n+ YmFyPWJheg==|||LT0t\n+\u00a0\n+*\b**\b**\b**\b**\b* A\bAU\bUT\bTH\bHO\bOR\bR *\b**\b**\b**\b**\b*\n+This manual has been written by Mihai Moldovan <_\bi_\bo_\bn_\bi_\bc_\b@_\bi_\bo_\bn_\bi_\bc_\b._\bd_\be> for the X2Go project (<_\bh_\bt_\bt_\bp_\bs_\b:_\b/_\b/_\bw_\bw_\bw_\b._\bx_\b2_\bg_\bo_\b._\bo_\br_\bg>).\n+===============================================================================\n+\u00a0\n+*\b**\b**\b**\b**\b* I\bIn\bnd\bde\bex\bx *\b**\b**\b**\b**\b*\n+ _\bN_\bA_\bM_\bE\n+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS\n+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN\n+ _\bO_\bP_\bT_\bI_\bO_\bN_\bS\n+ _\bO_\bP_\bT_\bI_\bO_\bN_\bS_\b _\bP_\bA_\bR_\bS_\bI_\bN_\bG\n+ _\bE_\bX_\bA_\bM_\bP_\bL_\bE_\bS\n+ _\bT_\bR_\bA_\bN_\bS_\bF_\bO_\bR_\bM_\bA_\bT_\bI_\bO_\bN_\bS\n+ _\bE_\bX_\bT_\bR_\bA_\bC_\bT_\bI_\bO_\bN_\bS\n+ _\bA_\bU_\bT_\bH_\bO_\bR\n+===============================================================================\n+This document was created by _\bm_\ba_\bn_\b2_\bh_\bt_\bm_\bl, using the manual pages.\n+Time: 14:10:47 GMT, September 23, 2023\n"}]}]}, {"source1": "xz --list", "source2": "xz --list", "unified_diff": "@@ -1,13 +1,13 @@\n Streams: 1\n Blocks: 1\n- Compressed size: 125.2 KiB (128228 B)\n- Uncompressed size: 510.0 KiB (522240 B)\n- Ratio: 0.246\n+ Compressed size: 126.0 KiB (129052 B)\n+ Uncompressed size: 520.0 KiB (532480 B)\n+ Ratio: 0.242\n Check: CRC64\n Stream Padding: 0 B\n Streams:\n Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding\n- 1 1 0 0 128228 522240 0.246 CRC64 0\n+ 1 1 0 0 129052 532480 0.242 CRC64 0\n Blocks:\n Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check\n- 1 1 12 0 128192 522240 0.245 CRC64\n+ 1 1 12 0 129016 532480 0.242 CRC64\n"}]}]}]}