jiebi/CodeConvo huggingface dataset:
Change:
Since , all except gets mounted in a read-only fashion. This behaviour will break the existing acme deployments having a set outside of . In my personal case, I have the webroot served by my main nginx service. Meaning: After , the cert renewal fails with: The fix I personally went with was to add my webroot to the by overriding the service config. That's however not a proper fix for NixPkgs. As it is, we'll silently break some already existing deployments. While that's something acceptable for nixos-unstable, I feel like we have to adopt a better migration path before the next stable release. I have three options in mind: could revert the hardening option to . could add the webroots to the config. Could this backfire in some way? could trigger a assertion error warning the user that some of their webroots are not in the s and instruct them about how to fix the issue. I did not manage do decide which of these solutions is the best. What do you think? cc
I think we should go that route, I can't imagine this to backfire, since it could write to that location before, too.
I think suggestion 2 is what I'd go for. is not an ideal option as we would rather keep the module as secure as possible. Adding all the unique webroots not under /var/lib/acme should be pretty easy to automate.
:+1: ack. I'll send a PR shortly.
Oh cool ok!
Thanks for your work, but I have a similar issue. Seems a regression occurs. Here is the log: Here is my config: If I set to , it works well. But if I set to a non-existing dir like , error occurs. In addition, a non-existing will make all other services whose is under fail. The reason may be that all services have due to .

Discussion:
++ data.extraLegoRenewFlags ); <ins> # We need to collect all the ACME webroots to grant them write # access in the systemd service. webroots = lib.remove null (lib.unique (builtins.map (certAttrs: certAttrs.webroot) (lib.attrValues config.security.acme.certs))); </ins> in { inherit accountHash cert selfsignedDeps;

"acme/.lego/accounts/${accountHash}" ]; <ins> ReadWritePaths = commonServiceConfig.ReadWritePaths ++ webroots; </ins> # Needs to be space separated, but can't use a multiline string because that'll include newlines BindPaths = [ "${accountDir}:/tmp/accounts"
Change:
When i try to take a screenshot of an area (STRG + PRINT), i hear the bell notification sound (that also comes when the disk is full) and nothing more happens (no screenshot). The third time i tried, the whole session crashed! I actually have a video of it: Steps to reproduce the behavior: screenshot with STRG + PRINT (not tested other methods) ??? crash actually taking screenshot that's the issue ;) Issue appeared after can you reproduce or should i get a log? system: host os: multi-user?: sandbox: version: channels(root): nixpkgs: Maintainer information:
The issue is introduced in (though we are using Mutter 3.38). I will try to patch gala if possible, . Can confirm that the issue can be reproduced and by reverting the change the issue can be fixed. I will submit a PR in 48 hours.

Discussion:
patches = [ ./plugins-dir.patch <ins> # https://github.com/elementary/gala/pull/1259 # https://github.com/NixOS/nixpkgs/issues/139404 # Remove this patch when it is included in a new release # of gala OR when we no longer use mutter 3.38 for pantheon ./fix-session-crash-when-taking-screenshots.patch </ins> ]; postPatch = ''

<ins> From fa3c39331d4ef56a13019f45d811bde1fc755c21 Mon Sep 17 00:00:00 2001 From: Bobby Rong <rjl931189261@126.com> Date: Sat, 25 Sep 2021 23:21:01 +0800 Subject: [PATCH] Fix session crash when taking screenshots with mutter 3.38 --- src/ScreenshotManager.vala | 5 ++--- vapi/mutter-clutter.vapi   | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ScreenshotManager.vala b/src/ScreenshotManager.vala index 3ffb0123..388fee1a 100644 --- a/src/ScreenshotManager.vala +++ b/src/ScreenshotManager.vala @@ -354,12 +354,11 @@ namespace Gala { paint_flags |= Clutter.PaintFlag.FORCE_CURSORS; } -            unowned var data = image.get_data (); if (GLib.ByteOrder.HOST == GLib.ByteOrder.LITTLE_ENDIAN) { wm.stage.paint_to_buffer ( {x, y, width, height}, scale, -                    ref data, +                    image.get_data (), image.get_stride (), Cogl.PixelFormat.BGRA_8888_PRE, paint_flags @@ -368,7 +367,7 @@ namespace Gala { wm.stage.paint_to_buffer ( {x, y, width, height}, scale, -                    ref data, +                    image.get_data (), image.get_stride (), Cogl.PixelFormat.ARGB_8888_PRE, paint_flags diff --git a/vapi/mutter-clutter.vapi b/vapi/mutter-clutter.vapi index 5b778cb2..95de24be 100644 --- a/vapi/mutter-clutter.vapi +++ b/vapi/mutter-clutter.vapi @@ -7336,7 +7336,7 @@ namespace Clutter { [Version (since = "1.2")] public bool get_use_alpha (); #if HAS_MUTTER338 -		public bool paint_to_buffer (Cairo.RectangleInt rect, float scale, [CCode (array_length = false)] ref unowned uint8[] data, int stride, Cogl.PixelFormat format, Clutter.PaintFlag paint_flags) throws GLib.Error; +		public bool paint_to_buffer (Cairo.RectangleInt rect, float scale, [CCode (array_length = false, type = "uint8_t*")] uint8[] data, int stride, Cogl.PixelFormat format, Clutter.PaintFlag paint_flags) throws GLib.Error; public void paint_to_framebuffer (Cogl.Framebuffer framebuffer, Cairo.RectangleInt rect, float scale, Clutter.PaintFlag paint_flags); #else [Version (since = "0.4")] </ins>
Change:
Programs crash at startup or exit, e.g. some XFCE programs (e.g. Thunar, xfce4-terminal) crash on exit only possibly after forking off a child and trying to exit, and others (e.g. VLC) crash on startup. This must be related to Nvidia drivers, the issue does not appear when using Nouveau. It is probably a regression from 358.16 -361.28 () but I didn't verify yet. Backtrace for xfce4-terminal (crash on exit after fork): Backtrace for VLC (crash at startup, does not start):
And indeed reverting the 3 latest commits for nvidia-x11 resolved the issue for me (bringing the driver back to 358.16).
Part of:
I believe this single revert I did is enough to "fix" the issue.

Discussion:
# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html <del> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate, libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK </del> <ins> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland , rubberband, vampSDK </ins> }: <del> stdenv.mkDerivation { name = "sonic-visualiser-1.8"; </del> <ins> stdenv.mkDerivation rec { name = "sonic-visualiser-${version}"; version = "1.9"; </ins> src = fetchurl { <del> url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.8.tar.gz; sha256 = "16ik6q9n92wljvnqcv7hyzb9v3yp3ixxp6df9kasf53fii973dh7"; </del> <ins> url = "http://code.soundsoftware.ac.uk/attachments/download/194/${name}.tar.gz"; sha256 = "00igf7j6s8xfyxnlkbqma0yby9pknxqzy8cmh0aw95ix80cw56fq"; </ins> }; buildInputs = [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland <ins> pkgconfig </ins> # optional jackaudio # portaudio

description = "View and analyse contents of music audio files"; homepage = http://www.sonicvisualiser.org/; license = "GPLv2"; <del> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </del> <ins> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </ins> platforms = stdenv.lib.platforms.linux; }; }
Change:
When using the viewer for plot3d, the generated html file contains the wrong path for Call the following code in sage Then your browser would open the generated file in . The browser console would report that Upon further inspection, the wanted file is actually at and upon loading the page with this update path, it works. A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. Add any other context about the problem here. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Maintainer information:
Thanks for the bug report. Unfortunately we can't use vanilla because it does not include some exports used by sage (see the README at ), but it looks like threejs-sage is indeed installed into the wrong directory. I will fix it today.
By the way, the threejs-sage installation directory was changed upstream in , which landed in 9.4. I missed this when updating Sage in .

Discussion:
}; installPhase = '' <del> mkdir -p $out/lib/node_modules/three cp -r build version $out/lib/node_modules/three </del> <ins> mkdir -p "$out/lib/node_modules/three/" cp version "$out/lib/node_modules/three" cp -r build "$out/lib/node_modules/three/$(cat version)" </ins> ''; }
Change:
If using systemd-resolved and using DNS in a Wireguard config, wg-quick will fail to add the DNS server because it uses the , applying a Wireguard config fails. Steps to reproduce the behavior: systemd-resolved with with a Wireguard config file with a DNS entry wg-quick is supposed to call systemd-resolved's command instead of openresolv's when systemd-resolved is enabled. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Maintainer information:
Since itself uses and has problems with systemd-resolved, this doesn't seem like a NixOS bug to me.
I'm sorry, maybe I wasn't clear enough. systemd-resolved has its own `. I tried locally by removing openresolv and adding systemd to the PATH of wg-tools and it works fine.
Maybe we should not hard-code at all or only add as a fall back path after the global path?
wg-quick works with both openresolv's resolvconf and systemd's resolvconf, depending on what's in PATH. This is a Nix bug.
That's not the point. If the system is configured to use systemd-resolved than we need to use systemd's resolvconf as it will use it's dbus api to set the nameserver. If wg-quick use the openresolv version it will attempt to update , which is incorrect. now allows users to provide a resolvconf and only fallback if there is no other around.
Right, I think we're making the same point. Not an upstream bug. This about how Nix is configured. I'll let you all handle it.
was reverted.
Opened to finally fix this

Discussion:
substituteInPlace $out/lib/systemd/system/wg-quick@.service  --replace /usr/bin $out/bin '' + lib.optionalString stdenv.isLinux '' <ins> # we want to allow users to provide their own resolvconf implementation, i.e. the one provided by systemd-resolved </ins> for f in $out/bin/*; do <del> wrapProgram $f --prefix PATH : ${lib.makeBinPath [ procps iproute2 iptables openresolv ]} </del> <ins> wrapProgram $f  --prefix PATH : ${lib.makeBinPath [ procps iproute2 iptables ]}  --suffix PATH : ${lib.makeBinPath [ openresolv ]} </ins> done '' + lib.optionalString stdenv.isDarwin '' for f in $out/bin/*; do
Change:
fails build as Should we force package to , or maybe remove it? No maintainer. Maintainer information:
And stating the obvious it broke with commit

Discussion:
<del> { lib, stdenv, fetchurl, makeWrapper, python3Packages }: </del> <ins> { lib , stdenv , fetchurl , fetchpatch , makeWrapper , python3Packages }: </ins> stdenv.mkDerivation rec { pname = "bashdb"; <del> version = "4.4-1.0.0"; </del> <ins> version = "5.0-1.1.2"; </ins> src = fetchurl { url =  "mirror://sourceforge/bashdb/${pname}-${version}.tar.bz2"; <del> sha256 = "0p7i7bpzs6q1i7swnkr89kxqgzr146xw8d2acmqwqbslzm9dqlml"; </del> <ins> sha256 = "sha256-MBdtKtKMWwCy4tIcXqGu+PuvQKj52fcjxnxgUx87czA="; </ins> }; <ins> patches = [ # Enable building with bash 5.1/5.2 # Remove with any upstream 5.1-x.y.z release (fetchpatch { url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/569fbb806d9ee813afa8b27d2098a44f93433922/devel/bashdb/files/patch-configure"; sha256 = "19zfzcnxavndyn6kfxp775kjcd0gigsm4y3bnh6fz5ilhnnbbbgr"; }) ]; patchFlags = "-p0"; </ins> nativeBuildInputs = [ makeWrapper ];
Change:
when installing only one output of a python package, eg with , all output of the package are installed. this seems to be limited to python packages (and possibly other users of ?) and can be fixed by overriding the output in question to set so that buildEnv does not ignore the request, so it seems that maybe installing everything all the time is not entirely expected behaviour? system: host os: multi-user?: sandbox: version: channels(root): nixpkgs: Maintainer information:
cc seems to be mostly your code involved here? no idea who else to ping, sorry
the root cause seems to be that python calls extendDerivation on something that already had extendDerivation called on in. the first call introduces the attributes (by propagating from the builtin derivation) for every output and sets outputUnspecified. the second call propagates outputUnspecified to the individual outputs, which in turn causes buildEnv to install every output available even when asking for a specific output. seeing how extendDerivation and buildEnv work together using outputUnspecified it seems like the proper fix would be to filter outputUnspecified from the attributes of specific outputs. we can open a PR for that, but would it be correct at all?

Discussion:
let outputs = drv.outputs or [ "out" ]; <del> commonAttrs = drv // (builtins.listToAttrs outputsList) // </del> <ins> commonAttrs = (removeAttrs drv [ "outputUnspecified" ]) // (builtins.listToAttrs outputsList) // </ins> ({ all = map (x: x.value) outputsList; }) // passthru; outputToAttrListElement = outputName:
Change:
Project description Open Source SQL Editor and Database Manager for MySQL, Postgres, SQLite, SQL Server, and more. Metadata homepage URL: source URL: license: mit platforms: unix
I think this issue can be closed, since it has been merged?

Discussion:
githubId = 7610974; name = "Jason Miller"; }; <ins> milogert = { email = "milo@milogert.com"; github = "milogert"; githubId = 5378535; name = "Milo Gertjejansen"; }; </ins> miltador = { email = "miltador@yandex.ua"; name = "Vasiliy Solovey";

<ins> { lib, fetchurl, appimageTools, pkgs }: let pname = "beekeeper-studio"; version = "2.1.4"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v${version}/Beekeeper-Studio-${version}.AppImage"; name="${pname}-${version}.AppImage"; sha512 = "1aik88wi9axv66axjmmjmlna1sp0pz92z8i2x6pq3bs0gcs4i1q3qxxbrfc14ynbpa65knimfhwzrrshchnijgdazx3qjzh8jwzfiwl"; }; appimageContents = appimageTools.extractType2 { inherit name src; }; in appimageTools.wrapType2 { inherit name src; multiPkgs = null; # no 32bit needed extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ]; extraInstallCommands = '' ln -s $out/bin/${name} $out/bin/${pname} install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop install -m 444 -D ${appimageContents}/${pname}.png  $out/share/icons/hicolor/512x512/apps/${pname}.png substituteInPlace $out/share/applications/${pname}.desktop  --replace 'Exec=AppRun' 'Exec=${pname}' ''; meta = with lib; { description = "Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows"; homepage = "https://www.beekeeperstudio.io"; changelog = "https://github.com/beekeeper-studio/beekeeper-studio/releases/tag/v2.1.4"; license = licenses.mit; maintainers = with maintainers; [ milogert ]; platforms = [ "x86_64-linux" ]; }; } </ins>

avra = callPackage ../development/compilers/avra { }; <ins> beekeeper-studio = callPackage ../development/tools/database/beekeeper-studio { }; </ins> bigloo = callPackage ../development/compilers/bigloo { }; binaryen = callPackage ../development/compilers/binaryen { };
Change:
gocryptfs fails to mount a volume as non-root/without sudo as a non-root user: gocryptfs should mount volumes without needing sudo, as normal user fuse as input to the package, and it to in a wrapper. I assume that in older builds is grabbed from my , which would be . The wrapper in has the setuid bit set, while the binary in the package does not; I assume this is the source of the problem. Running the wrapped binary directly () mounts the volume without problems. system: host os: multi-user?: sandbox: version: channels(root): channels(d): nixpkgs: Maintainer information:
cc
The solution is to postfix fuse instead of prefix
What do you mean by postfix fuse?
I meant use --suffix instead of --prefix here
Can you please try the proposed fix above and report back if that fixes the issue?
Thanks, yes, it solves my issue. I was also able to mount via the option with the fix applied, so I went ahead and opened a PR at

Discussion:
popd ''; <ins> # use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount, # as the setuid wrapper is required to use gocryptfs as non-root on NixOS </ins> postInstall = '' wrapProgram $out/bin/gocryptfs  <del> --prefix PATH : ${lib.makeBinPath [ fuse ]} </del> <ins> --suffix PATH : ${lib.makeBinPath [ fuse ]} </ins> ln -s $out/bin/gocryptfs $out/bin/mount.fuse.gocryptfs '';
Change:
/cc To make sure that we are on the same page: Kernel: Linux 4.4.4 -NixOS SMP Thu Mar 3 23:10:04 UTC 2016 x86_64 GNU/Linux System: 16.09pre78286. (Emu) Nix version: nix-env (Nix) 1.11.2 Nixpkgs version: 16.09pre78286. I noticed that munin graphs stopped updating, once I upgraded to 16.03 beta. Journal logs Also running the cron job manually gives an error
It's even more broken on 16.03:
fixed, the test passes now.
Thanks.

Discussion:
# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html <del> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate, libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK </del> <ins> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland , rubberband, vampSDK </ins> }: <del> stdenv.mkDerivation { name = "sonic-visualiser-1.8"; </del> <ins> stdenv.mkDerivation rec { name = "sonic-visualiser-${version}"; version = "1.9"; </ins> src = fetchurl { <del> url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.8.tar.gz; sha256 = "16ik6q9n92wljvnqcv7hyzb9v3yp3ixxp6df9kasf53fii973dh7"; </del> <ins> url = "http://code.soundsoftware.ac.uk/attachments/download/194/${name}.tar.gz"; sha256 = "00igf7j6s8xfyxnlkbqma0yby9pknxqzy8cmh0aw95ix80cw56fq"; </ins> }; buildInputs = [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland <ins> pkgconfig </ins> # optional jackaudio # portaudio

description = "View and analyse contents of music audio files"; homepage = http://www.sonicvisualiser.org/; license = "GPLv2"; <del> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </del> <ins> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </ins> platforms = stdenv.lib.platforms.linux; }; }
Change:
Reported via email by a Nix user without a GitHub account. Build fines. In the attempt to build GNU octave for aarch64 darwin. Maintainer information:
I would suggest opening an issue but I guess that's not an option.
Perhaps, but it seems peculiar that the user "is not able to compile a simple test program" - as if there's a bug in our compiler . Related issues: Perhaps the user should try this edit to Nixpkgs: So even on Darwin the compiler that will be used will be gcc, to play nicely with gfortran.
The suggestion to use is good; I think couldn't possibly work otherwise. Beyond that, I have no idea.
But doesn't it work on x86_64 Darwin?
perhaps you could help us - does arpack and/or octave build currently on x8664 Darwin?
Any news here? This also affects other derivations (e.g. openspecfun). arpack does build on x86_64-darwin.
This issue should be renamed "gfortran broken on aarch64-darwin", as it is not specific to arpack:
See – but we should really fix this in gfortran, rather than requiring every derivation to copy/paste the line.
cc To summarize, we should set: In stdenv somehow.. Perhaps this should go here:
We probably don't want to globally disable stack protector support, though; this only affects gfortran. Seems like we'd want to have the cc-wrapper for gfortran (on aarch64-darwin) to never inject the options, either through a option, or in the cc- script itself. Actually fixing whatever goes wrong in the toolchain would be preferable, of course.
Here's a proposal:

Discussion:
install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib ''; <ins> # disable stackprotector on aarch64-darwin for now # https://github.com/NixOS/nixpkgs/issues/127608 hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ]; </ins> meta = { homepage = "https://github.com/opencollab/arpack-ng"; description = ''
Change:
direwolf does not build. This seems to have been noticed previously as mentioned in this comment on the upgrade of gpsd from 3.22 -3.23: Please run and paste the result.
Thanks for the report. Someone else had pointed this out the other day and I had been looking into it. The current stable version of direwolf doesn't support the latest version of gpsd, but that may only be because of the version check that we could override with a patch until it is fixed upstream. Will try to open a PR when I get a chance, but need to test out my theory first.

Discussion:
espeak gpsd hamlib perl python3 ] ++ (optionals stdenv.isLinux [alsa-lib udev]); <del> patches = [ ./udev-fix.patch ]; </del> postPatch = '' <ins> substituteInPlace conf/CMakeLists.txt  --replace /etc/udev/rules.d/ $out/lib/udev/rules.d/ </ins> substituteInPlace src/symbols.c  --replace /usr/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt  --replace /opt/local/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt substituteInPlace src/decode_aprs.c  --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt  --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt <ins> patchShebangs scripts/dwespeak.sh </ins> substituteInPlace scripts/dwespeak.sh  --replace espeak ${espeak}/bin/espeak substituteInPlace cmake/cpack/direwolf.desktop.in  --replace 'Terminal=false' 'Terminal=true'  <del> --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf'  </del> <ins> --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' substituteInPlace src/dwgpsd.c  --replace 'GPSD_API_MAJOR_VERSION > 11' 'GPSD_API_MAJOR_VERSION > 12' </ins> ''; meta = {

<del> --- direwolf/conf/CMakeLists.txt.orig	2020-12-04 11:12:59.739390894 -0600 +++ direwolf/conf/CMakeLists.txt	2020-12-04 11:23:09.146594795 -0600 @@ -26,7 +26,7 @@ # install udev rules for CM108 if(LINUX) -  install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION /etc/udev/rules.d/) +  install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d/") endif() install(FILES "${CMAKE_BINARY_DIR}/direwolf.conf" DESTINATION ${INSTALL_CONF_DIR}) </del>