SPEC CPU®2017 Integer Rate Result
   Copyright 2017-2024 Standard Performance Evaluation Corporation
   
  
 
 
 
  Benchmark result graphs are available in the PDF report.
 
 
 
 
 
 
  
  
The config file option 'submit' was used.
'numactl' was used to bind copies to the cores.
See the configuration file for details.
  
 
  
  
'ulimit -s unlimited' was used to set environment stack size limit
'ulimit -l 2097152' was used to set environment locked pages in memory limit
runcpu command invoked through numactl i.e.:
numactl --interleave=all runcpu <etc>
To limit dirty cache to 8% of memory, 'sysctl -w vm.dirty_ratio=8' run as root.
To limit swap usage to minimum necessary, 'sysctl -w vm.swappiness=1' run as root.
To free node-local memory and avoid remote memory usage,
'sysctl -w vm.zone_reclaim_mode=1' run as root.
To clear filesystem caches, 'sync; sysctl -w vm.drop_caches=3' run as root.
To disable address space layout randomization (ASLR) to reduce run-to-run
variability, 'sysctl -w kernel.randomize_va_space=0' run as root.
To enable Transparent Hugepages (THP) only on request for base runs,
'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' run as root.
To enable THP for all allocations for peak runs,
'echo always > /sys/kernel/mm/transparent_hugepage/enabled' and
'echo always > /sys/kernel/mm/transparent_hugepage/defrag' run as root.
  
 
  
  
Environment variables set by runcpu before the start of the run:
LD_LIBRARY_PATH =
     "/home/asrr/A1/amd_rate_aocc400_znver4_A_lib/lib:/home/asrr/A1/amd_rate_aocc400_znver4_A_lib/lib32:"
MALLOC_CONF = "retain:true"
Environment variables set by runcpu during the 523.xalancbmk_r peak run:
MALLOC_CONF = "thp:never"
  
 
  
  
Binaries were compiled on a system with 2x AMD EPYC 9174F CPU + 1.5TiB Memory using RHEL 8.6
NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown)
is mitigated in the system as tested and documented.
Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1)
is mitigated in the system as tested and documented.
Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2)
is mitigated in the system as tested and documented.
  
 
  
  
BIOS settings :
  Precision Boost Overdrive : Enabled
 Sysinfo program /home/asrr/A1/bin/sysinfo
 Rev: r6732 of 2022-11-07 fe91c89b7ed5c36ae2c92cc097bec197
 running on asrr Thu Apr 18 03:07:18 2024
 SUT (System Under Test) info as seen by some common utilities.
 ------------------------------------------------------------
 Table of contents
 ------------------------------------------------------------
  1. uname -a
  2. w
  3. Username
  4. ulimit -a
  5. sysinfo process ancestry
  6. /proc/cpuinfo
  7. lscpu
  8. numactl --hardware
  9. /proc/meminfo
 10. who -r
 11. Systemd service manager version: systemd 249 (249.11-0ubuntu3.12)
 12. Services, from systemctl list-unit-files
 13. Linux kernel boot-time arguments, from /proc/cmdline
 14. cpupower frequency-info
 15. sysctl
 16. /sys/kernel/mm/transparent_hugepage
 17. /sys/kernel/mm/transparent_hugepage/khugepaged
 18. OS release
 19. Disk information
 20. /sys/devices/virtual/dmi/id
 21. dmidecode
 22. BIOS
 ------------------------------------------------------------
 ------------------------------------------------------------
 1. uname -a
   Linux asrr 5.15.0-102-generic #112-Ubuntu SMP Tue Mar 5 16:50:32 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 ------------------------------------------------------------
 2. w
    03:07:18 up 0 min,  2 users,  load average: 0.17, 0.06, 0.02
   USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
   asrr     tty1     -                03:06    6.00s  0.12s  0.02s -bash
   asrr     pts/0    -                03:07    5.00s  0.66s  0.08s sudo ./asrr_run.sh
 ------------------------------------------------------------
 3. Username
   From environment variable $USER:  root
   From the command 'logname':       asrr
 ------------------------------------------------------------
 4. ulimit -a
   time(seconds)        unlimited
   file(blocks)         unlimited
   data(kbytes)         unlimited
   stack(kbytes)        unlimited
   coredump(blocks)     0
   memory(kbytes)       unlimited
   locked memory(kbytes) 2097152
   process              253569
   nofiles              1024
   vmemory(kbytes)      unlimited
   locks                unlimited
   rtprio               0
 ------------------------------------------------------------
 5. sysinfo process ancestry
  /sbin/init
  /bin/login -p --
  -bash
  sudo ./asrr_run.sh
  sudo ./asrr_run.sh
  sh ./asrr_run.sh
  python3 ./run_amd_rate_aocc400_znver4_A1.py
  /bin/bash ./amd_rate_aocc400_znver4_A1.sh
  runcpu --config amd_rate_aocc400_znver4_A1.cfg --tune all --reportable --iterations 1 intrate
  runcpu --configfile amd_rate_aocc400_znver4_A1.cfg --tune all --reportable --iterations 1 --nopower
    --runmode rate --tune base:peak --size test:train:refrate intrate --nopreenv --note-preenv --logfile
    $SPEC/tmp/CPU2017.001/templogs/preenv.intrate.001.0.log --lognum 001.0 --from_runcpu 2
  specperl $SPEC/bin/sysinfo
 $SPEC = /home/asrr/A1
 ------------------------------------------------------------
 6. /proc/cpuinfo
     model name      : AMD EPYC 4464P 12-Core Processor
     vendor_id       : AuthenticAMD
     cpu family      : 25
     model           : 97
     stepping        : 2
     microcode       : 0xa601206
     bugs            : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass srso
     TLB size        : 3584 4K pages
     cpu cores       : 12
     siblings        : 24
     1 physical ids (chips)
     24 processors (hardware threads)
     physical id 0: core ids 0-5,8-13
     physical id 0: apicids 0-11,16-27
   Caution: /proc/cpuinfo data regarding chips, cores, and threads is not necessarily reliable, especially for
   virtualized systems.  Use the above data carefully.
 ------------------------------------------------------------
 7. lscpu
 From lscpu from util-linux 2.37.2:
   Architecture:                       x86_64
   CPU op-mode(s):                     32-bit, 64-bit
   Address sizes:                      48 bits physical, 48 bits virtual
   Byte Order:                         Little Endian
   CPU(s):                             24
   On-line CPU(s) list:                0-23
   Vendor ID:                          AuthenticAMD
   Model name:                         AMD EPYC 4464P 12-Core Processor
   CPU family:                         25
   Model:                              97
   Thread(s) per core:                 2
   Core(s) per socket:                 12
   Socket(s):                          1
   Stepping:                           2
   Frequency boost:                    enabled
   CPU max MHz:                        5481.3472
   CPU min MHz:                        3000.0000
   BogoMIPS:                           7399.72
   Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
                                       clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp
                                       lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf
                                       rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt
                                       aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm
                                       sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext
                                       perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3
                                       hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2
                                       erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma
                                       clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec
                                       xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local
                                       avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv
                                       svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
                                       pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl
                                       avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni
                                       avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm
                                       flush_l1d
   Virtualization:                     AMD-V
   L1d cache:                          384 KiB (12 instances)
   L1i cache:                          384 KiB (12 instances)
   L2 cache:                           12 MiB (12 instances)
   L3 cache:                           64 MiB (2 instances)
   NUMA node(s):                       1
   NUMA node0 CPU(s):                  0-23
   Vulnerability Gather data sampling: Not affected
   Vulnerability Itlb multihit:        Not affected
   Vulnerability L1tf:                 Not affected
   Vulnerability Mds:                  Not affected
   Vulnerability Meltdown:             Not affected
   Vulnerability Mmio stale data:      Not affected
   Vulnerability Retbleed:             Not affected
   Vulnerability Spec rstack overflow: Mitigation; safe RET
   Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
   Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
   Vulnerability Spectre v2:           Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB
                                       filling, PBRSB-eIBRS Not affected
   Vulnerability Srbds:                Not affected
   Vulnerability Tsx async abort:      Not affected
 From lscpu --cache:
      NAME ONE-SIZE ALL-SIZE WAYS TYPE        LEVEL  SETS PHY-LINE COHERENCY-SIZE
      L1d       32K     384K    8 Data            1    64        1             64
      L1i       32K     384K    8 Instruction     1    64        1             64
      L2         1M      12M    8 Unified         2  2048        1             64
      L3        32M      64M   16 Unified         3 32768        1             64
 ------------------------------------------------------------
 8. numactl --hardware
 NOTE: a numactl 'node' might or might not correspond to a physical chip.
   available: 1 nodes (0)
   node 0 cpus: 0-23
   node 0 size: 63505 MB
   node 0 free: 62740 MB
   node distances:
   node   0
     0:  10
 ------------------------------------------------------------
 9. /proc/meminfo
    MemTotal:       65029732 kB
 ------------------------------------------------------------
 10. who -r
   run-level 5 Apr 18 03:06
 ------------------------------------------------------------
 11. Systemd service manager version: systemd 249 (249.11-0ubuntu3.12)
   Default Target  Status
   graphical       running
 ------------------------------------------------------------
 12. Services, from systemctl list-unit-files
   STATE            UNIT FILES
   enabled          ModemManager apparmor blk-availability cloud-config cloud-final cloud-init
                    cloud-init-local console-setup cron dmesg e2scrub_reap finalrd getty@ gpu-manager
                    grub-common grub-initrd-fallback irqbalance keyboard-setup lvm2-monitor lxd-agent
                    multipathd networkd-dispatcher open-iscsi open-vm-tools pollinate rsyslog secureboot-db
                    setvtrgb snapd ssh systemd-networkd systemd-networkd-wait-online systemd-pstore
                    systemd-resolved systemd-timesyncd thermald ua-reboot-cmds ubuntu-advantage udisks2 ufw
                    unattended-upgrades vgauth
   enabled-runtime  netplan-ovs-cleanup systemd-fsck-root systemd-remount-fs
   disabled         console-getty debug-shell ipmievd iscsid nftables rsync serial-getty@
                    systemd-boot-check-no-failures systemd-network-generator systemd-sysext
                    systemd-time-wait-sync upower
   generated        apport openipmi
   indirect         uuidd
   masked           cryptdisks cryptdisks-early hwclock lvm2 multipath-tools-boot rc rcS screen-cleanup sudo
                    x11-common
 ------------------------------------------------------------
 13. Linux kernel boot-time arguments, from /proc/cmdline
   BOOT_IMAGE=/vmlinuz-5.15.0-102-generic
   root=UUID=d47cad3b-93a2-4ee6-9b75-5cb5f72fe94c
   ro
 ------------------------------------------------------------
 14. cpupower frequency-info
   analyzing CPU 0:
     current policy: frequency should be within 3.00 GHz and 3.70 GHz.
                     The governor "performance" may decide which speed to use
                     within this range.
     boost state support:
       Supported: yes
       Active: yes
       Boost States: 0
       Total States: 2
       Pstate-P0:  3700MHz
 ------------------------------------------------------------
 15. sysctl
   kernel.numa_balancing               0
   kernel.randomize_va_space           0
   vm.compaction_proactiveness        20
   vm.dirty_background_bytes           0
   vm.dirty_background_ratio          10
   vm.dirty_bytes                      0
   vm.dirty_expire_centisecs        3000
   vm.dirty_ratio                      8
   vm.dirty_writeback_centisecs      500
   vm.dirtytime_expire_seconds     43200
   vm.extfrag_threshold              500
   vm.min_unmapped_ratio               1
   vm.nr_hugepages                     0
   vm.nr_hugepages_mempolicy           0
   vm.nr_overcommit_hugepages          0
   vm.swappiness                       1
   vm.watermark_boost_factor       15000
   vm.watermark_scale_factor          10
   vm.zone_reclaim_mode                1
 ------------------------------------------------------------
 16. /sys/kernel/mm/transparent_hugepage
   defrag          [always] defer defer+madvise madvise never
   enabled         [always] madvise never
   hpage_pmd_size  2097152
   shmem_enabled   always within_size advise [never] deny force
 ------------------------------------------------------------
 17. /sys/kernel/mm/transparent_hugepage/khugepaged
   alloc_sleep_millisecs   60000
   defrag                      1
   max_ptes_none             511
   max_ptes_shared           256
   max_ptes_swap              64
   pages_to_scan            4096
   scan_sleep_millisecs    10000
 ------------------------------------------------------------
 18. OS release
   From /etc/*-release /etc/*-version
   os-release Ubuntu 22.04.4 LTS
 ------------------------------------------------------------
 19. Disk information
 SPEC is set to: /home/asrr/A1
   Filesystem     Type  Size  Used Avail Use% Mounted on
   /dev/nvme0n1p4 ext4  874G   12G  818G   2% /
 ------------------------------------------------------------
 20. /sys/devices/virtual/dmi/id
     Vendor:         AsrockRack
     Product:        1U4LW-B650/2L2T RPSU
 ------------------------------------------------------------
 21. dmidecode
   Additional information from dmidecode 3.3 follows.  WARNING: Use caution when you interpret this section.
   The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately
   determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the
   "DMTF SMBIOS" standard.
   Memory:
     2x Unknown CT32G52C42U5.M16G1 32 GB 2 rank 5200
     2x Unknown Unknown
 ------------------------------------------------------------
 22. BIOS
 (This section combines info from /sys/devices and dmidecode.)
    BIOS Vendor:       American Megatrends International, LLC.
    BIOS Version:      10.14
    BIOS Date:         02/05/2024
    BIOS Revision:     5.32
  
 
  
  
============================================================================================================
C       | 502.gcc_r(peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C       | 500.perlbench_r(base, peak) 502.gcc_r(base) 505.mcf_r(base, peak) 525.x264_r(base, peak)
        | 557.xz_r(base, peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C       | 502.gcc_r(peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C       | 500.perlbench_r(base, peak) 502.gcc_r(base) 505.mcf_r(base, peak) 525.x264_r(base, peak)
        | 557.xz_r(base, peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C++     | 523.xalancbmk_r(peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C++     | 520.omnetpp_r(base, peak) 523.xalancbmk_r(base) 531.deepsjeng_r(base, peak) 541.leela_r(base,
        | peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C++     | 523.xalancbmk_r(peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
C++     | 520.omnetpp_r(base, peak) 523.xalancbmk_r(base) 531.deepsjeng_r(base, peak) 541.leela_r(base,
        | peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
============================================================================================================
Fortran | 548.exchange2_r(base, peak)
------------------------------------------------------------------------------------------------------------
AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc/aocc-compiler-4.0.0/bin
------------------------------------------------------------------------------------------------------------
  
 
 
 
  
  
  
  
  
  
  
   
    | 
   
     -m64 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -Wl,-mllvm -Wl,-inline-recursion=4 
     -Wl,-mllvm -Wl,-lsr-in-nested-loop 
     -Wl,-mllvm -Wl,-enable-iv-split 
     -z muldefs 
     -O3 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -fepilog-vectorization-of-inductions 
     -mllvm -optimize-strided-mem-cost 
     -floop-transform 
     -mllvm -unroll-aggressive 
     -mllvm -unroll-threshold=500 
     -lamdlibm 
     -lflang 
     -lamdalloc 
    | 
   
  
  
 
 
 
 
  
  
  
  
  
   
   | 520.omnetpp_r: | 
   
     -m64 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -Ofast 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -finline-aggressive 
     -mllvm -unroll-threshold=100 
     -mllvm -reduce-array-computations=3 
     -zopt 
     -fvirtual-function-elimination 
     -fvisibility=hidden 
     -lamdlibm 
     -lamdalloc-ext 
    | 
   
   
   | 523.xalancbmk_r: | 
   
     -m32 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -Wl,-mllvm -Wl,-do-block-reorder=aggressive 
     -fno-loop-reroll 
     -Ofast 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -finline-aggressive 
     -mllvm -unroll-threshold=100 
     -mllvm -reduce-array-computations=3 
     -zopt 
     -mllvm -do-block-reorder=aggressive 
     -fvirtual-function-elimination 
     -fvisibility=hidden 
     -lamdalloc-ext 
    | 
   
   
   | 531.deepsjeng_r: | 
   
     -m64 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -O3 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -mllvm -unroll-threshold=100 
     -finline-aggressive 
     -mllvm -loop-unswitch-threshold=200000 
     -mllvm -reduce-array-computations=3 
     -zopt 
     -fvirtual-function-elimination 
     -fvisibility=hidden 
     -lamdlibm 
     -lamdalloc-ext 
    | 
   
   
   | 541.leela_r: | 
   
     -m64 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -Ofast 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -finline-aggressive 
     -mllvm -unroll-threshold=100 
     -mllvm -reduce-array-computations=3 
     -zopt 
     -fvirtual-function-elimination 
     -fvisibility=hidden 
     -lamdlibm 
     -lflang 
     -lamdalloc-ext 
    | 
   
  
  
  
   
    | 
   
     -m64 
     -flto 
     -Wl,-mllvm -Wl,-align-all-nofallthru-blocks=6 
     -Wl,-mllvm -Wl,-reduce-array-computations=3 
     -Wl,-mllvm -Wl,-inline-recursion=4 
     -Wl,-mllvm -Wl,-lsr-in-nested-loop 
     -Wl,-mllvm -Wl,-enable-iv-split 
     -O3 
     -march=znver4 
     -fveclib=AMDLIBM 
     -ffast-math 
     -fepilog-vectorization-of-inductions 
     -mllvm -optimize-strided-mem-cost 
     -floop-transform 
     -mllvm -unroll-aggressive 
     -mllvm -unroll-threshold=500 
     -lamdlibm 
     -lflang 
     -lamdalloc 
    |