Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

acpica-20220331-150500.1.3 RPM for ppc64le

From OpenSuSE Leap 15.5 for ppc64le

Name: acpica Distribution: SUSE Linux Enterprise 15
Version: 20220331 Vendor: SUSE LLC <https://www.suse.com/>
Release: 150500.1.3 Build date: Sun Nov 27 05:57:57 2022
Group: Unspecified Build host: ibs-power9-13
Size: 4294325 Source RPM: acpica-20220331-150500.1.3.src.rpm
Packager: https://www.suse.com/
Url: https://acpica.org
Summary: A set of tools to display and debug BIOS ACPI tables
The included tools share the same code as it is used in the ACPI
implementation of the kernel. The code of the acpica project is exactly
the same as the ACPI parser and interpreter code of the kernel and the
code gets synced regularly from the acpica project into the kernel.
E.g. if you identify bugs in the kernel's ACPI implementation it might
be easier to debug them in userspace if possible. If the bug is part of
the acpica code, it has to be submitted to the acpica project to get
merged into the mainline kernel sources.

iasl compiles ASL (ACPI Source Language) into AML (ACPI Machine
Language). This AML is suitable for inclusion as a DSDT in system
firmware. It also can disassemble AML, for debugging purposes.

Provides

Requires

License

GPL-2.0-only

Changelog

* Fri Oct 14 2022 trenn@suse.de
  - This version includes CEDT table support as requested in feature
    (SLE 15 SP5):
    jsc#PED-201
* Thu Apr 21 2022 rpm@fthiessen.de
  - Update bundled wmidump to latest upstream 2021-10-11:
    * Add support for '//' comments
    * Print object_id or notify_id based on ACPI_WMI_EVENT flag
      object_id and notify_id member are in one union. It depends on
      ACPI_WMI_EVENT flag which member is stored in this union.
      So print only one member based on ACPI_WMI_EVENT flag.
  - Add comment about origin of the wmidump sources
* Wed Apr 20 2022 dmueller@suse.com
  - update to 20220331:
    For the ASL Sleep() operator, issue a warning if the sleep value is
    greater than 10 Milliseconds. Quick boottime is important, so warn about
    sleeps greater than 10 ms. Distribution Linux kernels reach initrd in 350
    ms, so excessive delays should be called out. 10 ms is chosen randomly,
    but three of such delays would already make up ten percent of the
    boottime.
    Namespace: Avoid attempting to walk the Namespace if the Namespace does
    not exist.
    AML interpreter/iASL compiler: Add new Acpi 6.4 semantics for the
    LoadTable and Load operators. DDB_HANDLE is gone, now loadtable returns a
    pass/fail integer. Now load returns a pass/fail integer, as well as
    storing the return value in an optional 2nd argument.
    Headers: Use uintptr_t and offsetof() in Linux kernel builds. To avoid
    "performing pointer subtraction with a null pointer has undefined
    behavior" compiler warnings, use uintptr_t and offsetof() that are always
    available during Linux kernel builds to define ACPI_UINTPTR_T and the
    ACPI_TO_INTEGER() and ACPI_OFFSET() macros when building the ACPICA code
    in the Linux kernel.
    Added support for the Windows 11 _OSI string ("Windows 2021"). Submitted
    by superm1.
    executer/exsystem: Inform users about ACPI spec violation for the Stall()
    operator. Values greater than 100 microseconds violate the ACPI
    specification, so warn users about it. From the ACPI Specification
    version 6.2 Errata A, 19.6.128 *Stall (Stall for a Short Time)*:
    The implementation of Stall is OS-specific, but must not relinquish
    control of the processor. Because of this, delays longer than 100
    microseconds must use Sleep instead of Stall.
    Data Table Compiler/Disassembler: Add support for the APMT table - ARM
    Performance Monitoring Unit table. Submitted by @bwicaksononv.
    Data Table Compiler/Disassembler: For MADT, add support for the OEM-
    defined subtables (Types 0x80-0x7F).
    Data Table Compiler: Fixed a problem with support for the SDEV table,
    where a subtable Length was not computed correctly.
    Data Table Compiler/Disassembler: Add/fix the CFMWS subtable to the CEDT
    Acpi table support.
    Data Table Compiler/Disassembler: Fix a compile issue with the CEDT and
    add template. Submitted by MasterDrogo.
    Data Table Compiler/Disassembler: NHLT Changes provided by Piotr Maziarz:
    iASL/NHLT: Rename linux specific structures to DeviceInfo to improve
    readability of the code.
    iASL/NHLT: Fix parsing undocumented bytes at the end of Endpoint.
    Undocumented bytes at the end of Endpoint Descriptor can be present
    independently of Linux-specific structures. Their size can also vary.
    iASL/NHLT: Treat TableTerminator as SpecificConfig. SpecificConfig has 4
    bytes of size and then an amount of bytes specified by size. All of the
    terminators that I've seen had a size equal to 4, but theoretically it
    can vary.
    iASL/AcpiExec: Use _exit instead of exit in signal handers (ctrl-C).
    iASL: Remove a remark due to excessive output. Removed a remark for
    duplicate Offset() operators, due to a user complaint.
* Sat Feb 05 2022 dfaggioli@suse.com
  - The package build fine on arches different than x86 and ARM. Drop
    the ExclusiveArch.
* Tue Oct 19 2021 rpm@fthiessen.de
  - Update to version 20210930
    * ACPICA kernel-resident subsystem:
    * Avoid evaluating methods too early during system resume.
    * Added a new _OSI string, "Windows 2020".
    * iASL Compiler/Disassembler and ACPICA tools:
    * iASL compiler: Updated the check for usage of _CRS, _DIS,
      _PRS, and _SRSobjects
    * iASL table disassembler: Added disassembly support for the
      NHLT ACPI table.
    * Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity
    * Added the flag for online capable in the MADT, introduced in
      ACPI 6.3.
  - Update to version 20210730:
    * iASL Compiler/Disassembler and ACPICA tools:
    * iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects
    * iASL Table Disassembler/Table compiler: Fix for WPBT table with
      no command-line arguments.
    * Handle the case where the Command-line Arguments table field does
      not exist (zero).
    * Headers: Add new DBG2 Serial Port Subtypes
    * iASL: Add full support for the AEST table (data compiler)
    * Add PRMT module header to facilitate parsing.
    * Table disassembler: Add missing strings to decode subtable types.
* Wed Jun 30 2021 rpm@fthiessen.de
  - Update to version 20210604:
    * ACPICA kernel-resident subsystem
    * Cleaned up (delete) the context mutex during local address
      handler object deletion.
    * Fixed a memory leak caused by the _CID repair function.
    * Add support for PlatformRtMechanism OperationRegion handler.
    * Add a new utility function, AcpiUtConvertUuidToString.
    * iASL Compiler/Disassembler and ACPICA tools:
    * Added full support for the PRMT ACPI table
    * Added full support for the BDAT ACPI table.
    * Added full support for the RGRT ACPI table.
    * Added full support for the SVKL ACPI table.
    * Completed full support for the IVRS ACPI table.
    * Added compiler support for IVRS, updated disassembler support
    * Added a new utility, UtIsIdInteger, to determine if a
      HID/CID is an integer or a string.
    * Headers: Added more structs to the CEDT table
    * ACPI 6.4: MADT: added Multiprocessor Wakeup Mailbox Structure.
* Fri Apr 16 2021 rpm@fthiessen.de
  - Update to version 20210331
    * ACPI 6.4 is now supported!
    ACPICA kernel-resident subsystem:
    * Always create namespace nodes.
    * Fixed a race condition in generic serial bus operation region handler.
    iASL Compiler/Disassembler and ACPICA tools:
    * Add disassembly support for the IVRS table.
    * Fixed a potential infinite loop due to type mismatch.
    iASL/TableCompiler:
    * update it with IORT table E.b revision changes.
    * Add compilation support for the VIOT table.
    * Add compilation support for CEDT table.
    * Update of the CEDT template.
* Tue Jan 05 2021 elimat@opensuse.org
  - Update to version 20210105
    ACPICA kernel-resident subsystem:
    * Updated all copyrights to 2021. This affects all ACPICA source code
      modules.
    iASL Compiler/Disassembler and ACPICA tools:
    * ASL test suite (ASLTS): Updated all copyrights to 2021.
    * Tools and utilities: Updated all signon copyrights to 2021.
    * iASL Table Compiler: Removed support for obsolete ACPI tables: VRTC,
      MTMR. Al Stone.
* Fri Jul 24 2020 elimat@opensuse.org
  - Update to version 20200717
    ACPICA kernel-resident subsystem:
    * Do not increment OperationRegion reference counts for field units. Recent
      server firmware has revealed that this reference count can overflow on
    large servers that declare many field units (thousands) under the same
    OperationRegion. This occurs because each field unit declaration will add
    a reference count to the source OperationRegion. This release solves the
    reference count overflow for OperationRegion objects by preventing
    fieldUnits from incrementing their parent OperationRegion's reference
    count.
    * Replaced one-element arrays with flexible-arrays, which were introduced
      in C99.
    * Restored the readme file containing the directions for generation of
      ACPICA from source on MSVC 2017. Updated the file for MSVC 2017. File is
    located at: generate/msvc2017/readme.txt
    iASL Compiler/Disassembler and ACPICA tools:
    * iASL: Fixed a regression found in version 20200214. Prevent iASL from
      emitting an extra byte of garbage data when control methods declared a
    single parameter type without using braces. This extra byte is known to
    cause a blue screen on the Windows AML interpreter.
    * iASL: Made a change to allow external declarations to specify the type of
      a named object even when some name segments are not defined. This change
    allows the following ASL code to compile
    (When DEV0 is not defined or not defined yet):
    External (\_SB.DEV0.OBJ1, IntObj)
    External (\_SB.DEV0, DeviceObj)
    * iASL: Fixed a problem where method names in "Alias ()" statement could be
      misinterpreted. They are now interpreted correctly as method invocations.
    * iASL: capture a method parameter count (Within the Method info segment,
      as well as the argument node) when using parameter type lists.
* Thu Jul 02 2020 elimat@opensuse.org
  - Update to version 20200528
    ACPICA kernel-resident subsystem:
      Removed old/obsolete Visual Studio files which were used to build the
      Windows versions of the ACPICA tools. Since we have moved to Visual
      Studio 2017, we are no longer supporting Visual Studio 2006 and 2009
      project files. The new subdirectory and solution file are located at:
      acpica/generate/msvc2017/AcpiComponents.sln
    iASL Compiler/Disassembler and ACPICA tools:
    * iASL: added support for a new OperationRegion Address Space (subtype):
      PlatformRtMechanism. Support for this new keyword is being released for
      early prototyping. It will appear in the next release of the ACPI
      specification.
    * iASL: do not optimize the NameString parameter of the CondRefOf operator.
      In the previous iASL compiler release, the NameString parameter of the
      CondRefOf was optimized. There is evidence that some implementations of
      the AML interpreter do not perform the recursive search-to-parent search
      during the execution of the CondRefOf operator. Therefore, the CondRefOf
      operator behaves differently when the NameString parameter is a single
      name segment (a NameSeg) as opposed to a full NamePath (starting at the
      root scope) or a NameString containing parent prefixes.
    * iASL: Prevent an inadvertent remark message. This change prevents a
      remark if within a control method the following exist:
      1) An Operation Region is defined, and
      2) A Field operator is defined that refers to the region.
      This happens because at the top level, the Field operator does not
      actually create a new named object, it simply references the operation
      region.
    * Removed support for the acpinames utility. The acpinames was a simple
      utility used to populate and display the ACPI namespace without executing
      any AML code. However, ACPICA now supports executable opcodes outside of
      control methods. This means that executable AML opcodes such as If and
      Store opcodes need to be executed during table load. Therefore, acpinames
      would need to be updated to match the same behavior as the acpiexec
      utility and since acpiexec can already dump the entire namespace (via the
      'namespace' command), we no longer have the need to maintain acpinames.
    * In order to dump the contents of the ACPI namepsace using acpiexec,
      execute the following command from the command line:
      acpiexec -b "n" [aml files]
  - Refresh parches
* Mon Apr 27 2020 mliska@suse.cz
  - Enable -fcommon in CFLAGS and CXXFLAGS in order
    to fix boo#1160383.
* Thu Feb 06 2020 trenn@suse.de
  - Add -fcommon as there are a lot re-definitions which lead to errors
    and compile failures with gcc10 which enables -fno-common by default
    bsc#1160383 - acpica fails with -fno-common
* Mon Jan 20 2020 aloisio@gmx.com
  - Update to version 20200110
* Tue May 28 2019 jengelh@inai.de
  - Use noun phrase in summary
* Wed May 22 2019 trenn@suse.de
  - Update to version 20190509
    Includes a fix that breaks VirtualBox
    https://github.com/acpica/acpica/issues/462
* Mon Apr 08 2019 trenn@suse.de
  - Update to version 20190405
    iASL: Implemented an enhanced multiple file compilation that combines
    named objects from all input files to a single namespace. With this
    feature, any unresolved external declarations as well as duplicate named
    object declarations can be detected during compilation rather than
    generating errors much later at runtime. The following commands are
    examples that utilize this feature:
      iasl dsdt.asl ssdt.asl
      iasl dsdt.asl ssdt1.asl ssdt2.asl
      iasl dsdt.asl ssdt*.asl
  - Adjusted patch:
    M acpica-no-compiletime.patch
* Wed Mar 13 2019 elimat@opensuse.org
  - Update to version 20190215
    Support for ACPI specification version 6.3:
    * Add PCC operation region support for the AML interpreter. This adds PCC
      operation region support in the AML interpreter and a default handler for
      acpiexec. The change also renames the PCC region address space keyword to
      PlatformCommChannel.
    * Support for new predefined methods _NBS, _NCH, _NIC, _NIH, and _NIG.
      These methods provide OSPM with health information and device boot
      status.
    * PDTT: Add TriggerOrder to the PCC Identifier structure. The field value
      defines if the trigger needs to be invoked by OSPM before or at the end
      of kernel crash dump processing/handling operation.
    * SRAT: Add Generic Affinity Structure subtable. This subtable in the SRAT
      is used for describing devices such as heterogeneous processors,
      accelerators, GPUs, and IO devices with integrated compute or DMA
      engines.
    * MADT: Add support for statistical profiling in GICC. Statistical
      profiling extension (SPE) is an architecture-specific feature for ARM.
    * MADT: Add online capable flag. If this bit is set, system hardware
      supports enabling this processor during OS runtime.
    * New Error Disconnect Recover Notification value. There are a number of
      scenarios where system Firmware in collaboration with hardware may
      disconnect one or more devices from the rest of the system for purposes
      of error containment. Firmware can use this new notification value to
      alert OSPM of such a removal.
    * PPTT: New additional fields in Processor Structure Flags. These flags
      provide more information about processor topology.
    * NFIT/Disassembler: Change a field name from "Address Range" to "Region
      Type".
    * HMAT updates: make several existing fields to be reserved as well as
      rename subtable 0 to "memory proximity domain attributes".
    * GTDT: Add support for new GTDT Revision 3. This revision adds information
      for the EL2 timer.
    * iASL: Update the HMAT example template for new fields.
    * iASL: Add support for the new revision of the GTDT (Rev 3).
    ACPICA kernel-resident subsystem:
    * AML Parser: fix the main AML parse loop to correctly skip erroneous
      extended opcodes. AML opcodes come in two lengths: 1-byte opcodes and 2-
      byte extended opcodes. If an error occurs during an AML table load, the
      AML parser will continue loading the table by skipping the offending
      opcode. This implements a "load table at any cost" philosophy.
    iASL Compiler/Disassembler and Tools:
    * iASL: Add checks for illegal object references, such as a reference
      outside of method to an object within a method. Such an object is only
      temporary.
    * iASL: Emit error for creation of a zero-length operation region. Such a
      region is rather pointless. If encountered, a runtime error is also
      implemented in the interpeter.
    * Debugger: Fix a possible fault with the "test objects" command.
    * iASL: Makefile: support parent directory filenames containing embedded
      spaces.
    * iASL: Update the TPM2 template to revision 4.
    * iASL: Add the ability to report specific warnings or remarks as errors.
    * Disassembler: Disassemble OEMx tables as actual AML byte code.
      Previously, these tables were treated as "unknown table".
    * iASL: Add definition and disassembly for TPM2 revision 3.
    * iASL: Add support for TPM2 rev 3 compilation.
  - Refresh patches
  - Run spec-cleaner
* Mon Jul 02 2018 trenn@suse.de
  - Update to 20180629
    Added changelog from mainline, installed into documentation path
* Sat May 26 2018 aloisio@gmx.com
  - Update to version 20180508
    ACPICA kernel-resident subsystem:
    * Completed the new (recently deployed) package resolution
      mechanism for the Load and LoadTable ASL/AML operators. This
      fixes a regression that was introduced in version 20180209
      that could result in an AE_AML_INTERNAL exception during the
      loading of a dynamic ACPI/AML table (SSDT) that contains
      package objects.
    iASL Compiler/Disassembler and Tools:
    * AcpiDump and AcpiXtract: Implemented support for ACPI tables
      larger than 1 MB. This change allows for table offsets within
      the acpidump file to be up to 8 characters. These changes are
      backwards compatible with existing acpidump files.
    version 20180427
    ACPICA kernel-resident subsystem:
    * Debugger: Added support for Package objects in the "Test
      Objects" command. This command walks the entire namespace and
      evaluates all named data objects (Integers, Strings, Buffers,
      and now Packages).
    * Improved error messages for the namespace root node.
      Originally, the root was referred to by the confusing string
      "\___". This has been replaced by "Namespace Root" for
      clarification.
    * Fixed a potential infinite loop in the AcpiRsDumpByteList
      function. Colin Ian King <colin.king@canonical.com>.
    iASL Compiler/Disassembler and Tools:
    * iASL: Implemented support to detect and flag illegal forward
      references. For compatibility with other ACPI implementations,
      these references are now illegal at the root level of the DSDT
      or SSDTs. Forward references have always been illegal within
      control methods. This change should not affect existing
      ASL/AML code because of the fact that these references
      have always been illegal in the other ACPI implementation.
    * iASL: Added error messages for the case where a table OEM ID
      and OEM TABLE ID strings are longer than the ACPI-defined length.
      Previously, these strings were simply silently truncated.
    * iASL: Enhanced the -tc option (which creates an AML hex file
      in C, suitable for import into a firmware project):
      1) Create a unique name for the table, to simplify use of
      multiple SSDTs.
      2) Add a protection #ifdef in the file, similar to a .h
      header file. With assistance from Sami Mujawar,
      sami.mujawar@arm.com and Evan Lloyd, evan.lloyd@arm.com
    * AcpiExec: Added a new option, -df, to disable the local
      fault handler. This is useful during debugging, where it may
      be desired to drop into a debugger on a fault.
* Wed Apr 18 2018 josef.moellers@suse.com
  - Upgrade to latest version 20180313
  - Update patches:
    * acpica-no-compiletime.patch
    * do_not_use_build_date_and_time.patch
* Fri Jan 12 2018 trenn@suse.de
  - Update to latest version 20180105
    D    revert_62ca7996_build_date_and_time.patch
    D    revert_cdd3c612d4230bbb_build_date_and_time.patch
    A    do_not_use_build_date_and_time.patch
  - pass --jobs from build service to make for much faster building
* Fri Jan 12 2018 josef.moellers@suse.com
  - Changed shebang path in wmidump_add_she_bang.patch
    to /usr/bin/python3
    [bsc#1075687,wmidump_add_she_bang.patch]
* Thu Dec 07 2017 dimstar@opensuse.org
  - Escape the usage of %{VERSION} when calling out to rpm.
* Tue Jun 13 2017 trenn@suse.de
  - Update to version 20170531.
* Wed Jan 25 2017 trenn@suse.de
  - Update to version 20170119 (fate#322313).
* Thu Jan 05 2017 trenn@suse.de
  - Update to version 20161117 (fate#322313).
  - __DATE__ __TIME__ macros added again mainline, revert them to avoid
    constant build service rebuilding
    * Add revert_62ca7996_build_date_and_time.patch
    * Add revert_cdd3c612d4230bbb_build_date_and_time.patch
* Fri Sep 16 2016 dmueller@suse.com
  - enable build for ARM (needed for ovmf nowadays)
* Mon Apr 25 2016 trenn@suse.de
  - Update to version 20160422
* Sun Dec 06 2015 p.drouand@gmail.com
  - Update to version 20151124
    * Fixed a possible regression for a previous update to FADT handling. The
      FADT no longer has a fixed table ID, causing some issues with code that
      was hardwired to a specific ID. Lv Zheng.
    * Fixed a problem where the method auto-serialization could interfere with
      the current SyncLevel. This change makes the auto-serialization support
      transparent to the SyncLevel support and management.
    * Removed support for the _SUB predefined name in AcpiGetObjectInfo. This
      interface is intended for early access to the namespace during the
      initial namespace device discovery walk. The _SUB method has been seen to
      access operation regions in some cases, causing errors because the
      operation regions are not fully initialized.
    * AML Debugger: Fixed some issues with the terminate/quit/exit commands
      that can cause faults.
    * AML Debugger: Add thread ID support so that single-step mode only applies
    * to the AML Debugger thread. This prevents runtime errors within some
      kernels.
    * Eliminated extraneous warnings from AcpiGetSleepTypeData. Since the _Sx
      methods that are invoked by this interface are optional, removed warnings
      emitted for the case where one or more of these methods do not exist.
      ACPICA BZ 1208.
    * Made a major pass through the entire ACPICA source code base to
      standardize formatting that has diverged a bit over time. There are no
      functional changes, but this will of course cause quite a few code
      differences from the previous ACPICA release.
    * Example Code and Data Size: These are the sizes for the OS-independent
      acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
      debug version of the code includes the debug output trace mechanism and
      has a much larger code and data size.
    * iASL/acpiexec/acpixtract/disassembler: Added support to allow multiple
      definition blocks within a single ASL file and the resulting AML file.
      Support for this type of file was also added to the various tools that
      use binary AML files: acpiexec, acpixtract, and the AML disassembler. The
      example code below shows two definition blocks within the same file:
      DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel", "Template",
    0x12345678)
      {
      }
      DefinitionBlock ("", "SSDT", 2, "Intel", "Template", 0xABCDEF01)
      {
      }
    * iASL: Enhanced typechecking for the Name() operator. All expressions for
      the value of the named object must be reduced/folded to a single constant
      at compile time, as per the ACPI specification (the AML definition of
      Name()).
    * iASL: Fixed some code indentation issues for the -ic and -ia options (C
      and assembly headers). Now all emitted code correctly begins in column 1.
    * iASL: Added an error message for an attempt to open a Scope() on an
      object defined in an SSDT. The DSDT is always loaded into the namespace
      first, so any attempt to open a Scope on an SSDT object will fail at
      runtime.
  - Remove acpica_remove_date_macro.patch; fixed on upstream release
* Wed Nov 04 2015 jslaby@suse.com
  - add support for kernel 4.3+ (boo#953599)
* Sun Aug 16 2015 p.drouand@gmail.com
  - Update to version 20150717
  - Use download Url as source
  - Remove depreciated AUTHORS section
* Tue Jun 30 2015 dimstar@opensuse.org
  - Fix the logic to ignore errors when applying
    acpica_remove_date_macro.patch: Kernel 4.1 has the patch, but we
    do want to keep it around for projects building against older
    kernels.
* Fri Apr 24 2015 trenn@suse.de
  - Update to acpica version 20150410
  - Do not generate acpitools tarball from external kernel repo, but
    use kernel-source package inside the build service.
    * Added acpica_remove_date_macro.patch
    - > This patch got mainline in kernel version 4.0 and can be removed
    again at some point of time.
* Mon Feb 02 2015 schwab@suse.de
  - Enable on aarch64

Files

/usr/bin/acpi_validate
/usr/bin/acpibin
/usr/bin/acpiexamples
/usr/bin/acpiexec
/usr/bin/acpihelp
/usr/bin/acpisrc
/usr/bin/acpixtract
/usr/bin/iasl
/usr/bin/wmidump
/usr/bin/wmixtract
/usr/sbin/acpi_genl
/usr/sbin/acpidump
/usr/sbin/ec_access
/usr/share/doc/packages/acpica
/usr/share/doc/packages/acpica/README_acpi_genl
/usr/share/doc/packages/acpica/README_wmidump.md
/usr/share/doc/packages/acpica/changes.txt
/usr/share/man/man8/acpidump.8.gz


Generated by rpm2html 1.8.1

Fabrice Bellet, Tue Jul 9 17:57:49 2024