LCOV - code coverage report
Current view: top level - src/elf - relocation.rs (source / functions) Coverage Total Hit
Test: lief.lcov Lines: 4.4 % 2126 93
Test Date: 2024-11-30:00:00:00 Functions: 59.5 % 42 25

            Line data    Source code
       1              : use std::marker::PhantomData;
       2              : 
       3              : use lief_ffi as ffi;
       4              : 
       5              : use crate::Error;
       6              : use crate::generic;
       7              : use crate::elf::Section;
       8              : 
       9              : use crate::common::into_optional;
      10              : use crate::common::FromFFI;
      11              : use crate::{declare_iterator, to_result};
      12              : 
      13              : use super::Symbol;
      14              : 
      15              : /// Structure which reprents an ELF relocation
      16              : pub struct Relocation<'a> {
      17              :     ptr: cxx::UniquePtr<ffi::ELF_Relocation>,
      18              :     _owner: PhantomData<&'a ffi::ELF_Binary>
      19              : }
      20              : 
      21              : 
      22              : #[allow(non_camel_case_types)]
      23        16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
      24              : /// The different types of the relocation
      25              : pub enum Type {
      26              :     X86_64_NONE,
      27              :     X86_64_64,
      28              :     X86_64_PC32,
      29              :     X86_64_GOT32,
      30              :     X86_64_PLT32,
      31              :     X86_64_COPY,
      32              :     X86_64_GLOB_DAT,
      33              :     X86_64_JUMP_SLOT,
      34              :     X86_64_RELATIVE,
      35              :     X86_64_GOTPCREL,
      36              :     X86_64_32,
      37              :     X86_64_32S,
      38              :     X86_64_16,
      39              :     X86_64_PC16,
      40              :     X86_64_8,
      41              :     X86_64_PC8,
      42              :     X86_64_DTPMOD64,
      43              :     X86_64_DTPOFF64,
      44              :     X86_64_TPOFF64,
      45              :     X86_64_TLSGD,
      46              :     X86_64_TLSLD,
      47              :     X86_64_DTPOFF32,
      48              :     X86_64_GOTTPOFF,
      49              :     X86_64_TPOFF32,
      50              :     X86_64_PC64,
      51              :     X86_64_GOTOFF64,
      52              :     X86_64_GOTPC32,
      53              :     X86_64_GOT64,
      54              :     X86_64_GOTPCREL64,
      55              :     X86_64_GOTPC64,
      56              :     X86_64_GOTPLT64,
      57              :     X86_64_PLTOFF64,
      58              :     X86_64_SIZE32,
      59              :     X86_64_SIZE64,
      60              :     X86_64_GOTPC32_TLSDESC,
      61              :     X86_64_TLSDESC_CALL,
      62              :     X86_64_TLSDESC,
      63              :     X86_64_IRELATIVE,
      64              :     X86_64_RELATIVE64,
      65              :     X86_64_PC32_BND,
      66              :     X86_64_PLT32_BND,
      67              :     X86_64_GOTPCRELX,
      68              :     X86_64_REX_GOTPCRELX,
      69              :     AARCH64_NONE,
      70              :     AARCH64_ABS64,
      71              :     AARCH64_ABS32,
      72              :     AARCH64_ABS16,
      73              :     AARCH64_PREL64,
      74              :     AARCH64_PREL32,
      75              :     AARCH64_PREL16,
      76              :     AARCH64_MOVW_UABS_G0,
      77              :     AARCH64_MOVW_UABS_G0_NC,
      78              :     AARCH64_MOVW_UABS_G1,
      79              :     AARCH64_MOVW_UABS_G1_NC,
      80              :     AARCH64_MOVW_UABS_G2,
      81              :     AARCH64_MOVW_UABS_G2_NC,
      82              :     AARCH64_MOVW_UABS_G3,
      83              :     AARCH64_MOVW_SABS_G0,
      84              :     AARCH64_MOVW_SABS_G1,
      85              :     AARCH64_MOVW_SABS_G2,
      86              :     AARCH64_LD_PREL_LO19,
      87              :     AARCH64_ADR_PREL_LO21,
      88              :     AARCH64_ADR_PREL_PG_HI21,
      89              :     AARCH64_ADR_PREL_PG_HI21_NC,
      90              :     AARCH64_ADD_ABS_LO12_NC,
      91              :     AARCH64_LDST8_ABS_LO12_NC,
      92              :     AARCH64_TSTBR14,
      93              :     AARCH64_CONDBR19,
      94              :     AARCH64_JUMP26,
      95              :     AARCH64_CALL26,
      96              :     AARCH64_LDST16_ABS_LO12_NC,
      97              :     AARCH64_LDST32_ABS_LO12_NC,
      98              :     AARCH64_LDST64_ABS_LO12_NC,
      99              :     AARCH64_MOVW_PREL_G0,
     100              :     AARCH64_MOVW_PREL_G0_NC,
     101              :     AARCH64_MOVW_PREL_G1,
     102              :     AARCH64_MOVW_PREL_G1_NC,
     103              :     AARCH64_MOVW_PREL_G2,
     104              :     AARCH64_MOVW_PREL_G2_NC,
     105              :     AARCH64_MOVW_PREL_G3,
     106              :     AARCH64_LDST128_ABS_LO12_NC,
     107              :     AARCH64_MOVW_GOTOFF_G0,
     108              :     AARCH64_MOVW_GOTOFF_G0_NC,
     109              :     AARCH64_MOVW_GOTOFF_G1,
     110              :     AARCH64_MOVW_GOTOFF_G1_NC,
     111              :     AARCH64_MOVW_GOTOFF_G2,
     112              :     AARCH64_MOVW_GOTOFF_G2_NC,
     113              :     AARCH64_MOVW_GOTOFF_G3,
     114              :     AARCH64_GOTREL64,
     115              :     AARCH64_GOTREL32,
     116              :     AARCH64_GOT_LD_PREL19,
     117              :     AARCH64_LD64_GOTOFF_LO15,
     118              :     AARCH64_ADR_GOT_PAGE,
     119              :     AARCH64_LD64_GOT_LO12_NC,
     120              :     AARCH64_LD64_GOTPAGE_LO15,
     121              :     AARCH64_TLSGD_ADR_PREL21,
     122              :     AARCH64_TLSGD_ADR_PAGE21,
     123              :     AARCH64_TLSGD_ADD_LO12_NC,
     124              :     AARCH64_TLSGD_MOVW_G1,
     125              :     AARCH64_TLSGD_MOVW_G0_NC,
     126              :     AARCH64_TLSLD_ADR_PREL21,
     127              :     AARCH64_TLSLD_ADR_PAGE21,
     128              :     AARCH64_TLSLD_ADD_LO12_NC,
     129              :     AARCH64_TLSLD_MOVW_G1,
     130              :     AARCH64_TLSLD_MOVW_G0_NC,
     131              :     AARCH64_TLSLD_LD_PREL19,
     132              :     AARCH64_TLSLD_MOVW_DTPREL_G2,
     133              :     AARCH64_TLSLD_MOVW_DTPREL_G1,
     134              :     AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
     135              :     AARCH64_TLSLD_MOVW_DTPREL_G0,
     136              :     AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
     137              :     AARCH64_TLSLD_ADD_DTPREL_HI12,
     138              :     AARCH64_TLSLD_ADD_DTPREL_LO12,
     139              :     AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
     140              :     AARCH64_TLSLD_LDST8_DTPREL_LO12,
     141              :     AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
     142              :     AARCH64_TLSLD_LDST16_DTPREL_LO12,
     143              :     AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
     144              :     AARCH64_TLSLD_LDST32_DTPREL_LO12,
     145              :     AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
     146              :     AARCH64_TLSLD_LDST64_DTPREL_LO12,
     147              :     AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
     148              :     AARCH64_TLSIE_MOVW_GOTTPREL_G1,
     149              :     AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
     150              :     AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
     151              :     AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC,
     152              :     AARCH64_TLSIE_LD_GOTTPREL_PREL19,
     153              :     AARCH64_TLSLE_MOVW_TPREL_G2,
     154              :     AARCH64_TLSLE_MOVW_TPREL_G1,
     155              :     AARCH64_TLSLE_MOVW_TPREL_G1_NC,
     156              :     AARCH64_TLSLE_MOVW_TPREL_G0,
     157              :     AARCH64_TLSLE_MOVW_TPREL_G0_NC,
     158              :     AARCH64_TLSLE_ADD_TPREL_HI12,
     159              :     AARCH64_TLSLE_ADD_TPREL_LO12,
     160              :     AARCH64_TLSLE_ADD_TPREL_LO12_NC,
     161              :     AARCH64_TLSLE_LDST8_TPREL_LO12,
     162              :     AARCH64_TLSLE_LDST8_TPREL_LO12_NC,
     163              :     AARCH64_TLSLE_LDST16_TPREL_LO12,
     164              :     AARCH64_TLSLE_LDST16_TPREL_LO12_NC,
     165              :     AARCH64_TLSLE_LDST32_TPREL_LO12,
     166              :     AARCH64_TLSLE_LDST32_TPREL_LO12_NC,
     167              :     AARCH64_TLSLE_LDST64_TPREL_LO12,
     168              :     AARCH64_TLSLE_LDST64_TPREL_LO12_NC,
     169              :     AARCH64_TLSDESC_LD_PREL19,
     170              :     AARCH64_TLSDESC_ADR_PREL21,
     171              :     AARCH64_TLSDESC_ADR_PAGE21,
     172              :     AARCH64_TLSDESC_LD64_LO12_NC,
     173              :     AARCH64_TLSDESC_ADD_LO12_NC,
     174              :     AARCH64_TLSDESC_OFF_G1,
     175              :     AARCH64_TLSDESC_OFF_G0_NC,
     176              :     AARCH64_TLSDESC_LDR,
     177              :     AARCH64_TLSDESC_ADD,
     178              :     AARCH64_TLSDESC_CALL,
     179              :     AARCH64_TLSLE_LDST128_TPREL_LO12,
     180              :     AARCH64_TLSLE_LDST128_TPREL_LO12_NC,
     181              :     AARCH64_TLSLD_LDST128_DTPREL_LO12,
     182              :     AARCH64_TLSLD_LDST128_DTPREL_LO12_NC,
     183              :     AARCH64_COPY,
     184              :     AARCH64_GLOB_DAT,
     185              :     AARCH64_JUMP_SLOT,
     186              :     AARCH64_RELATIVE,
     187              :     AARCH64_TLS_DTPREL64,
     188              :     AARCH64_TLS_DTPMOD64,
     189              :     AARCH64_TLS_TPREL64,
     190              :     AARCH64_TLSDESC,
     191              :     AARCH64_IRELATIVE,
     192              :     ARM_NONE,
     193              :     ARM_PC24,
     194              :     ARM_ABS32,
     195              :     ARM_REL32,
     196              :     ARM_LDR_PC_G0,
     197              :     ARM_ABS16,
     198              :     ARM_ABS12,
     199              :     ARM_THM_ABS5,
     200              :     ARM_ABS8,
     201              :     ARM_SBREL32,
     202              :     ARM_THM_CALL,
     203              :     ARM_THM_PC8,
     204              :     ARM_BREL_ADJ,
     205              :     ARM_TLS_DESC,
     206              :     ARM_THM_SWI8,
     207              :     ARM_XPC25,
     208              :     ARM_THM_XPC22,
     209              :     ARM_TLS_DTPMOD32,
     210              :     ARM_TLS_DTPOFF32,
     211              :     ARM_TLS_TPOFF32,
     212              :     ARM_COPY,
     213              :     ARM_GLOB_DAT,
     214              :     ARM_JUMP_SLOT,
     215              :     ARM_RELATIVE,
     216              :     ARM_GOTOFF32,
     217              :     ARM_BASE_PREL,
     218              :     ARM_GOT_BREL,
     219              :     ARM_PLT32,
     220              :     ARM_CALL,
     221              :     ARM_JUMP24,
     222              :     ARM_THM_JUMP24,
     223              :     ARM_BASE_ABS,
     224              :     ARM_ALU_PCREL_7_0,
     225              :     ARM_ALU_PCREL_15_8,
     226              :     ARM_ALU_PCREL_23_15,
     227              :     ARM_LDR_SBREL_11_0_NC,
     228              :     ARM_ALU_SBREL_19_12_NC,
     229              :     ARM_ALU_SBREL_27_20_CK,
     230              :     ARM_TARGET1,
     231              :     ARM_SBREL31,
     232              :     ARM_V4BX,
     233              :     ARM_TARGET2,
     234              :     ARM_PREL31,
     235              :     ARM_MOVW_ABS_NC,
     236              :     ARM_MOVT_ABS,
     237              :     ARM_MOVW_PREL_NC,
     238              :     ARM_MOVT_PREL,
     239              :     ARM_THM_MOVW_ABS_NC,
     240              :     ARM_THM_MOVT_ABS,
     241              :     ARM_THM_MOVW_PREL_NC,
     242              :     ARM_THM_MOVT_PREL,
     243              :     ARM_THM_JUMP19,
     244              :     ARM_THM_JUMP6,
     245              :     ARM_THM_ALU_PREL_11_0,
     246              :     ARM_THM_PC12,
     247              :     ARM_ABS32_NOI,
     248              :     ARM_REL32_NOI,
     249              :     ARM_ALU_PC_G0_NC,
     250              :     ARM_ALU_PC_G0,
     251              :     ARM_ALU_PC_G1_NC,
     252              :     ARM_ALU_PC_G1,
     253              :     ARM_ALU_PC_G2,
     254              :     ARM_LDR_PC_G1,
     255              :     ARM_LDR_PC_G2,
     256              :     ARM_LDRS_PC_G0,
     257              :     ARM_LDRS_PC_G1,
     258              :     ARM_LDRS_PC_G2,
     259              :     ARM_LDC_PC_G0,
     260              :     ARM_LDC_PC_G1,
     261              :     ARM_LDC_PC_G2,
     262              :     ARM_ALU_SB_G0_NC,
     263              :     ARM_ALU_SB_G0,
     264              :     ARM_ALU_SB_G1_NC,
     265              :     ARM_ALU_SB_G1,
     266              :     ARM_ALU_SB_G2,
     267              :     ARM_LDR_SB_G0,
     268              :     ARM_LDR_SB_G1,
     269              :     ARM_LDR_SB_G2,
     270              :     ARM_LDRS_SB_G0,
     271              :     ARM_LDRS_SB_G1,
     272              :     ARM_LDRS_SB_G2,
     273              :     ARM_LDC_SB_G0,
     274              :     ARM_LDC_SB_G1,
     275              :     ARM_LDC_SB_G2,
     276              :     ARM_MOVW_BREL_NC,
     277              :     ARM_MOVT_BREL,
     278              :     ARM_MOVW_BREL,
     279              :     ARM_THM_MOVW_BREL_NC,
     280              :     ARM_THM_MOVT_BREL,
     281              :     ARM_THM_MOVW_BREL,
     282              :     ARM_TLS_GOTDESC,
     283              :     ARM_TLS_CALL,
     284              :     ARM_TLS_DESCSEQ,
     285              :     ARM_THM_TLS_CALL,
     286              :     ARM_PLT32_ABS,
     287              :     ARM_GOT_ABS,
     288              :     ARM_GOT_PREL,
     289              :     ARM_GOT_BREL12,
     290              :     ARM_GOTOFF12,
     291              :     ARM_GOTRELAX,
     292              :     ARM_GNU_VTENTRY,
     293              :     ARM_GNU_VTINHERIT,
     294              :     ARM_THM_JUMP11,
     295              :     ARM_THM_JUMP8,
     296              :     ARM_TLS_GD32,
     297              :     ARM_TLS_LDM32,
     298              :     ARM_TLS_LDO32,
     299              :     ARM_TLS_IE32,
     300              :     ARM_TLS_LE32,
     301              :     ARM_TLS_LDO12,
     302              :     ARM_TLS_LE12,
     303              :     ARM_TLS_IE12GP,
     304              :     ARM_PRIVATE_0,
     305              :     ARM_PRIVATE_1,
     306              :     ARM_PRIVATE_2,
     307              :     ARM_PRIVATE_3,
     308              :     ARM_PRIVATE_4,
     309              :     ARM_PRIVATE_5,
     310              :     ARM_PRIVATE_6,
     311              :     ARM_PRIVATE_7,
     312              :     ARM_PRIVATE_8,
     313              :     ARM_PRIVATE_9,
     314              :     ARM_PRIVATE_10,
     315              :     ARM_PRIVATE_11,
     316              :     ARM_PRIVATE_12,
     317              :     ARM_PRIVATE_13,
     318              :     ARM_PRIVATE_14,
     319              :     ARM_PRIVATE_15,
     320              :     ARM_ME_TOO,
     321              :     ARM_THM_TLS_DESCSEQ16,
     322              :     ARM_THM_TLS_DESCSEQ32,
     323              :     ARM_IRELATIVE,
     324              :     ARM_RXPC25,
     325              :     ARM_RSBREL32,
     326              :     ARM_THM_RPC22,
     327              :     ARM_RREL32,
     328              :     ARM_RPC24,
     329              :     ARM_RBASE,
     330              :     HEX_NONE,
     331              :     HEX_B22_PCREL,
     332              :     HEX_B15_PCREL,
     333              :     HEX_B7_PCREL,
     334              :     HEX_LO16,
     335              :     HEX_HI16,
     336              :     HEX_32,
     337              :     HEX_16,
     338              :     HEX_8,
     339              :     HEX_GPREL16_0,
     340              :     HEX_GPREL16_1,
     341              :     HEX_GPREL16_2,
     342              :     HEX_GPREL16_3,
     343              :     HEX_HL16,
     344              :     HEX_B13_PCREL,
     345              :     HEX_B9_PCREL,
     346              :     HEX_B32_PCREL_X,
     347              :     HEX_32_6_X,
     348              :     HEX_B22_PCREL_X,
     349              :     HEX_B15_PCREL_X,
     350              :     HEX_B13_PCREL_X,
     351              :     HEX_B9_PCREL_X,
     352              :     HEX_B7_PCREL_X,
     353              :     HEX_16_X,
     354              :     HEX_12_X,
     355              :     HEX_11_X,
     356              :     HEX_10_X,
     357              :     HEX_9_X,
     358              :     HEX_8_X,
     359              :     HEX_7_X,
     360              :     HEX_6_X,
     361              :     HEX_32_PCREL,
     362              :     HEX_COPY,
     363              :     HEX_GLOB_DAT,
     364              :     HEX_JMP_SLOT,
     365              :     HEX_RELATIVE,
     366              :     HEX_PLT_B22_PCREL,
     367              :     HEX_GOTREL_LO16,
     368              :     HEX_GOTREL_HI16,
     369              :     HEX_GOTREL_32,
     370              :     HEX_GOT_LO16,
     371              :     HEX_GOT_HI16,
     372              :     HEX_GOT_32,
     373              :     HEX_GOT_16,
     374              :     HEX_DTPMOD_32,
     375              :     HEX_DTPREL_LO16,
     376              :     HEX_DTPREL_HI16,
     377              :     HEX_DTPREL_32,
     378              :     HEX_DTPREL_16,
     379              :     HEX_GD_PLT_B22_PCREL,
     380              :     HEX_GD_GOT_LO16,
     381              :     HEX_GD_GOT_HI16,
     382              :     HEX_GD_GOT_32,
     383              :     HEX_GD_GOT_16,
     384              :     HEX_IE_LO16,
     385              :     HEX_IE_HI16,
     386              :     HEX_IE_32,
     387              :     HEX_IE_GOT_LO16,
     388              :     HEX_IE_GOT_HI16,
     389              :     HEX_IE_GOT_32,
     390              :     HEX_IE_GOT_16,
     391              :     HEX_TPREL_LO16,
     392              :     HEX_TPREL_HI16,
     393              :     HEX_TPREL_32,
     394              :     HEX_TPREL_16,
     395              :     HEX_6_PCREL_X,
     396              :     HEX_GOTREL_32_6_X,
     397              :     HEX_GOTREL_16_X,
     398              :     HEX_GOTREL_11_X,
     399              :     HEX_GOT_32_6_X,
     400              :     HEX_GOT_16_X,
     401              :     HEX_GOT_11_X,
     402              :     HEX_DTPREL_32_6_X,
     403              :     HEX_DTPREL_16_X,
     404              :     HEX_DTPREL_11_X,
     405              :     HEX_GD_GOT_32_6_X,
     406              :     HEX_GD_GOT_16_X,
     407              :     HEX_GD_GOT_11_X,
     408              :     HEX_IE_32_6_X,
     409              :     HEX_IE_16_X,
     410              :     HEX_IE_GOT_32_6_X,
     411              :     HEX_IE_GOT_16_X,
     412              :     HEX_IE_GOT_11_X,
     413              :     HEX_TPREL_32_6_X,
     414              :     HEX_TPREL_16_X,
     415              :     HEX_TPREL_11_X,
     416              :     HEX_LD_PLT_B22_PCREL,
     417              :     HEX_LD_GOT_LO16,
     418              :     HEX_LD_GOT_HI16,
     419              :     HEX_LD_GOT_32,
     420              :     HEX_LD_GOT_16,
     421              :     HEX_LD_GOT_32_6_X,
     422              :     HEX_LD_GOT_16_X,
     423              :     HEX_LD_GOT_11_X,
     424              :     X86_NONE,
     425              :     X86_32,
     426              :     X86_PC32,
     427              :     X86_GOT32,
     428              :     X86_PLT32,
     429              :     X86_COPY,
     430              :     X86_GLOB_DAT,
     431              :     X86_JUMP_SLOT,
     432              :     X86_RELATIVE,
     433              :     X86_GOTOFF,
     434              :     X86_GOTPC,
     435              :     X86_32PLT,
     436              :     X86_TLS_TPOFF,
     437              :     X86_TLS_IE,
     438              :     X86_TLS_GOTIE,
     439              :     X86_TLS_LE,
     440              :     X86_TLS_GD,
     441              :     X86_TLS_LDM,
     442              :     X86_16,
     443              :     X86_PC16,
     444              :     X86_8,
     445              :     X86_PC8,
     446              :     X86_TLS_GD_32,
     447              :     X86_TLS_GD_PUSH,
     448              :     X86_TLS_GD_CALL,
     449              :     X86_TLS_GD_POP,
     450              :     X86_TLS_LDM_32,
     451              :     X86_TLS_LDM_PUSH,
     452              :     X86_TLS_LDM_CALL,
     453              :     X86_TLS_LDM_POP,
     454              :     X86_TLS_LDO_32,
     455              :     X86_TLS_IE_32,
     456              :     X86_TLS_LE_32,
     457              :     X86_TLS_DTPMOD32,
     458              :     X86_TLS_DTPOFF32,
     459              :     X86_TLS_TPOFF32,
     460              :     X86_TLS_GOTDESC,
     461              :     X86_TLS_DESC_CALL,
     462              :     X86_TLS_DESC,
     463              :     X86_IRELATIVE,
     464              :     LARCH_NONE,
     465              :     LARCH_32,
     466              :     LARCH_64,
     467              :     LARCH_RELATIVE,
     468              :     LARCH_COPY,
     469              :     LARCH_JUMP_SLOT,
     470              :     LARCH_TLS_DTPMOD32,
     471              :     LARCH_TLS_DTPMOD64,
     472              :     LARCH_TLS_DTPREL32,
     473              :     LARCH_TLS_DTPREL64,
     474              :     LARCH_TLS_TPREL32,
     475              :     LARCH_TLS_TPREL64,
     476              :     LARCH_IRELATIVE,
     477              :     LARCH_MARK_LA,
     478              :     LARCH_MARK_PCREL,
     479              :     LARCH_SOP_PUSH_PCREL,
     480              :     LARCH_SOP_PUSH_ABSOLUTE,
     481              :     LARCH_SOP_PUSH_DUP,
     482              :     LARCH_SOP_PUSH_GPREL,
     483              :     LARCH_SOP_PUSH_TLS_TPREL,
     484              :     LARCH_SOP_PUSH_TLS_GOT,
     485              :     LARCH_SOP_PUSH_TLS_GD,
     486              :     LARCH_SOP_PUSH_PLT_PCREL,
     487              :     LARCH_SOP_ASSERT,
     488              :     LARCH_SOP_NOT,
     489              :     LARCH_SOP_SUB,
     490              :     LARCH_SOP_SL,
     491              :     LARCH_SOP_SR,
     492              :     LARCH_SOP_ADD,
     493              :     LARCH_SOP_AND,
     494              :     LARCH_SOP_IF_ELSE,
     495              :     LARCH_SOP_POP_32_S_10_5,
     496              :     LARCH_SOP_POP_32_U_10_12,
     497              :     LARCH_SOP_POP_32_S_10_12,
     498              :     LARCH_SOP_POP_32_S_10_16,
     499              :     LARCH_SOP_POP_32_S_10_16_S2,
     500              :     LARCH_SOP_POP_32_S_5_20,
     501              :     LARCH_SOP_POP_32_S_0_5_10_16_S2,
     502              :     LARCH_SOP_POP_32_S_0_10_10_16_S2,
     503              :     LARCH_SOP_POP_32_U,
     504              :     LARCH_ADD8,
     505              :     LARCH_ADD16,
     506              :     LARCH_ADD24,
     507              :     LARCH_ADD32,
     508              :     LARCH_ADD64,
     509              :     LARCH_SUB8,
     510              :     LARCH_SUB16,
     511              :     LARCH_SUB24,
     512              :     LARCH_SUB32,
     513              :     LARCH_SUB64,
     514              :     LARCH_GNU_VTINHERIT,
     515              :     LARCH_GNU_VTENTRY,
     516              :     LARCH_B16,
     517              :     LARCH_B21,
     518              :     LARCH_B26,
     519              :     LARCH_ABS_HI20,
     520              :     LARCH_ABS_LO12,
     521              :     LARCH_ABS64_LO20,
     522              :     LARCH_ABS64_HI12,
     523              :     LARCH_PCALA_HI20,
     524              :     LARCH_PCALA_LO12,
     525              :     LARCH_PCALA64_LO20,
     526              :     LARCH_PCALA64_HI12,
     527              :     LARCH_GOT_PC_HI20,
     528              :     LARCH_GOT_PC_LO12,
     529              :     LARCH_GOT64_PC_LO20,
     530              :     LARCH_GOT64_PC_HI12,
     531              :     LARCH_GOT_HI20,
     532              :     LARCH_GOT_LO12,
     533              :     LARCH_GOT64_LO20,
     534              :     LARCH_GOT64_HI12,
     535              :     LARCH_TLS_LE_HI20,
     536              :     LARCH_TLS_LE_LO12,
     537              :     LARCH_TLS_LE64_LO20,
     538              :     LARCH_TLS_LE64_HI12,
     539              :     LARCH_TLS_IE_PC_HI20,
     540              :     LARCH_TLS_IE_PC_LO12,
     541              :     LARCH_TLS_IE64_PC_LO20,
     542              :     LARCH_TLS_IE64_PC_HI12,
     543              :     LARCH_TLS_IE_HI20,
     544              :     LARCH_TLS_IE_LO12,
     545              :     LARCH_TLS_IE64_LO20,
     546              :     LARCH_TLS_IE64_HI12,
     547              :     LARCH_TLS_LD_PC_HI20,
     548              :     LARCH_TLS_LD_HI20,
     549              :     LARCH_TLS_GD_PC_HI20,
     550              :     LARCH_TLS_GD_HI20,
     551              :     LARCH_32_PCREL,
     552              :     LARCH_RELAX,
     553              :     LARCH_ALIGN,
     554              :     LARCH_PCREL20_S2,
     555              :     LARCH_ADD6,
     556              :     LARCH_SUB6,
     557              :     LARCH_ADD_ULEB128,
     558              :     LARCH_SUB_ULEB128,
     559              :     LARCH_64_PCREL,
     560              :     LARCH_CALL36,
     561              :     LARCH_TLS_DESC32,
     562              :     LARCH_TLS_DESC64,
     563              :     LARCH_TLS_DESC_PC_HI20,
     564              :     LARCH_TLS_DESC_PC_LO12,
     565              :     LARCH_TLS_DESC64_PC_LO20,
     566              :     LARCH_TLS_DESC64_PC_HI12,
     567              :     LARCH_TLS_DESC_HI20,
     568              :     LARCH_TLS_DESC_LO12,
     569              :     LARCH_TLS_DESC64_LO20,
     570              :     LARCH_TLS_DESC64_HI12,
     571              :     LARCH_TLS_DESC_LD,
     572              :     LARCH_TLS_DESC_CALL,
     573              :     LARCH_TLS_LE_HI20_R,
     574              :     LARCH_TLS_LE_ADD_R,
     575              :     LARCH_TLS_LE_LO12_R,
     576              :     LARCH_TLS_LD_PCREL20_S2,
     577              :     LARCH_TLS_GD_PCREL20_S2,
     578              :     LARCH_TLS_DESC_PCREL20_S2,
     579              :     MIPS_NONE,
     580              :     MIPS_16,
     581              :     MIPS_32,
     582              :     MIPS_REL32,
     583              :     MIPS_26,
     584              :     MIPS_HI16,
     585              :     MIPS_LO16,
     586              :     MIPS_GPREL16,
     587              :     MIPS_LITERAL,
     588              :     MIPS_GOT16,
     589              :     MIPS_PC16,
     590              :     MIPS_CALL16,
     591              :     MIPS_GPREL32,
     592              :     MIPS_UNUSED1,
     593              :     MIPS_UNUSED2,
     594              :     MIPS_UNUSED3,
     595              :     MIPS_SHIFT5,
     596              :     MIPS_SHIFT6,
     597              :     MIPS_64,
     598              :     MIPS_GOT_DISP,
     599              :     MIPS_GOT_PAGE,
     600              :     MIPS_GOT_OFST,
     601              :     MIPS_GOT_HI16,
     602              :     MIPS_GOT_LO16,
     603              :     MIPS_SUB,
     604              :     MIPS_INSERT_A,
     605              :     MIPS_INSERT_B,
     606              :     MIPS_DELETE,
     607              :     MIPS_HIGHER,
     608              :     MIPS_HIGHEST,
     609              :     MIPS_CALL_HI16,
     610              :     MIPS_CALL_LO16,
     611              :     MIPS_SCN_DISP,
     612              :     MIPS_REL16,
     613              :     MIPS_ADD_IMMEDIATE,
     614              :     MIPS_PJUMP,
     615              :     MIPS_RELGOT,
     616              :     MIPS_JALR,
     617              :     MIPS_TLS_DTPMOD32,
     618              :     MIPS_TLS_DTPREL32,
     619              :     MIPS_TLS_DTPMOD64,
     620              :     MIPS_TLS_DTPREL64,
     621              :     MIPS_TLS_GD,
     622              :     MIPS_TLS_LDM,
     623              :     MIPS_TLS_DTPREL_HI16,
     624              :     MIPS_TLS_DTPREL_LO16,
     625              :     MIPS_TLS_GOTTPREL,
     626              :     MIPS_TLS_TPREL32,
     627              :     MIPS_TLS_TPREL64,
     628              :     MIPS_TLS_TPREL_HI16,
     629              :     MIPS_TLS_TPREL_LO16,
     630              :     MIPS_GLOB_DAT,
     631              :     MIPS_PC21_S2,
     632              :     MIPS_PC26_S2,
     633              :     MIPS_PC18_S3,
     634              :     MIPS_PC19_S2,
     635              :     MIPS_PCHI16,
     636              :     MIPS_PCLO16,
     637              :     MIPS16_26,
     638              :     MIPS16_GPREL,
     639              :     MIPS16_GOT16,
     640              :     MIPS16_CALL16,
     641              :     MIPS16_HI16,
     642              :     MIPS16_LO16,
     643              :     MIPS16_TLS_GD,
     644              :     MIPS16_TLS_LDM,
     645              :     MIPS16_TLS_DTPREL_HI16,
     646              :     MIPS16_TLS_DTPREL_LO16,
     647              :     MIPS16_TLS_GOTTPREL,
     648              :     MIPS16_TLS_TPREL_HI16,
     649              :     MIPS16_TLS_TPREL_LO16,
     650              :     MIPS_COPY,
     651              :     MIPS_JUMP_SLOT,
     652              :     MICROMIPS_26_S1,
     653              :     MICROMIPS_HI16,
     654              :     MICROMIPS_LO16,
     655              :     MICROMIPS_GPREL16,
     656              :     MICROMIPS_LITERAL,
     657              :     MICROMIPS_GOT16,
     658              :     MICROMIPS_PC7_S1,
     659              :     MICROMIPS_PC10_S1,
     660              :     MICROMIPS_PC16_S1,
     661              :     MICROMIPS_CALL16,
     662              :     MICROMIPS_GOT_DISP,
     663              :     MICROMIPS_GOT_PAGE,
     664              :     MICROMIPS_GOT_OFST,
     665              :     MICROMIPS_GOT_HI16,
     666              :     MICROMIPS_GOT_LO16,
     667              :     MICROMIPS_SUB,
     668              :     MICROMIPS_HIGHER,
     669              :     MICROMIPS_HIGHEST,
     670              :     MICROMIPS_CALL_HI16,
     671              :     MICROMIPS_CALL_LO16,
     672              :     MICROMIPS_SCN_DISP,
     673              :     MICROMIPS_JALR,
     674              :     MICROMIPS_HI0_LO16,
     675              :     MICROMIPS_TLS_GD,
     676              :     MICROMIPS_TLS_LDM,
     677              :     MICROMIPS_TLS_DTPREL_HI16,
     678              :     MICROMIPS_TLS_DTPREL_LO16,
     679              :     MICROMIPS_TLS_GOTTPREL,
     680              :     MICROMIPS_TLS_TPREL_HI16,
     681              :     MICROMIPS_TLS_TPREL_LO16,
     682              :     MICROMIPS_GPREL7_S2,
     683              :     MICROMIPS_PC23_S2,
     684              :     MICROMIPS_PC21_S2,
     685              :     MICROMIPS_PC26_S2,
     686              :     MICROMIPS_PC18_S3,
     687              :     MICROMIPS_PC19_S2,
     688              :     MIPS_NUM,
     689              :     MIPS_PC32,
     690              :     MIPS_EH,
     691              :     PPC_NONE,
     692              :     PPC_ADDR32,
     693              :     PPC_ADDR24,
     694              :     PPC_ADDR16,
     695              :     PPC_ADDR16_LO,
     696              :     PPC_ADDR16_HI,
     697              :     PPC_ADDR16_HA,
     698              :     PPC_ADDR14,
     699              :     PPC_ADDR14_BRTAKEN,
     700              :     PPC_ADDR14_BRNTAKEN,
     701              :     PPC_REL24,
     702              :     PPC_REL14,
     703              :     PPC_REL14_BRTAKEN,
     704              :     PPC_REL14_BRNTAKEN,
     705              :     PPC_GOT16,
     706              :     PPC_GOT16_LO,
     707              :     PPC_GOT16_HI,
     708              :     PPC_GOT16_HA,
     709              :     PPC_PLTREL24,
     710              :     PPC_JMP_SLOT,
     711              :     PPC_RELATIVE,
     712              :     PPC_LOCAL24PC,
     713              :     PPC_REL32,
     714              :     PPC_TLS,
     715              :     PPC_DTPMOD32,
     716              :     PPC_TPREL16,
     717              :     PPC_TPREL16_LO,
     718              :     PPC_TPREL16_HI,
     719              :     PPC_TPREL16_HA,
     720              :     PPC_TPREL32,
     721              :     PPC_DTPREL16,
     722              :     PPC_DTPREL16_LO,
     723              :     PPC_DTPREL16_HI,
     724              :     PPC_DTPREL16_HA,
     725              :     PPC_DTPREL32,
     726              :     PPC_GOT_TLSGD16,
     727              :     PPC_GOT_TLSGD16_LO,
     728              :     PPC_GOT_TLSGD16_HI,
     729              :     PPC_GOT_TLSGD16_HA,
     730              :     PPC_GOT_TLSLD16,
     731              :     PPC_GOT_TLSLD16_LO,
     732              :     PPC_GOT_TLSLD16_HI,
     733              :     PPC_GOT_TLSLD16_HA,
     734              :     PPC_GOT_TPREL16,
     735              :     PPC_GOT_TPREL16_LO,
     736              :     PPC_GOT_TPREL16_HI,
     737              :     PPC_GOT_TPREL16_HA,
     738              :     PPC_GOT_DTPREL16,
     739              :     PPC_GOT_DTPREL16_LO,
     740              :     PPC_GOT_DTPREL16_HI,
     741              :     PPC_GOT_DTPREL16_HA,
     742              :     PPC_TLSGD,
     743              :     PPC_TLSLD,
     744              :     PPC_REL16,
     745              :     PPC_REL16_LO,
     746              :     PPC_REL16_HI,
     747              :     PPC_REL16_HA,
     748              :     PPC64_NONE,
     749              :     PPC64_ADDR32,
     750              :     PPC64_ADDR24,
     751              :     PPC64_ADDR16,
     752              :     PPC64_ADDR16_LO,
     753              :     PPC64_ADDR16_HI,
     754              :     PPC64_ADDR16_HA,
     755              :     PPC64_ADDR14,
     756              :     PPC64_ADDR14_BRTAKEN,
     757              :     PPC64_ADDR14_BRNTAKEN,
     758              :     PPC64_REL24,
     759              :     PPC64_REL14,
     760              :     PPC64_REL14_BRTAKEN,
     761              :     PPC64_REL14_BRNTAKEN,
     762              :     PPC64_GOT16,
     763              :     PPC64_GOT16_LO,
     764              :     PPC64_GOT16_HI,
     765              :     PPC64_GOT16_HA,
     766              :     PPC64_JMP_SLOT,
     767              :     PPC64_RELATIVE,
     768              :     PPC64_REL32,
     769              :     PPC64_ADDR64,
     770              :     PPC64_ADDR16_HIGHER,
     771              :     PPC64_ADDR16_HIGHERA,
     772              :     PPC64_ADDR16_HIGHEST,
     773              :     PPC64_ADDR16_HIGHESTA,
     774              :     PPC64_REL64,
     775              :     PPC64_TOC16,
     776              :     PPC64_TOC16_LO,
     777              :     PPC64_TOC16_HI,
     778              :     PPC64_TOC16_HA,
     779              :     PPC64_TOC,
     780              :     PPC64_ADDR16_DS,
     781              :     PPC64_ADDR16_LO_DS,
     782              :     PPC64_GOT16_DS,
     783              :     PPC64_GOT16_LO_DS,
     784              :     PPC64_TOC16_DS,
     785              :     PPC64_TOC16_LO_DS,
     786              :     PPC64_TLS,
     787              :     PPC64_DTPMOD64,
     788              :     PPC64_TPREL16,
     789              :     PPC64_TPREL16_LO,
     790              :     PPC64_TPREL16_HI,
     791              :     PPC64_TPREL16_HA,
     792              :     PPC64_TPREL64,
     793              :     PPC64_DTPREL16,
     794              :     PPC64_DTPREL16_LO,
     795              :     PPC64_DTPREL16_HI,
     796              :     PPC64_DTPREL16_HA,
     797              :     PPC64_DTPREL64,
     798              :     PPC64_GOT_TLSGD16,
     799              :     PPC64_GOT_TLSGD16_LO,
     800              :     PPC64_GOT_TLSGD16_HI,
     801              :     PPC64_GOT_TLSGD16_HA,
     802              :     PPC64_GOT_TLSLD16,
     803              :     PPC64_GOT_TLSLD16_LO,
     804              :     PPC64_GOT_TLSLD16_HI,
     805              :     PPC64_GOT_TLSLD16_HA,
     806              :     PPC64_GOT_TPREL16_DS,
     807              :     PPC64_GOT_TPREL16_LO_DS,
     808              :     PPC64_GOT_TPREL16_HI,
     809              :     PPC64_GOT_TPREL16_HA,
     810              :     PPC64_GOT_DTPREL16_DS,
     811              :     PPC64_GOT_DTPREL16_LO_DS,
     812              :     PPC64_GOT_DTPREL16_HI,
     813              :     PPC64_GOT_DTPREL16_HA,
     814              :     PPC64_TPREL16_DS,
     815              :     PPC64_TPREL16_LO_DS,
     816              :     PPC64_TPREL16_HIGHER,
     817              :     PPC64_TPREL16_HIGHERA,
     818              :     PPC64_TPREL16_HIGHEST,
     819              :     PPC64_TPREL16_HIGHESTA,
     820              :     PPC64_DTPREL16_DS,
     821              :     PPC64_DTPREL16_LO_DS,
     822              :     PPC64_DTPREL16_HIGHER,
     823              :     PPC64_DTPREL16_HIGHERA,
     824              :     PPC64_DTPREL16_HIGHEST,
     825              :     PPC64_DTPREL16_HIGHESTA,
     826              :     PPC64_TLSGD,
     827              :     PPC64_TLSLD,
     828              :     PPC64_REL16,
     829              :     PPC64_REL16_LO,
     830              :     PPC64_REL16_HI,
     831              :     PPC64_REL16_HA,
     832              :     SPARC_NONE,
     833              :     SPARC_8,
     834              :     SPARC_16,
     835              :     SPARC_32,
     836              :     SPARC_DISP8,
     837              :     SPARC_DISP16,
     838              :     SPARC_DISP32,
     839              :     SPARC_WDISP30,
     840              :     SPARC_WDISP22,
     841              :     SPARC_HI22,
     842              :     SPARC_22,
     843              :     SPARC_13,
     844              :     SPARC_LO10,
     845              :     SPARC_GOT10,
     846              :     SPARC_GOT13,
     847              :     SPARC_GOT22,
     848              :     SPARC_PC10,
     849              :     SPARC_PC22,
     850              :     SPARC_WPLT30,
     851              :     SPARC_COPY,
     852              :     SPARC_GLOB_DAT,
     853              :     SPARC_JMP_SLOT,
     854              :     SPARC_RELATIVE,
     855              :     SPARC_UA32,
     856              :     SPARC_PLT32,
     857              :     SPARC_HIPLT22,
     858              :     SPARC_LOPLT10,
     859              :     SPARC_PCPLT32,
     860              :     SPARC_PCPLT22,
     861              :     SPARC_PCPLT10,
     862              :     SPARC_10,
     863              :     SPARC_11,
     864              :     SPARC_64,
     865              :     SPARC_OLO10,
     866              :     SPARC_HH22,
     867              :     SPARC_HM10,
     868              :     SPARC_LM22,
     869              :     SPARC_PC_HH22,
     870              :     SPARC_PC_HM10,
     871              :     SPARC_PC_LM22,
     872              :     SPARC_WDISP16,
     873              :     SPARC_WDISP19,
     874              :     SPARC_7,
     875              :     SPARC_5,
     876              :     SPARC_6,
     877              :     SPARC_DISP64,
     878              :     SPARC_PLT64,
     879              :     SPARC_HIX22,
     880              :     SPARC_LOX10,
     881              :     SPARC_H44,
     882              :     SPARC_M44,
     883              :     SPARC_L44,
     884              :     SPARC_REGISTER,
     885              :     SPARC_UA64,
     886              :     SPARC_UA16,
     887              :     SPARC_TLS_GD_HI22,
     888              :     SPARC_TLS_GD_LO10,
     889              :     SPARC_TLS_GD_ADD,
     890              :     SPARC_TLS_GD_CALL,
     891              :     SPARC_TLS_LDM_HI22,
     892              :     SPARC_TLS_LDM_LO10,
     893              :     SPARC_TLS_LDM_ADD,
     894              :     SPARC_TLS_LDM_CALL,
     895              :     SPARC_TLS_LDO_HIX22,
     896              :     SPARC_TLS_LDO_LOX10,
     897              :     SPARC_TLS_LDO_ADD,
     898              :     SPARC_TLS_IE_HI22,
     899              :     SPARC_TLS_IE_LO10,
     900              :     SPARC_TLS_IE_LD,
     901              :     SPARC_TLS_IE_LDX,
     902              :     SPARC_TLS_IE_ADD,
     903              :     SPARC_TLS_LE_HIX22,
     904              :     SPARC_TLS_LE_LOX10,
     905              :     SPARC_TLS_DTPMOD32,
     906              :     SPARC_TLS_DTPMOD64,
     907              :     SPARC_TLS_DTPOFF32,
     908              :     SPARC_TLS_DTPOFF64,
     909              :     SPARC_TLS_TPOFF32,
     910              :     SPARC_TLS_TPOFF64,
     911              :     SPARC_GOTDATA_HIX22,
     912              :     SPARC_GOTDATA_LOX10,
     913              :     SPARC_GOTDATA_OP_HIX22,
     914              :     SPARC_GOTDATA_OP_LOX10,
     915              :     SPARC_GOTDATA_OP,
     916              :     SYSZ_NONE,
     917              :     SYSZ_8,
     918              :     SYSZ_12,
     919              :     SYSZ_16,
     920              :     SYSZ_32,
     921              :     SYSZ_PC32,
     922              :     SYSZ_GOT12,
     923              :     SYSZ_GOT32,
     924              :     SYSZ_PLT32,
     925              :     SYSZ_COPY,
     926              :     SYSZ_GLOB_DAT,
     927              :     SYSZ_JMP_SLOT,
     928              :     SYSZ_RELATIVE,
     929              :     SYSZ_GOTOFF,
     930              :     SYSZ_GOTPC,
     931              :     SYSZ_GOT16,
     932              :     SYSZ_PC16,
     933              :     SYSZ_PC16DBL,
     934              :     SYSZ_PLT16DBL,
     935              :     SYSZ_PC32DBL,
     936              :     SYSZ_PLT32DBL,
     937              :     SYSZ_GOTPCDBL,
     938              :     SYSZ_64,
     939              :     SYSZ_PC64,
     940              :     SYSZ_GOT64,
     941              :     SYSZ_PLT64,
     942              :     SYSZ_GOTENT,
     943              :     SYSZ_GOTOFF16,
     944              :     SYSZ_GOTOFF64,
     945              :     SYSZ_GOTPLT12,
     946              :     SYSZ_GOTPLT16,
     947              :     SYSZ_GOTPLT32,
     948              :     SYSZ_GOTPLT64,
     949              :     SYSZ_GOTPLTENT,
     950              :     SYSZ_PLTOFF16,
     951              :     SYSZ_PLTOFF32,
     952              :     SYSZ_PLTOFF64,
     953              :     SYSZ_TLS_LOAD,
     954              :     SYSZ_TLS_GDCALL,
     955              :     SYSZ_TLS_LDCALL,
     956              :     SYSZ_TLS_GD32,
     957              :     SYSZ_TLS_GD64,
     958              :     SYSZ_TLS_GOTIE12,
     959              :     SYSZ_TLS_GOTIE32,
     960              :     SYSZ_TLS_GOTIE64,
     961              :     SYSZ_TLS_LDM32,
     962              :     SYSZ_TLS_LDM64,
     963              :     SYSZ_TLS_IE32,
     964              :     SYSZ_TLS_IE64,
     965              :     SYSZ_TLS_IEENT,
     966              :     SYSZ_TLS_LE32,
     967              :     SYSZ_TLS_LE64,
     968              :     SYSZ_TLS_LDO32,
     969              :     SYSZ_TLS_LDO64,
     970              :     SYSZ_TLS_DTPMOD,
     971              :     SYSZ_TLS_DTPOFF,
     972              :     SYSZ_TLS_TPOFF,
     973              :     SYSZ_20,
     974              :     SYSZ_GOT20,
     975              :     SYSZ_GOTPLT20,
     976              :     SYSZ_TLS_GOTIE20,
     977              :     SYSZ_IRELATIVE,
     978              :     RISCV_NONE,
     979              :     RISCV_32,
     980              :     RISCV_64,
     981              :     RISCV_RELATIVE,
     982              :     RISCV_COPY,
     983              :     RISCV_JUMP_SLOT,
     984              :     RISCV_TLS_DTPMOD32,
     985              :     RISCV_TLS_DTPMOD64,
     986              :     RISCV_TLS_DTPREL32,
     987              :     RISCV_TLS_DTPREL64,
     988              :     RISCV_TLS_TPREL32,
     989              :     RISCV_TLS_TPREL64,
     990              :     RISCV_TLSDESC,
     991              :     RISCV_BRANCH,
     992              :     RISCV_JAL,
     993              :     RISCV_CALL,
     994              :     RISCV_CALL_PLT,
     995              :     RISCV_GOT_HI20,
     996              :     RISCV_TLS_GOT_HI20,
     997              :     RISCV_TLS_GD_HI20,
     998              :     RISCV_PCREL_HI20,
     999              :     RISCV_PCREL_LO12_I,
    1000              :     RISCV_PCREL_LO12_S,
    1001              :     RISCV_HI20,
    1002              :     RISCV_LO12_I,
    1003              :     RISCV_LO12_S,
    1004              :     RISCV_TPREL_HI20,
    1005              :     RISCV_TPREL_LO12_I,
    1006              :     RISCV_TPREL_LO12_S,
    1007              :     RISCV_TPREL_ADD,
    1008              :     RISCV_ADD8,
    1009              :     RISCV_ADD16,
    1010              :     RISCV_ADD32,
    1011              :     RISCV_ADD64,
    1012              :     RISCV_SUB8,
    1013              :     RISCV_SUB16,
    1014              :     RISCV_SUB32,
    1015              :     RISCV_SUB64,
    1016              :     RISCV_GOT32_PCREL,
    1017              :     RISCV_ALIGN,
    1018              :     RISCV_RVC_BRANCH,
    1019              :     RISCV_RVC_JUMP,
    1020              :     RISCV_RVC_LUI,
    1021              :     RISCV_RELAX,
    1022              :     RISCV_SUB6,
    1023              :     RISCV_SET6,
    1024              :     RISCV_SET8,
    1025              :     RISCV_SET16,
    1026              :     RISCV_SET32,
    1027              :     RISCV_32_PCREL,
    1028              :     RISCV_IRELATIVE,
    1029              :     RISCV_PLT32,
    1030              :     RISCV_SET_ULEB128,
    1031              :     RISCV_SUB_ULEB128,
    1032              :     RISCV_TLSDESC_HI20,
    1033              :     RISCV_TLSDESC_LOAD_LO12,
    1034              :     RISCV_TLSDESC_ADD_LO12,
    1035              :     RISCV_TLSDESC_CALL,
    1036              :     BPF_NONE,
    1037              :     BPF_64_64,
    1038              :     BPF_64_ABS64,
    1039              :     BPF_64_ABS32,
    1040              :     BPF_64_NODYLD32,
    1041              :     BPF_64_32,
    1042              :     UNKNOWN(u32),
    1043              : }
    1044              : 
    1045              : impl From<u32> for Type {
    1046        16200 :     fn from(value: u32) -> Self {
    1047        16200 :         match value {
    1048            0 :             0x08000000 => Type::X86_64_NONE,
    1049            0 :             0x08000001 => Type::X86_64_64,
    1050            0 :             0x08000002 => Type::X86_64_PC32,
    1051            0 :             0x08000003 => Type::X86_64_GOT32,
    1052            0 :             0x08000004 => Type::X86_64_PLT32,
    1053          180 :             0x08000005 => Type::X86_64_COPY,
    1054          240 :             0x08000006 => Type::X86_64_GLOB_DAT,
    1055         4360 :             0x08000007 => Type::X86_64_JUMP_SLOT,
    1056         2880 :             0x08000008 => Type::X86_64_RELATIVE,
    1057            0 :             0x08000009 => Type::X86_64_GOTPCREL,
    1058            0 :             0x0800000a => Type::X86_64_32,
    1059            0 :             0x0800000b => Type::X86_64_32S,
    1060            0 :             0x0800000c => Type::X86_64_16,
    1061            0 :             0x0800000d => Type::X86_64_PC16,
    1062            0 :             0x0800000e => Type::X86_64_8,
    1063            0 :             0x0800000f => Type::X86_64_PC8,
    1064            0 :             0x08000010 => Type::X86_64_DTPMOD64,
    1065            0 :             0x08000011 => Type::X86_64_DTPOFF64,
    1066            0 :             0x08000012 => Type::X86_64_TPOFF64,
    1067            0 :             0x08000013 => Type::X86_64_TLSGD,
    1068            0 :             0x08000014 => Type::X86_64_TLSLD,
    1069            0 :             0x08000015 => Type::X86_64_DTPOFF32,
    1070            0 :             0x08000016 => Type::X86_64_GOTTPOFF,
    1071            0 :             0x08000017 => Type::X86_64_TPOFF32,
    1072            0 :             0x08000018 => Type::X86_64_PC64,
    1073            0 :             0x08000019 => Type::X86_64_GOTOFF64,
    1074            0 :             0x0800001a => Type::X86_64_GOTPC32,
    1075            0 :             0x0800001b => Type::X86_64_GOT64,
    1076            0 :             0x0800001c => Type::X86_64_GOTPCREL64,
    1077            0 :             0x0800001d => Type::X86_64_GOTPC64,
    1078            0 :             0x0800001e => Type::X86_64_GOTPLT64,
    1079            0 :             0x0800001f => Type::X86_64_PLTOFF64,
    1080            0 :             0x08000020 => Type::X86_64_SIZE32,
    1081            0 :             0x08000021 => Type::X86_64_SIZE64,
    1082            0 :             0x08000022 => Type::X86_64_GOTPC32_TLSDESC,
    1083            0 :             0x08000023 => Type::X86_64_TLSDESC_CALL,
    1084            0 :             0x08000024 => Type::X86_64_TLSDESC,
    1085            0 :             0x08000025 => Type::X86_64_IRELATIVE,
    1086            0 :             0x08000026 => Type::X86_64_RELATIVE64,
    1087            0 :             0x08000027 => Type::X86_64_PC32_BND,
    1088            0 :             0x08000028 => Type::X86_64_PLT32_BND,
    1089            0 :             0x08000029 => Type::X86_64_GOTPCRELX,
    1090            0 :             0x0800002a => Type::X86_64_REX_GOTPCRELX,
    1091            0 :             0x10000000 => Type::AARCH64_NONE,
    1092            0 :             0x10000101 => Type::AARCH64_ABS64,
    1093            0 :             0x10000102 => Type::AARCH64_ABS32,
    1094            0 :             0x10000103 => Type::AARCH64_ABS16,
    1095            0 :             0x10000104 => Type::AARCH64_PREL64,
    1096           20 :             0x10000105 => Type::AARCH64_PREL32,
    1097            0 :             0x10000106 => Type::AARCH64_PREL16,
    1098            0 :             0x10000107 => Type::AARCH64_MOVW_UABS_G0,
    1099            0 :             0x10000108 => Type::AARCH64_MOVW_UABS_G0_NC,
    1100            0 :             0x10000109 => Type::AARCH64_MOVW_UABS_G1,
    1101            0 :             0x1000010a => Type::AARCH64_MOVW_UABS_G1_NC,
    1102            0 :             0x1000010b => Type::AARCH64_MOVW_UABS_G2,
    1103            0 :             0x1000010c => Type::AARCH64_MOVW_UABS_G2_NC,
    1104            0 :             0x1000010d => Type::AARCH64_MOVW_UABS_G3,
    1105            0 :             0x1000010e => Type::AARCH64_MOVW_SABS_G0,
    1106            0 :             0x1000010f => Type::AARCH64_MOVW_SABS_G1,
    1107            0 :             0x10000110 => Type::AARCH64_MOVW_SABS_G2,
    1108            0 :             0x10000111 => Type::AARCH64_LD_PREL_LO19,
    1109            0 :             0x10000112 => Type::AARCH64_ADR_PREL_LO21,
    1110            0 :             0x10000113 => Type::AARCH64_ADR_PREL_PG_HI21,
    1111            0 :             0x10000114 => Type::AARCH64_ADR_PREL_PG_HI21_NC,
    1112            0 :             0x10000115 => Type::AARCH64_ADD_ABS_LO12_NC,
    1113            0 :             0x10000116 => Type::AARCH64_LDST8_ABS_LO12_NC,
    1114            0 :             0x10000117 => Type::AARCH64_TSTBR14,
    1115            0 :             0x10000118 => Type::AARCH64_CONDBR19,
    1116            0 :             0x1000011a => Type::AARCH64_JUMP26,
    1117            0 :             0x1000011b => Type::AARCH64_CALL26,
    1118            0 :             0x1000011c => Type::AARCH64_LDST16_ABS_LO12_NC,
    1119            0 :             0x1000011d => Type::AARCH64_LDST32_ABS_LO12_NC,
    1120            0 :             0x1000011e => Type::AARCH64_LDST64_ABS_LO12_NC,
    1121            0 :             0x1000011f => Type::AARCH64_MOVW_PREL_G0,
    1122            0 :             0x10000120 => Type::AARCH64_MOVW_PREL_G0_NC,
    1123            0 :             0x10000121 => Type::AARCH64_MOVW_PREL_G1,
    1124            0 :             0x10000122 => Type::AARCH64_MOVW_PREL_G1_NC,
    1125            0 :             0x10000123 => Type::AARCH64_MOVW_PREL_G2,
    1126            0 :             0x10000124 => Type::AARCH64_MOVW_PREL_G2_NC,
    1127            0 :             0x10000125 => Type::AARCH64_MOVW_PREL_G3,
    1128            0 :             0x1000012b => Type::AARCH64_LDST128_ABS_LO12_NC,
    1129            0 :             0x1000012c => Type::AARCH64_MOVW_GOTOFF_G0,
    1130            0 :             0x1000012d => Type::AARCH64_MOVW_GOTOFF_G0_NC,
    1131            0 :             0x1000012e => Type::AARCH64_MOVW_GOTOFF_G1,
    1132            0 :             0x1000012f => Type::AARCH64_MOVW_GOTOFF_G1_NC,
    1133            0 :             0x10000130 => Type::AARCH64_MOVW_GOTOFF_G2,
    1134            0 :             0x10000131 => Type::AARCH64_MOVW_GOTOFF_G2_NC,
    1135            0 :             0x10000132 => Type::AARCH64_MOVW_GOTOFF_G3,
    1136            0 :             0x10000133 => Type::AARCH64_GOTREL64,
    1137            0 :             0x10000134 => Type::AARCH64_GOTREL32,
    1138            0 :             0x10000135 => Type::AARCH64_GOT_LD_PREL19,
    1139            0 :             0x10000136 => Type::AARCH64_LD64_GOTOFF_LO15,
    1140            0 :             0x10000137 => Type::AARCH64_ADR_GOT_PAGE,
    1141            0 :             0x10000138 => Type::AARCH64_LD64_GOT_LO12_NC,
    1142            0 :             0x10000139 => Type::AARCH64_LD64_GOTPAGE_LO15,
    1143            0 :             0x10000200 => Type::AARCH64_TLSGD_ADR_PREL21,
    1144            0 :             0x10000201 => Type::AARCH64_TLSGD_ADR_PAGE21,
    1145            0 :             0x10000202 => Type::AARCH64_TLSGD_ADD_LO12_NC,
    1146            0 :             0x10000203 => Type::AARCH64_TLSGD_MOVW_G1,
    1147            0 :             0x10000204 => Type::AARCH64_TLSGD_MOVW_G0_NC,
    1148            0 :             0x10000205 => Type::AARCH64_TLSLD_ADR_PREL21,
    1149            0 :             0x10000206 => Type::AARCH64_TLSLD_ADR_PAGE21,
    1150            0 :             0x10000207 => Type::AARCH64_TLSLD_ADD_LO12_NC,
    1151            0 :             0x10000208 => Type::AARCH64_TLSLD_MOVW_G1,
    1152            0 :             0x10000209 => Type::AARCH64_TLSLD_MOVW_G0_NC,
    1153            0 :             0x1000020a => Type::AARCH64_TLSLD_LD_PREL19,
    1154            0 :             0x1000020b => Type::AARCH64_TLSLD_MOVW_DTPREL_G2,
    1155            0 :             0x1000020c => Type::AARCH64_TLSLD_MOVW_DTPREL_G1,
    1156            0 :             0x1000020d => Type::AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
    1157            0 :             0x1000020e => Type::AARCH64_TLSLD_MOVW_DTPREL_G0,
    1158            0 :             0x1000020f => Type::AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
    1159            0 :             0x10000210 => Type::AARCH64_TLSLD_ADD_DTPREL_HI12,
    1160            0 :             0x10000211 => Type::AARCH64_TLSLD_ADD_DTPREL_LO12,
    1161            0 :             0x10000212 => Type::AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
    1162            0 :             0x10000213 => Type::AARCH64_TLSLD_LDST8_DTPREL_LO12,
    1163            0 :             0x10000214 => Type::AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
    1164            0 :             0x10000215 => Type::AARCH64_TLSLD_LDST16_DTPREL_LO12,
    1165            0 :             0x10000216 => Type::AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
    1166            0 :             0x10000217 => Type::AARCH64_TLSLD_LDST32_DTPREL_LO12,
    1167            0 :             0x10000218 => Type::AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
    1168            0 :             0x10000219 => Type::AARCH64_TLSLD_LDST64_DTPREL_LO12,
    1169            0 :             0x1000021a => Type::AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
    1170            0 :             0x1000021b => Type::AARCH64_TLSIE_MOVW_GOTTPREL_G1,
    1171            0 :             0x1000021c => Type::AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
    1172            0 :             0x1000021d => Type::AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
    1173            0 :             0x1000021e => Type::AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC,
    1174            0 :             0x1000021f => Type::AARCH64_TLSIE_LD_GOTTPREL_PREL19,
    1175            0 :             0x10000220 => Type::AARCH64_TLSLE_MOVW_TPREL_G2,
    1176            0 :             0x10000221 => Type::AARCH64_TLSLE_MOVW_TPREL_G1,
    1177            0 :             0x10000222 => Type::AARCH64_TLSLE_MOVW_TPREL_G1_NC,
    1178            0 :             0x10000223 => Type::AARCH64_TLSLE_MOVW_TPREL_G0,
    1179            0 :             0x10000224 => Type::AARCH64_TLSLE_MOVW_TPREL_G0_NC,
    1180            0 :             0x10000225 => Type::AARCH64_TLSLE_ADD_TPREL_HI12,
    1181            0 :             0x10000226 => Type::AARCH64_TLSLE_ADD_TPREL_LO12,
    1182            0 :             0x10000227 => Type::AARCH64_TLSLE_ADD_TPREL_LO12_NC,
    1183            0 :             0x10000228 => Type::AARCH64_TLSLE_LDST8_TPREL_LO12,
    1184            0 :             0x10000229 => Type::AARCH64_TLSLE_LDST8_TPREL_LO12_NC,
    1185            0 :             0x1000022a => Type::AARCH64_TLSLE_LDST16_TPREL_LO12,
    1186            0 :             0x1000022b => Type::AARCH64_TLSLE_LDST16_TPREL_LO12_NC,
    1187            0 :             0x1000022c => Type::AARCH64_TLSLE_LDST32_TPREL_LO12,
    1188            0 :             0x1000022d => Type::AARCH64_TLSLE_LDST32_TPREL_LO12_NC,
    1189            0 :             0x1000022e => Type::AARCH64_TLSLE_LDST64_TPREL_LO12,
    1190            0 :             0x1000022f => Type::AARCH64_TLSLE_LDST64_TPREL_LO12_NC,
    1191            0 :             0x10000230 => Type::AARCH64_TLSDESC_LD_PREL19,
    1192            0 :             0x10000231 => Type::AARCH64_TLSDESC_ADR_PREL21,
    1193            0 :             0x10000232 => Type::AARCH64_TLSDESC_ADR_PAGE21,
    1194            0 :             0x10000233 => Type::AARCH64_TLSDESC_LD64_LO12_NC,
    1195            0 :             0x10000234 => Type::AARCH64_TLSDESC_ADD_LO12_NC,
    1196            0 :             0x10000235 => Type::AARCH64_TLSDESC_OFF_G1,
    1197            0 :             0x10000236 => Type::AARCH64_TLSDESC_OFF_G0_NC,
    1198            0 :             0x10000237 => Type::AARCH64_TLSDESC_LDR,
    1199            0 :             0x10000238 => Type::AARCH64_TLSDESC_ADD,
    1200            0 :             0x10000239 => Type::AARCH64_TLSDESC_CALL,
    1201            0 :             0x1000023a => Type::AARCH64_TLSLE_LDST128_TPREL_LO12,
    1202            0 :             0x1000023b => Type::AARCH64_TLSLE_LDST128_TPREL_LO12_NC,
    1203            0 :             0x1000023c => Type::AARCH64_TLSLD_LDST128_DTPREL_LO12,
    1204            0 :             0x1000023d => Type::AARCH64_TLSLD_LDST128_DTPREL_LO12_NC,
    1205            0 :             0x10000400 => Type::AARCH64_COPY,
    1206            0 :             0x10000401 => Type::AARCH64_GLOB_DAT,
    1207            0 :             0x10000402 => Type::AARCH64_JUMP_SLOT,
    1208            0 :             0x10000403 => Type::AARCH64_RELATIVE,
    1209            0 :             0x10000404 => Type::AARCH64_TLS_DTPREL64,
    1210            0 :             0x10000405 => Type::AARCH64_TLS_DTPMOD64,
    1211            0 :             0x10000406 => Type::AARCH64_TLS_TPREL64,
    1212            0 :             0x10000407 => Type::AARCH64_TLSDESC,
    1213            0 :             0x10000408 => Type::AARCH64_IRELATIVE,
    1214            0 :             0x18000000 => Type::ARM_NONE,
    1215            0 :             0x18000001 => Type::ARM_PC24,
    1216            0 :             0x18000002 => Type::ARM_ABS32,
    1217            0 :             0x18000003 => Type::ARM_REL32,
    1218            0 :             0x18000004 => Type::ARM_LDR_PC_G0,
    1219            0 :             0x18000005 => Type::ARM_ABS16,
    1220            0 :             0x18000006 => Type::ARM_ABS12,
    1221            0 :             0x18000007 => Type::ARM_THM_ABS5,
    1222            0 :             0x18000008 => Type::ARM_ABS8,
    1223            0 :             0x18000009 => Type::ARM_SBREL32,
    1224            0 :             0x1800000a => Type::ARM_THM_CALL,
    1225            0 :             0x1800000b => Type::ARM_THM_PC8,
    1226            0 :             0x1800000c => Type::ARM_BREL_ADJ,
    1227            0 :             0x1800000d => Type::ARM_TLS_DESC,
    1228            0 :             0x1800000e => Type::ARM_THM_SWI8,
    1229            0 :             0x1800000f => Type::ARM_XPC25,
    1230            0 :             0x18000010 => Type::ARM_THM_XPC22,
    1231            0 :             0x18000011 => Type::ARM_TLS_DTPMOD32,
    1232            0 :             0x18000012 => Type::ARM_TLS_DTPOFF32,
    1233            0 :             0x18000013 => Type::ARM_TLS_TPOFF32,
    1234            0 :             0x18000014 => Type::ARM_COPY,
    1235            0 :             0x18000015 => Type::ARM_GLOB_DAT,
    1236            0 :             0x18000016 => Type::ARM_JUMP_SLOT,
    1237            0 :             0x18000017 => Type::ARM_RELATIVE,
    1238            0 :             0x18000018 => Type::ARM_GOTOFF32,
    1239            0 :             0x18000019 => Type::ARM_BASE_PREL,
    1240            0 :             0x1800001a => Type::ARM_GOT_BREL,
    1241            0 :             0x1800001b => Type::ARM_PLT32,
    1242            0 :             0x1800001c => Type::ARM_CALL,
    1243            0 :             0x1800001d => Type::ARM_JUMP24,
    1244            0 :             0x1800001e => Type::ARM_THM_JUMP24,
    1245            0 :             0x1800001f => Type::ARM_BASE_ABS,
    1246            0 :             0x18000020 => Type::ARM_ALU_PCREL_7_0,
    1247            0 :             0x18000021 => Type::ARM_ALU_PCREL_15_8,
    1248            0 :             0x18000022 => Type::ARM_ALU_PCREL_23_15,
    1249            0 :             0x18000023 => Type::ARM_LDR_SBREL_11_0_NC,
    1250            0 :             0x18000024 => Type::ARM_ALU_SBREL_19_12_NC,
    1251            0 :             0x18000025 => Type::ARM_ALU_SBREL_27_20_CK,
    1252            0 :             0x18000026 => Type::ARM_TARGET1,
    1253            0 :             0x18000027 => Type::ARM_SBREL31,
    1254            0 :             0x18000028 => Type::ARM_V4BX,
    1255            0 :             0x18000029 => Type::ARM_TARGET2,
    1256            0 :             0x1800002a => Type::ARM_PREL31,
    1257            0 :             0x1800002b => Type::ARM_MOVW_ABS_NC,
    1258            0 :             0x1800002c => Type::ARM_MOVT_ABS,
    1259            0 :             0x1800002d => Type::ARM_MOVW_PREL_NC,
    1260            0 :             0x1800002e => Type::ARM_MOVT_PREL,
    1261            0 :             0x1800002f => Type::ARM_THM_MOVW_ABS_NC,
    1262            0 :             0x18000030 => Type::ARM_THM_MOVT_ABS,
    1263            0 :             0x18000031 => Type::ARM_THM_MOVW_PREL_NC,
    1264            0 :             0x18000032 => Type::ARM_THM_MOVT_PREL,
    1265            0 :             0x18000033 => Type::ARM_THM_JUMP19,
    1266            0 :             0x18000034 => Type::ARM_THM_JUMP6,
    1267            0 :             0x18000035 => Type::ARM_THM_ALU_PREL_11_0,
    1268            0 :             0x18000036 => Type::ARM_THM_PC12,
    1269            0 :             0x18000037 => Type::ARM_ABS32_NOI,
    1270            0 :             0x18000038 => Type::ARM_REL32_NOI,
    1271            0 :             0x18000039 => Type::ARM_ALU_PC_G0_NC,
    1272            0 :             0x1800003a => Type::ARM_ALU_PC_G0,
    1273            0 :             0x1800003b => Type::ARM_ALU_PC_G1_NC,
    1274            0 :             0x1800003c => Type::ARM_ALU_PC_G1,
    1275            0 :             0x1800003d => Type::ARM_ALU_PC_G2,
    1276            0 :             0x1800003e => Type::ARM_LDR_PC_G1,
    1277            0 :             0x1800003f => Type::ARM_LDR_PC_G2,
    1278            0 :             0x18000040 => Type::ARM_LDRS_PC_G0,
    1279            0 :             0x18000041 => Type::ARM_LDRS_PC_G1,
    1280            0 :             0x18000042 => Type::ARM_LDRS_PC_G2,
    1281            0 :             0x18000043 => Type::ARM_LDC_PC_G0,
    1282            0 :             0x18000044 => Type::ARM_LDC_PC_G1,
    1283            0 :             0x18000045 => Type::ARM_LDC_PC_G2,
    1284            0 :             0x18000046 => Type::ARM_ALU_SB_G0_NC,
    1285            0 :             0x18000047 => Type::ARM_ALU_SB_G0,
    1286            0 :             0x18000048 => Type::ARM_ALU_SB_G1_NC,
    1287            0 :             0x18000049 => Type::ARM_ALU_SB_G1,
    1288            0 :             0x1800004a => Type::ARM_ALU_SB_G2,
    1289            0 :             0x1800004b => Type::ARM_LDR_SB_G0,
    1290            0 :             0x1800004c => Type::ARM_LDR_SB_G1,
    1291            0 :             0x1800004d => Type::ARM_LDR_SB_G2,
    1292            0 :             0x1800004e => Type::ARM_LDRS_SB_G0,
    1293            0 :             0x1800004f => Type::ARM_LDRS_SB_G1,
    1294            0 :             0x18000050 => Type::ARM_LDRS_SB_G2,
    1295            0 :             0x18000051 => Type::ARM_LDC_SB_G0,
    1296            0 :             0x18000052 => Type::ARM_LDC_SB_G1,
    1297            0 :             0x18000053 => Type::ARM_LDC_SB_G2,
    1298            0 :             0x18000054 => Type::ARM_MOVW_BREL_NC,
    1299            0 :             0x18000055 => Type::ARM_MOVT_BREL,
    1300            0 :             0x18000056 => Type::ARM_MOVW_BREL,
    1301            0 :             0x18000057 => Type::ARM_THM_MOVW_BREL_NC,
    1302            0 :             0x18000058 => Type::ARM_THM_MOVT_BREL,
    1303            0 :             0x18000059 => Type::ARM_THM_MOVW_BREL,
    1304            0 :             0x1800005a => Type::ARM_TLS_GOTDESC,
    1305            0 :             0x1800005b => Type::ARM_TLS_CALL,
    1306            0 :             0x1800005c => Type::ARM_TLS_DESCSEQ,
    1307            0 :             0x1800005d => Type::ARM_THM_TLS_CALL,
    1308            0 :             0x1800005e => Type::ARM_PLT32_ABS,
    1309            0 :             0x1800005f => Type::ARM_GOT_ABS,
    1310            0 :             0x18000060 => Type::ARM_GOT_PREL,
    1311            0 :             0x18000061 => Type::ARM_GOT_BREL12,
    1312            0 :             0x18000062 => Type::ARM_GOTOFF12,
    1313            0 :             0x18000063 => Type::ARM_GOTRELAX,
    1314            0 :             0x18000064 => Type::ARM_GNU_VTENTRY,
    1315            0 :             0x18000065 => Type::ARM_GNU_VTINHERIT,
    1316            0 :             0x18000066 => Type::ARM_THM_JUMP11,
    1317            0 :             0x18000067 => Type::ARM_THM_JUMP8,
    1318            0 :             0x18000068 => Type::ARM_TLS_GD32,
    1319            0 :             0x18000069 => Type::ARM_TLS_LDM32,
    1320            0 :             0x1800006a => Type::ARM_TLS_LDO32,
    1321            0 :             0x1800006b => Type::ARM_TLS_IE32,
    1322            0 :             0x1800006c => Type::ARM_TLS_LE32,
    1323            0 :             0x1800006d => Type::ARM_TLS_LDO12,
    1324            0 :             0x1800006e => Type::ARM_TLS_LE12,
    1325            0 :             0x1800006f => Type::ARM_TLS_IE12GP,
    1326            0 :             0x18000070 => Type::ARM_PRIVATE_0,
    1327            0 :             0x18000071 => Type::ARM_PRIVATE_1,
    1328            0 :             0x18000072 => Type::ARM_PRIVATE_2,
    1329            0 :             0x18000073 => Type::ARM_PRIVATE_3,
    1330            0 :             0x18000074 => Type::ARM_PRIVATE_4,
    1331            0 :             0x18000075 => Type::ARM_PRIVATE_5,
    1332            0 :             0x18000076 => Type::ARM_PRIVATE_6,
    1333            0 :             0x18000077 => Type::ARM_PRIVATE_7,
    1334            0 :             0x18000078 => Type::ARM_PRIVATE_8,
    1335            0 :             0x18000079 => Type::ARM_PRIVATE_9,
    1336            0 :             0x1800007a => Type::ARM_PRIVATE_10,
    1337            0 :             0x1800007b => Type::ARM_PRIVATE_11,
    1338            0 :             0x1800007c => Type::ARM_PRIVATE_12,
    1339            0 :             0x1800007d => Type::ARM_PRIVATE_13,
    1340            0 :             0x1800007e => Type::ARM_PRIVATE_14,
    1341            0 :             0x1800007f => Type::ARM_PRIVATE_15,
    1342            0 :             0x18000080 => Type::ARM_ME_TOO,
    1343            0 :             0x18000081 => Type::ARM_THM_TLS_DESCSEQ16,
    1344            0 :             0x18000082 => Type::ARM_THM_TLS_DESCSEQ32,
    1345            0 :             0x180000a0 => Type::ARM_IRELATIVE,
    1346            0 :             0x180000f9 => Type::ARM_RXPC25,
    1347            0 :             0x180000fa => Type::ARM_RSBREL32,
    1348            0 :             0x180000fb => Type::ARM_THM_RPC22,
    1349            0 :             0x180000fc => Type::ARM_RREL32,
    1350            0 :             0x180000fd => Type::ARM_RPC24,
    1351            0 :             0x180000fe => Type::ARM_RBASE,
    1352            0 :             0x20000000 => Type::HEX_NONE,
    1353            0 :             0x20000001 => Type::HEX_B22_PCREL,
    1354            0 :             0x20000002 => Type::HEX_B15_PCREL,
    1355            0 :             0x20000003 => Type::HEX_B7_PCREL,
    1356            0 :             0x20000004 => Type::HEX_LO16,
    1357            0 :             0x20000005 => Type::HEX_HI16,
    1358            0 :             0x20000006 => Type::HEX_32,
    1359            0 :             0x20000007 => Type::HEX_16,
    1360            0 :             0x20000008 => Type::HEX_8,
    1361            0 :             0x20000009 => Type::HEX_GPREL16_0,
    1362            0 :             0x2000000a => Type::HEX_GPREL16_1,
    1363            0 :             0x2000000b => Type::HEX_GPREL16_2,
    1364            0 :             0x2000000c => Type::HEX_GPREL16_3,
    1365            0 :             0x2000000d => Type::HEX_HL16,
    1366            0 :             0x2000000e => Type::HEX_B13_PCREL,
    1367            0 :             0x2000000f => Type::HEX_B9_PCREL,
    1368            0 :             0x20000010 => Type::HEX_B32_PCREL_X,
    1369            0 :             0x20000011 => Type::HEX_32_6_X,
    1370            0 :             0x20000012 => Type::HEX_B22_PCREL_X,
    1371            0 :             0x20000013 => Type::HEX_B15_PCREL_X,
    1372            0 :             0x20000014 => Type::HEX_B13_PCREL_X,
    1373            0 :             0x20000015 => Type::HEX_B9_PCREL_X,
    1374            0 :             0x20000016 => Type::HEX_B7_PCREL_X,
    1375            0 :             0x20000017 => Type::HEX_16_X,
    1376            0 :             0x20000018 => Type::HEX_12_X,
    1377            0 :             0x20000019 => Type::HEX_11_X,
    1378            0 :             0x2000001a => Type::HEX_10_X,
    1379            0 :             0x2000001b => Type::HEX_9_X,
    1380            0 :             0x2000001c => Type::HEX_8_X,
    1381            0 :             0x2000001d => Type::HEX_7_X,
    1382            0 :             0x2000001e => Type::HEX_6_X,
    1383            0 :             0x2000001f => Type::HEX_32_PCREL,
    1384            0 :             0x20000020 => Type::HEX_COPY,
    1385            0 :             0x20000021 => Type::HEX_GLOB_DAT,
    1386            0 :             0x20000022 => Type::HEX_JMP_SLOT,
    1387            0 :             0x20000023 => Type::HEX_RELATIVE,
    1388            0 :             0x20000024 => Type::HEX_PLT_B22_PCREL,
    1389            0 :             0x20000025 => Type::HEX_GOTREL_LO16,
    1390            0 :             0x20000026 => Type::HEX_GOTREL_HI16,
    1391            0 :             0x20000027 => Type::HEX_GOTREL_32,
    1392            0 :             0x20000028 => Type::HEX_GOT_LO16,
    1393            0 :             0x20000029 => Type::HEX_GOT_HI16,
    1394            0 :             0x2000002a => Type::HEX_GOT_32,
    1395            0 :             0x2000002b => Type::HEX_GOT_16,
    1396            0 :             0x2000002c => Type::HEX_DTPMOD_32,
    1397            0 :             0x2000002d => Type::HEX_DTPREL_LO16,
    1398            0 :             0x2000002e => Type::HEX_DTPREL_HI16,
    1399            0 :             0x2000002f => Type::HEX_DTPREL_32,
    1400            0 :             0x20000030 => Type::HEX_DTPREL_16,
    1401            0 :             0x20000031 => Type::HEX_GD_PLT_B22_PCREL,
    1402            0 :             0x20000032 => Type::HEX_GD_GOT_LO16,
    1403            0 :             0x20000033 => Type::HEX_GD_GOT_HI16,
    1404            0 :             0x20000034 => Type::HEX_GD_GOT_32,
    1405            0 :             0x20000035 => Type::HEX_GD_GOT_16,
    1406            0 :             0x20000036 => Type::HEX_IE_LO16,
    1407            0 :             0x20000037 => Type::HEX_IE_HI16,
    1408            0 :             0x20000038 => Type::HEX_IE_32,
    1409            0 :             0x20000039 => Type::HEX_IE_GOT_LO16,
    1410            0 :             0x2000003a => Type::HEX_IE_GOT_HI16,
    1411            0 :             0x2000003b => Type::HEX_IE_GOT_32,
    1412            0 :             0x2000003c => Type::HEX_IE_GOT_16,
    1413            0 :             0x2000003d => Type::HEX_TPREL_LO16,
    1414            0 :             0x2000003e => Type::HEX_TPREL_HI16,
    1415            0 :             0x2000003f => Type::HEX_TPREL_32,
    1416            0 :             0x20000040 => Type::HEX_TPREL_16,
    1417            0 :             0x20000041 => Type::HEX_6_PCREL_X,
    1418            0 :             0x20000042 => Type::HEX_GOTREL_32_6_X,
    1419            0 :             0x20000043 => Type::HEX_GOTREL_16_X,
    1420            0 :             0x20000044 => Type::HEX_GOTREL_11_X,
    1421            0 :             0x20000045 => Type::HEX_GOT_32_6_X,
    1422            0 :             0x20000046 => Type::HEX_GOT_16_X,
    1423            0 :             0x20000047 => Type::HEX_GOT_11_X,
    1424            0 :             0x20000048 => Type::HEX_DTPREL_32_6_X,
    1425            0 :             0x20000049 => Type::HEX_DTPREL_16_X,
    1426            0 :             0x2000004a => Type::HEX_DTPREL_11_X,
    1427            0 :             0x2000004b => Type::HEX_GD_GOT_32_6_X,
    1428            0 :             0x2000004c => Type::HEX_GD_GOT_16_X,
    1429            0 :             0x2000004d => Type::HEX_GD_GOT_11_X,
    1430            0 :             0x2000004e => Type::HEX_IE_32_6_X,
    1431            0 :             0x2000004f => Type::HEX_IE_16_X,
    1432            0 :             0x20000050 => Type::HEX_IE_GOT_32_6_X,
    1433            0 :             0x20000051 => Type::HEX_IE_GOT_16_X,
    1434            0 :             0x20000052 => Type::HEX_IE_GOT_11_X,
    1435            0 :             0x20000053 => Type::HEX_TPREL_32_6_X,
    1436            0 :             0x20000054 => Type::HEX_TPREL_16_X,
    1437            0 :             0x20000055 => Type::HEX_TPREL_11_X,
    1438            0 :             0x20000056 => Type::HEX_LD_PLT_B22_PCREL,
    1439            0 :             0x20000057 => Type::HEX_LD_GOT_LO16,
    1440            0 :             0x20000058 => Type::HEX_LD_GOT_HI16,
    1441            0 :             0x20000059 => Type::HEX_LD_GOT_32,
    1442            0 :             0x2000005a => Type::HEX_LD_GOT_16,
    1443            0 :             0x2000005b => Type::HEX_LD_GOT_32_6_X,
    1444            0 :             0x2000005c => Type::HEX_LD_GOT_16_X,
    1445            0 :             0x2000005d => Type::HEX_LD_GOT_11_X,
    1446            0 :             0x28000000 => Type::X86_NONE,
    1447            0 :             0x28000001 => Type::X86_32,
    1448            0 :             0x28000002 => Type::X86_PC32,
    1449            0 :             0x28000003 => Type::X86_GOT32,
    1450            0 :             0x28000004 => Type::X86_PLT32,
    1451            0 :             0x28000005 => Type::X86_COPY,
    1452            0 :             0x28000006 => Type::X86_GLOB_DAT,
    1453            0 :             0x28000007 => Type::X86_JUMP_SLOT,
    1454            0 :             0x28000008 => Type::X86_RELATIVE,
    1455            0 :             0x28000009 => Type::X86_GOTOFF,
    1456            0 :             0x2800000a => Type::X86_GOTPC,
    1457            0 :             0x2800000b => Type::X86_32PLT,
    1458            0 :             0x2800000e => Type::X86_TLS_TPOFF,
    1459            0 :             0x2800000f => Type::X86_TLS_IE,
    1460            0 :             0x28000010 => Type::X86_TLS_GOTIE,
    1461            0 :             0x28000011 => Type::X86_TLS_LE,
    1462            0 :             0x28000012 => Type::X86_TLS_GD,
    1463            0 :             0x28000013 => Type::X86_TLS_LDM,
    1464            0 :             0x28000014 => Type::X86_16,
    1465            0 :             0x28000015 => Type::X86_PC16,
    1466            0 :             0x28000016 => Type::X86_8,
    1467            0 :             0x28000017 => Type::X86_PC8,
    1468            0 :             0x28000018 => Type::X86_TLS_GD_32,
    1469            0 :             0x28000019 => Type::X86_TLS_GD_PUSH,
    1470            0 :             0x2800001a => Type::X86_TLS_GD_CALL,
    1471            0 :             0x2800001b => Type::X86_TLS_GD_POP,
    1472            0 :             0x2800001c => Type::X86_TLS_LDM_32,
    1473            0 :             0x2800001d => Type::X86_TLS_LDM_PUSH,
    1474            0 :             0x2800001e => Type::X86_TLS_LDM_CALL,
    1475            0 :             0x2800001f => Type::X86_TLS_LDM_POP,
    1476            0 :             0x28000020 => Type::X86_TLS_LDO_32,
    1477            0 :             0x28000021 => Type::X86_TLS_IE_32,
    1478            0 :             0x28000022 => Type::X86_TLS_LE_32,
    1479            0 :             0x28000023 => Type::X86_TLS_DTPMOD32,
    1480            0 :             0x28000024 => Type::X86_TLS_DTPOFF32,
    1481            0 :             0x28000025 => Type::X86_TLS_TPOFF32,
    1482            0 :             0x28000027 => Type::X86_TLS_GOTDESC,
    1483            0 :             0x28000028 => Type::X86_TLS_DESC_CALL,
    1484            0 :             0x28000029 => Type::X86_TLS_DESC,
    1485            0 :             0x2800002a => Type::X86_IRELATIVE,
    1486            0 :             0x30000000 => Type::LARCH_NONE,
    1487            0 :             0x30000001 => Type::LARCH_32,
    1488           40 :             0x30000002 => Type::LARCH_64,
    1489            0 :             0x30000003 => Type::LARCH_RELATIVE,
    1490            0 :             0x30000004 => Type::LARCH_COPY,
    1491            0 :             0x30000005 => Type::LARCH_JUMP_SLOT,
    1492            0 :             0x30000006 => Type::LARCH_TLS_DTPMOD32,
    1493            0 :             0x30000007 => Type::LARCH_TLS_DTPMOD64,
    1494            0 :             0x30000008 => Type::LARCH_TLS_DTPREL32,
    1495            0 :             0x30000009 => Type::LARCH_TLS_DTPREL64,
    1496            0 :             0x3000000a => Type::LARCH_TLS_TPREL32,
    1497            0 :             0x3000000b => Type::LARCH_TLS_TPREL64,
    1498            0 :             0x3000000c => Type::LARCH_IRELATIVE,
    1499            0 :             0x30000014 => Type::LARCH_MARK_LA,
    1500            0 :             0x30000015 => Type::LARCH_MARK_PCREL,
    1501            0 :             0x30000016 => Type::LARCH_SOP_PUSH_PCREL,
    1502            0 :             0x30000017 => Type::LARCH_SOP_PUSH_ABSOLUTE,
    1503            0 :             0x30000018 => Type::LARCH_SOP_PUSH_DUP,
    1504            0 :             0x30000019 => Type::LARCH_SOP_PUSH_GPREL,
    1505            0 :             0x3000001a => Type::LARCH_SOP_PUSH_TLS_TPREL,
    1506            0 :             0x3000001b => Type::LARCH_SOP_PUSH_TLS_GOT,
    1507            0 :             0x3000001c => Type::LARCH_SOP_PUSH_TLS_GD,
    1508            0 :             0x3000001d => Type::LARCH_SOP_PUSH_PLT_PCREL,
    1509            0 :             0x3000001e => Type::LARCH_SOP_ASSERT,
    1510            0 :             0x3000001f => Type::LARCH_SOP_NOT,
    1511            0 :             0x30000020 => Type::LARCH_SOP_SUB,
    1512            0 :             0x30000021 => Type::LARCH_SOP_SL,
    1513            0 :             0x30000022 => Type::LARCH_SOP_SR,
    1514            0 :             0x30000023 => Type::LARCH_SOP_ADD,
    1515            0 :             0x30000024 => Type::LARCH_SOP_AND,
    1516            0 :             0x30000025 => Type::LARCH_SOP_IF_ELSE,
    1517            0 :             0x30000026 => Type::LARCH_SOP_POP_32_S_10_5,
    1518            0 :             0x30000027 => Type::LARCH_SOP_POP_32_U_10_12,
    1519            0 :             0x30000028 => Type::LARCH_SOP_POP_32_S_10_12,
    1520            0 :             0x30000029 => Type::LARCH_SOP_POP_32_S_10_16,
    1521            0 :             0x3000002a => Type::LARCH_SOP_POP_32_S_10_16_S2,
    1522            0 :             0x3000002b => Type::LARCH_SOP_POP_32_S_5_20,
    1523            0 :             0x3000002c => Type::LARCH_SOP_POP_32_S_0_5_10_16_S2,
    1524            0 :             0x3000002d => Type::LARCH_SOP_POP_32_S_0_10_10_16_S2,
    1525            0 :             0x3000002e => Type::LARCH_SOP_POP_32_U,
    1526            0 :             0x3000002f => Type::LARCH_ADD8,
    1527            0 :             0x30000030 => Type::LARCH_ADD16,
    1528            0 :             0x30000031 => Type::LARCH_ADD24,
    1529            0 :             0x30000032 => Type::LARCH_ADD32,
    1530            0 :             0x30000033 => Type::LARCH_ADD64,
    1531            0 :             0x30000034 => Type::LARCH_SUB8,
    1532            0 :             0x30000035 => Type::LARCH_SUB16,
    1533            0 :             0x30000036 => Type::LARCH_SUB24,
    1534            0 :             0x30000037 => Type::LARCH_SUB32,
    1535            0 :             0x30000038 => Type::LARCH_SUB64,
    1536            0 :             0x30000039 => Type::LARCH_GNU_VTINHERIT,
    1537            0 :             0x3000003a => Type::LARCH_GNU_VTENTRY,
    1538            0 :             0x30000040 => Type::LARCH_B16,
    1539            0 :             0x30000041 => Type::LARCH_B21,
    1540          400 :             0x30000042 => Type::LARCH_B26,
    1541            0 :             0x30000043 => Type::LARCH_ABS_HI20,
    1542            0 :             0x30000044 => Type::LARCH_ABS_LO12,
    1543            0 :             0x30000045 => Type::LARCH_ABS64_LO20,
    1544            0 :             0x30000046 => Type::LARCH_ABS64_HI12,
    1545          120 :             0x30000047 => Type::LARCH_PCALA_HI20,
    1546          120 :             0x30000048 => Type::LARCH_PCALA_LO12,
    1547            0 :             0x30000049 => Type::LARCH_PCALA64_LO20,
    1548            0 :             0x3000004a => Type::LARCH_PCALA64_HI12,
    1549           60 :             0x3000004b => Type::LARCH_GOT_PC_HI20,
    1550           60 :             0x3000004c => Type::LARCH_GOT_PC_LO12,
    1551            0 :             0x3000004d => Type::LARCH_GOT64_PC_LO20,
    1552            0 :             0x3000004e => Type::LARCH_GOT64_PC_HI12,
    1553            0 :             0x3000004f => Type::LARCH_GOT_HI20,
    1554            0 :             0x30000050 => Type::LARCH_GOT_LO12,
    1555            0 :             0x30000051 => Type::LARCH_GOT64_LO20,
    1556            0 :             0x30000052 => Type::LARCH_GOT64_HI12,
    1557            0 :             0x30000053 => Type::LARCH_TLS_LE_HI20,
    1558            0 :             0x30000054 => Type::LARCH_TLS_LE_LO12,
    1559            0 :             0x30000055 => Type::LARCH_TLS_LE64_LO20,
    1560            0 :             0x30000056 => Type::LARCH_TLS_LE64_HI12,
    1561            0 :             0x30000057 => Type::LARCH_TLS_IE_PC_HI20,
    1562            0 :             0x30000058 => Type::LARCH_TLS_IE_PC_LO12,
    1563            0 :             0x30000059 => Type::LARCH_TLS_IE64_PC_LO20,
    1564            0 :             0x3000005a => Type::LARCH_TLS_IE64_PC_HI12,
    1565            0 :             0x3000005b => Type::LARCH_TLS_IE_HI20,
    1566            0 :             0x3000005c => Type::LARCH_TLS_IE_LO12,
    1567            0 :             0x3000005d => Type::LARCH_TLS_IE64_LO20,
    1568            0 :             0x3000005e => Type::LARCH_TLS_IE64_HI12,
    1569            0 :             0x3000005f => Type::LARCH_TLS_LD_PC_HI20,
    1570            0 :             0x30000060 => Type::LARCH_TLS_LD_HI20,
    1571            0 :             0x30000061 => Type::LARCH_TLS_GD_PC_HI20,
    1572            0 :             0x30000062 => Type::LARCH_TLS_GD_HI20,
    1573          100 :             0x30000063 => Type::LARCH_32_PCREL,
    1574            0 :             0x30000064 => Type::LARCH_RELAX,
    1575            0 :             0x30000066 => Type::LARCH_ALIGN,
    1576            0 :             0x30000067 => Type::LARCH_PCREL20_S2,
    1577            0 :             0x30000069 => Type::LARCH_ADD6,
    1578            0 :             0x3000006a => Type::LARCH_SUB6,
    1579            0 :             0x3000006b => Type::LARCH_ADD_ULEB128,
    1580            0 :             0x3000006c => Type::LARCH_SUB_ULEB128,
    1581            0 :             0x3000006d => Type::LARCH_64_PCREL,
    1582            0 :             0x3000006e => Type::LARCH_CALL36,
    1583            0 :             0x3000000d => Type::LARCH_TLS_DESC32,
    1584            0 :             0x3000000e => Type::LARCH_TLS_DESC64,
    1585            0 :             0x3000006f => Type::LARCH_TLS_DESC_PC_HI20,
    1586            0 :             0x30000070 => Type::LARCH_TLS_DESC_PC_LO12,
    1587            0 :             0x30000071 => Type::LARCH_TLS_DESC64_PC_LO20,
    1588            0 :             0x30000072 => Type::LARCH_TLS_DESC64_PC_HI12,
    1589            0 :             0x30000073 => Type::LARCH_TLS_DESC_HI20,
    1590            0 :             0x30000074 => Type::LARCH_TLS_DESC_LO12,
    1591            0 :             0x30000075 => Type::LARCH_TLS_DESC64_LO20,
    1592            0 :             0x30000076 => Type::LARCH_TLS_DESC64_HI12,
    1593            0 :             0x30000077 => Type::LARCH_TLS_DESC_LD,
    1594            0 :             0x30000078 => Type::LARCH_TLS_DESC_CALL,
    1595            0 :             0x30000079 => Type::LARCH_TLS_LE_HI20_R,
    1596            0 :             0x3000007a => Type::LARCH_TLS_LE_ADD_R,
    1597            0 :             0x3000007b => Type::LARCH_TLS_LE_LO12_R,
    1598            0 :             0x3000007c => Type::LARCH_TLS_LD_PCREL20_S2,
    1599            0 :             0x3000007d => Type::LARCH_TLS_GD_PCREL20_S2,
    1600            0 :             0x3000007e => Type::LARCH_TLS_DESC_PCREL20_S2,
    1601           20 :             0x38000000 => Type::MIPS_NONE,
    1602            0 :             0x38000001 => Type::MIPS_16,
    1603            0 :             0x38000002 => Type::MIPS_32,
    1604         7580 :             0x38000003 => Type::MIPS_REL32,
    1605            0 :             0x38000004 => Type::MIPS_26,
    1606            0 :             0x38000005 => Type::MIPS_HI16,
    1607            0 :             0x38000006 => Type::MIPS_LO16,
    1608            0 :             0x38000007 => Type::MIPS_GPREL16,
    1609            0 :             0x38000008 => Type::MIPS_LITERAL,
    1610            0 :             0x38000009 => Type::MIPS_GOT16,
    1611            0 :             0x3800000a => Type::MIPS_PC16,
    1612            0 :             0x3800000b => Type::MIPS_CALL16,
    1613            0 :             0x3800000c => Type::MIPS_GPREL32,
    1614            0 :             0x3800000d => Type::MIPS_UNUSED1,
    1615            0 :             0x3800000e => Type::MIPS_UNUSED2,
    1616            0 :             0x3800000f => Type::MIPS_UNUSED3,
    1617            0 :             0x38000010 => Type::MIPS_SHIFT5,
    1618            0 :             0x38000011 => Type::MIPS_SHIFT6,
    1619            0 :             0x38000012 => Type::MIPS_64,
    1620            0 :             0x38000013 => Type::MIPS_GOT_DISP,
    1621            0 :             0x38000014 => Type::MIPS_GOT_PAGE,
    1622            0 :             0x38000015 => Type::MIPS_GOT_OFST,
    1623            0 :             0x38000016 => Type::MIPS_GOT_HI16,
    1624            0 :             0x38000017 => Type::MIPS_GOT_LO16,
    1625            0 :             0x38000018 => Type::MIPS_SUB,
    1626            0 :             0x38000019 => Type::MIPS_INSERT_A,
    1627            0 :             0x3800001a => Type::MIPS_INSERT_B,
    1628            0 :             0x3800001b => Type::MIPS_DELETE,
    1629            0 :             0x3800001c => Type::MIPS_HIGHER,
    1630            0 :             0x3800001d => Type::MIPS_HIGHEST,
    1631            0 :             0x3800001e => Type::MIPS_CALL_HI16,
    1632            0 :             0x3800001f => Type::MIPS_CALL_LO16,
    1633            0 :             0x38000020 => Type::MIPS_SCN_DISP,
    1634            0 :             0x38000021 => Type::MIPS_REL16,
    1635            0 :             0x38000022 => Type::MIPS_ADD_IMMEDIATE,
    1636            0 :             0x38000023 => Type::MIPS_PJUMP,
    1637            0 :             0x38000024 => Type::MIPS_RELGOT,
    1638            0 :             0x38000025 => Type::MIPS_JALR,
    1639            0 :             0x38000026 => Type::MIPS_TLS_DTPMOD32,
    1640            0 :             0x38000027 => Type::MIPS_TLS_DTPREL32,
    1641            0 :             0x38000028 => Type::MIPS_TLS_DTPMOD64,
    1642            0 :             0x38000029 => Type::MIPS_TLS_DTPREL64,
    1643            0 :             0x3800002a => Type::MIPS_TLS_GD,
    1644            0 :             0x3800002b => Type::MIPS_TLS_LDM,
    1645            0 :             0x3800002c => Type::MIPS_TLS_DTPREL_HI16,
    1646            0 :             0x3800002d => Type::MIPS_TLS_DTPREL_LO16,
    1647            0 :             0x3800002e => Type::MIPS_TLS_GOTTPREL,
    1648            0 :             0x3800002f => Type::MIPS_TLS_TPREL32,
    1649            0 :             0x38000030 => Type::MIPS_TLS_TPREL64,
    1650            0 :             0x38000031 => Type::MIPS_TLS_TPREL_HI16,
    1651            0 :             0x38000032 => Type::MIPS_TLS_TPREL_LO16,
    1652            0 :             0x38000033 => Type::MIPS_GLOB_DAT,
    1653            0 :             0x3800003c => Type::MIPS_PC21_S2,
    1654            0 :             0x3800003d => Type::MIPS_PC26_S2,
    1655            0 :             0x3800003e => Type::MIPS_PC18_S3,
    1656            0 :             0x3800003f => Type::MIPS_PC19_S2,
    1657            0 :             0x38000040 => Type::MIPS_PCHI16,
    1658            0 :             0x38000041 => Type::MIPS_PCLO16,
    1659            0 :             0x38000064 => Type::MIPS16_26,
    1660            0 :             0x38000065 => Type::MIPS16_GPREL,
    1661            0 :             0x38000066 => Type::MIPS16_GOT16,
    1662            0 :             0x38000067 => Type::MIPS16_CALL16,
    1663            0 :             0x38000068 => Type::MIPS16_HI16,
    1664            0 :             0x38000069 => Type::MIPS16_LO16,
    1665            0 :             0x3800006a => Type::MIPS16_TLS_GD,
    1666            0 :             0x3800006b => Type::MIPS16_TLS_LDM,
    1667            0 :             0x3800006c => Type::MIPS16_TLS_DTPREL_HI16,
    1668            0 :             0x3800006d => Type::MIPS16_TLS_DTPREL_LO16,
    1669            0 :             0x3800006e => Type::MIPS16_TLS_GOTTPREL,
    1670            0 :             0x3800006f => Type::MIPS16_TLS_TPREL_HI16,
    1671            0 :             0x38000070 => Type::MIPS16_TLS_TPREL_LO16,
    1672            0 :             0x3800007e => Type::MIPS_COPY,
    1673           20 :             0x3800007f => Type::MIPS_JUMP_SLOT,
    1674            0 :             0x38000085 => Type::MICROMIPS_26_S1,
    1675            0 :             0x38000086 => Type::MICROMIPS_HI16,
    1676            0 :             0x38000087 => Type::MICROMIPS_LO16,
    1677            0 :             0x38000088 => Type::MICROMIPS_GPREL16,
    1678            0 :             0x38000089 => Type::MICROMIPS_LITERAL,
    1679            0 :             0x3800008a => Type::MICROMIPS_GOT16,
    1680            0 :             0x3800008b => Type::MICROMIPS_PC7_S1,
    1681            0 :             0x3800008c => Type::MICROMIPS_PC10_S1,
    1682            0 :             0x3800008d => Type::MICROMIPS_PC16_S1,
    1683            0 :             0x3800008e => Type::MICROMIPS_CALL16,
    1684            0 :             0x38000091 => Type::MICROMIPS_GOT_DISP,
    1685            0 :             0x38000092 => Type::MICROMIPS_GOT_PAGE,
    1686            0 :             0x38000093 => Type::MICROMIPS_GOT_OFST,
    1687            0 :             0x38000094 => Type::MICROMIPS_GOT_HI16,
    1688            0 :             0x38000095 => Type::MICROMIPS_GOT_LO16,
    1689            0 :             0x38000096 => Type::MICROMIPS_SUB,
    1690            0 :             0x38000097 => Type::MICROMIPS_HIGHER,
    1691            0 :             0x38000098 => Type::MICROMIPS_HIGHEST,
    1692            0 :             0x38000099 => Type::MICROMIPS_CALL_HI16,
    1693            0 :             0x3800009a => Type::MICROMIPS_CALL_LO16,
    1694            0 :             0x3800009b => Type::MICROMIPS_SCN_DISP,
    1695            0 :             0x3800009c => Type::MICROMIPS_JALR,
    1696            0 :             0x3800009d => Type::MICROMIPS_HI0_LO16,
    1697            0 :             0x380000a2 => Type::MICROMIPS_TLS_GD,
    1698            0 :             0x380000a3 => Type::MICROMIPS_TLS_LDM,
    1699            0 :             0x380000a4 => Type::MICROMIPS_TLS_DTPREL_HI16,
    1700            0 :             0x380000a5 => Type::MICROMIPS_TLS_DTPREL_LO16,
    1701            0 :             0x380000a6 => Type::MICROMIPS_TLS_GOTTPREL,
    1702            0 :             0x380000a9 => Type::MICROMIPS_TLS_TPREL_HI16,
    1703            0 :             0x380000aa => Type::MICROMIPS_TLS_TPREL_LO16,
    1704            0 :             0x380000ac => Type::MICROMIPS_GPREL7_S2,
    1705            0 :             0x380000ad => Type::MICROMIPS_PC23_S2,
    1706            0 :             0x380000ae => Type::MICROMIPS_PC21_S2,
    1707            0 :             0x380000af => Type::MICROMIPS_PC26_S2,
    1708            0 :             0x380000b0 => Type::MICROMIPS_PC18_S3,
    1709            0 :             0x380000b1 => Type::MICROMIPS_PC19_S2,
    1710            0 :             0x380000da => Type::MIPS_NUM,
    1711            0 :             0x380000f8 => Type::MIPS_PC32,
    1712            0 :             0x380000f9 => Type::MIPS_EH,
    1713            0 :             0x40000000 => Type::PPC_NONE,
    1714            0 :             0x40000001 => Type::PPC_ADDR32,
    1715            0 :             0x40000002 => Type::PPC_ADDR24,
    1716            0 :             0x40000003 => Type::PPC_ADDR16,
    1717            0 :             0x40000004 => Type::PPC_ADDR16_LO,
    1718            0 :             0x40000005 => Type::PPC_ADDR16_HI,
    1719            0 :             0x40000006 => Type::PPC_ADDR16_HA,
    1720            0 :             0x40000007 => Type::PPC_ADDR14,
    1721            0 :             0x40000008 => Type::PPC_ADDR14_BRTAKEN,
    1722            0 :             0x40000009 => Type::PPC_ADDR14_BRNTAKEN,
    1723            0 :             0x4000000a => Type::PPC_REL24,
    1724            0 :             0x4000000b => Type::PPC_REL14,
    1725            0 :             0x4000000c => Type::PPC_REL14_BRTAKEN,
    1726            0 :             0x4000000d => Type::PPC_REL14_BRNTAKEN,
    1727            0 :             0x4000000e => Type::PPC_GOT16,
    1728            0 :             0x4000000f => Type::PPC_GOT16_LO,
    1729            0 :             0x40000010 => Type::PPC_GOT16_HI,
    1730            0 :             0x40000011 => Type::PPC_GOT16_HA,
    1731            0 :             0x40000012 => Type::PPC_PLTREL24,
    1732            0 :             0x40000015 => Type::PPC_JMP_SLOT,
    1733            0 :             0x40000016 => Type::PPC_RELATIVE,
    1734            0 :             0x40000017 => Type::PPC_LOCAL24PC,
    1735            0 :             0x4000001a => Type::PPC_REL32,
    1736            0 :             0x40000043 => Type::PPC_TLS,
    1737            0 :             0x40000044 => Type::PPC_DTPMOD32,
    1738            0 :             0x40000045 => Type::PPC_TPREL16,
    1739            0 :             0x40000046 => Type::PPC_TPREL16_LO,
    1740            0 :             0x40000047 => Type::PPC_TPREL16_HI,
    1741            0 :             0x40000048 => Type::PPC_TPREL16_HA,
    1742            0 :             0x40000049 => Type::PPC_TPREL32,
    1743            0 :             0x4000004a => Type::PPC_DTPREL16,
    1744            0 :             0x4000004b => Type::PPC_DTPREL16_LO,
    1745            0 :             0x4000004c => Type::PPC_DTPREL16_HI,
    1746            0 :             0x4000004d => Type::PPC_DTPREL16_HA,
    1747            0 :             0x4000004e => Type::PPC_DTPREL32,
    1748            0 :             0x4000004f => Type::PPC_GOT_TLSGD16,
    1749            0 :             0x40000050 => Type::PPC_GOT_TLSGD16_LO,
    1750            0 :             0x40000051 => Type::PPC_GOT_TLSGD16_HI,
    1751            0 :             0x40000052 => Type::PPC_GOT_TLSGD16_HA,
    1752            0 :             0x40000053 => Type::PPC_GOT_TLSLD16,
    1753            0 :             0x40000054 => Type::PPC_GOT_TLSLD16_LO,
    1754            0 :             0x40000055 => Type::PPC_GOT_TLSLD16_HI,
    1755            0 :             0x40000056 => Type::PPC_GOT_TLSLD16_HA,
    1756            0 :             0x40000057 => Type::PPC_GOT_TPREL16,
    1757            0 :             0x40000058 => Type::PPC_GOT_TPREL16_LO,
    1758            0 :             0x40000059 => Type::PPC_GOT_TPREL16_HI,
    1759            0 :             0x4000005a => Type::PPC_GOT_TPREL16_HA,
    1760            0 :             0x4000005b => Type::PPC_GOT_DTPREL16,
    1761            0 :             0x4000005c => Type::PPC_GOT_DTPREL16_LO,
    1762            0 :             0x4000005d => Type::PPC_GOT_DTPREL16_HI,
    1763            0 :             0x4000005e => Type::PPC_GOT_DTPREL16_HA,
    1764            0 :             0x4000005f => Type::PPC_TLSGD,
    1765            0 :             0x40000060 => Type::PPC_TLSLD,
    1766            0 :             0x400000f9 => Type::PPC_REL16,
    1767            0 :             0x400000fa => Type::PPC_REL16_LO,
    1768            0 :             0x400000fb => Type::PPC_REL16_HI,
    1769            0 :             0x400000fc => Type::PPC_REL16_HA,
    1770            0 :             0x48000000 => Type::PPC64_NONE,
    1771            0 :             0x48000001 => Type::PPC64_ADDR32,
    1772            0 :             0x48000002 => Type::PPC64_ADDR24,
    1773            0 :             0x48000003 => Type::PPC64_ADDR16,
    1774            0 :             0x48000004 => Type::PPC64_ADDR16_LO,
    1775            0 :             0x48000005 => Type::PPC64_ADDR16_HI,
    1776            0 :             0x48000006 => Type::PPC64_ADDR16_HA,
    1777            0 :             0x48000007 => Type::PPC64_ADDR14,
    1778            0 :             0x48000008 => Type::PPC64_ADDR14_BRTAKEN,
    1779            0 :             0x48000009 => Type::PPC64_ADDR14_BRNTAKEN,
    1780            0 :             0x4800000a => Type::PPC64_REL24,
    1781            0 :             0x4800000b => Type::PPC64_REL14,
    1782            0 :             0x4800000c => Type::PPC64_REL14_BRTAKEN,
    1783            0 :             0x4800000d => Type::PPC64_REL14_BRNTAKEN,
    1784            0 :             0x4800000e => Type::PPC64_GOT16,
    1785            0 :             0x4800000f => Type::PPC64_GOT16_LO,
    1786            0 :             0x48000010 => Type::PPC64_GOT16_HI,
    1787            0 :             0x48000011 => Type::PPC64_GOT16_HA,
    1788            0 :             0x48000015 => Type::PPC64_JMP_SLOT,
    1789            0 :             0x48000016 => Type::PPC64_RELATIVE,
    1790            0 :             0x4800001a => Type::PPC64_REL32,
    1791            0 :             0x48000026 => Type::PPC64_ADDR64,
    1792            0 :             0x48000027 => Type::PPC64_ADDR16_HIGHER,
    1793            0 :             0x48000028 => Type::PPC64_ADDR16_HIGHERA,
    1794            0 :             0x48000029 => Type::PPC64_ADDR16_HIGHEST,
    1795            0 :             0x4800002a => Type::PPC64_ADDR16_HIGHESTA,
    1796            0 :             0x4800002c => Type::PPC64_REL64,
    1797            0 :             0x4800002f => Type::PPC64_TOC16,
    1798            0 :             0x48000030 => Type::PPC64_TOC16_LO,
    1799            0 :             0x48000031 => Type::PPC64_TOC16_HI,
    1800            0 :             0x48000032 => Type::PPC64_TOC16_HA,
    1801            0 :             0x48000033 => Type::PPC64_TOC,
    1802            0 :             0x48000038 => Type::PPC64_ADDR16_DS,
    1803            0 :             0x48000039 => Type::PPC64_ADDR16_LO_DS,
    1804            0 :             0x4800003a => Type::PPC64_GOT16_DS,
    1805            0 :             0x4800003b => Type::PPC64_GOT16_LO_DS,
    1806            0 :             0x4800003f => Type::PPC64_TOC16_DS,
    1807            0 :             0x48000040 => Type::PPC64_TOC16_LO_DS,
    1808            0 :             0x48000043 => Type::PPC64_TLS,
    1809            0 :             0x48000044 => Type::PPC64_DTPMOD64,
    1810            0 :             0x48000045 => Type::PPC64_TPREL16,
    1811            0 :             0x48000046 => Type::PPC64_TPREL16_LO,
    1812            0 :             0x48000047 => Type::PPC64_TPREL16_HI,
    1813            0 :             0x48000048 => Type::PPC64_TPREL16_HA,
    1814            0 :             0x48000049 => Type::PPC64_TPREL64,
    1815            0 :             0x4800004a => Type::PPC64_DTPREL16,
    1816            0 :             0x4800004b => Type::PPC64_DTPREL16_LO,
    1817            0 :             0x4800004c => Type::PPC64_DTPREL16_HI,
    1818            0 :             0x4800004d => Type::PPC64_DTPREL16_HA,
    1819            0 :             0x4800004e => Type::PPC64_DTPREL64,
    1820            0 :             0x4800004f => Type::PPC64_GOT_TLSGD16,
    1821            0 :             0x48000050 => Type::PPC64_GOT_TLSGD16_LO,
    1822            0 :             0x48000051 => Type::PPC64_GOT_TLSGD16_HI,
    1823            0 :             0x48000052 => Type::PPC64_GOT_TLSGD16_HA,
    1824            0 :             0x48000053 => Type::PPC64_GOT_TLSLD16,
    1825            0 :             0x48000054 => Type::PPC64_GOT_TLSLD16_LO,
    1826            0 :             0x48000055 => Type::PPC64_GOT_TLSLD16_HI,
    1827            0 :             0x48000056 => Type::PPC64_GOT_TLSLD16_HA,
    1828            0 :             0x48000057 => Type::PPC64_GOT_TPREL16_DS,
    1829            0 :             0x48000058 => Type::PPC64_GOT_TPREL16_LO_DS,
    1830            0 :             0x48000059 => Type::PPC64_GOT_TPREL16_HI,
    1831            0 :             0x4800005a => Type::PPC64_GOT_TPREL16_HA,
    1832            0 :             0x4800005b => Type::PPC64_GOT_DTPREL16_DS,
    1833            0 :             0x4800005c => Type::PPC64_GOT_DTPREL16_LO_DS,
    1834            0 :             0x4800005d => Type::PPC64_GOT_DTPREL16_HI,
    1835            0 :             0x4800005e => Type::PPC64_GOT_DTPREL16_HA,
    1836            0 :             0x4800005f => Type::PPC64_TPREL16_DS,
    1837            0 :             0x48000060 => Type::PPC64_TPREL16_LO_DS,
    1838            0 :             0x48000061 => Type::PPC64_TPREL16_HIGHER,
    1839            0 :             0x48000062 => Type::PPC64_TPREL16_HIGHERA,
    1840            0 :             0x48000063 => Type::PPC64_TPREL16_HIGHEST,
    1841            0 :             0x48000064 => Type::PPC64_TPREL16_HIGHESTA,
    1842            0 :             0x48000065 => Type::PPC64_DTPREL16_DS,
    1843            0 :             0x48000066 => Type::PPC64_DTPREL16_LO_DS,
    1844            0 :             0x48000067 => Type::PPC64_DTPREL16_HIGHER,
    1845            0 :             0x48000068 => Type::PPC64_DTPREL16_HIGHERA,
    1846            0 :             0x48000069 => Type::PPC64_DTPREL16_HIGHEST,
    1847            0 :             0x4800006a => Type::PPC64_DTPREL16_HIGHESTA,
    1848            0 :             0x4800006b => Type::PPC64_TLSGD,
    1849            0 :             0x4800006c => Type::PPC64_TLSLD,
    1850            0 :             0x480000f9 => Type::PPC64_REL16,
    1851            0 :             0x480000fa => Type::PPC64_REL16_LO,
    1852            0 :             0x480000fb => Type::PPC64_REL16_HI,
    1853            0 :             0x480000fc => Type::PPC64_REL16_HA,
    1854            0 :             0x50000000 => Type::SPARC_NONE,
    1855            0 :             0x50000001 => Type::SPARC_8,
    1856            0 :             0x50000002 => Type::SPARC_16,
    1857            0 :             0x50000003 => Type::SPARC_32,
    1858            0 :             0x50000004 => Type::SPARC_DISP8,
    1859            0 :             0x50000005 => Type::SPARC_DISP16,
    1860            0 :             0x50000006 => Type::SPARC_DISP32,
    1861            0 :             0x50000007 => Type::SPARC_WDISP30,
    1862            0 :             0x50000008 => Type::SPARC_WDISP22,
    1863            0 :             0x50000009 => Type::SPARC_HI22,
    1864            0 :             0x5000000a => Type::SPARC_22,
    1865            0 :             0x5000000b => Type::SPARC_13,
    1866            0 :             0x5000000c => Type::SPARC_LO10,
    1867            0 :             0x5000000d => Type::SPARC_GOT10,
    1868            0 :             0x5000000e => Type::SPARC_GOT13,
    1869            0 :             0x5000000f => Type::SPARC_GOT22,
    1870            0 :             0x50000010 => Type::SPARC_PC10,
    1871            0 :             0x50000011 => Type::SPARC_PC22,
    1872            0 :             0x50000012 => Type::SPARC_WPLT30,
    1873            0 :             0x50000013 => Type::SPARC_COPY,
    1874            0 :             0x50000014 => Type::SPARC_GLOB_DAT,
    1875            0 :             0x50000015 => Type::SPARC_JMP_SLOT,
    1876            0 :             0x50000016 => Type::SPARC_RELATIVE,
    1877            0 :             0x50000017 => Type::SPARC_UA32,
    1878            0 :             0x50000018 => Type::SPARC_PLT32,
    1879            0 :             0x50000019 => Type::SPARC_HIPLT22,
    1880            0 :             0x5000001a => Type::SPARC_LOPLT10,
    1881            0 :             0x5000001b => Type::SPARC_PCPLT32,
    1882            0 :             0x5000001c => Type::SPARC_PCPLT22,
    1883            0 :             0x5000001d => Type::SPARC_PCPLT10,
    1884            0 :             0x5000001e => Type::SPARC_10,
    1885            0 :             0x5000001f => Type::SPARC_11,
    1886            0 :             0x50000020 => Type::SPARC_64,
    1887            0 :             0x50000021 => Type::SPARC_OLO10,
    1888            0 :             0x50000022 => Type::SPARC_HH22,
    1889            0 :             0x50000023 => Type::SPARC_HM10,
    1890            0 :             0x50000024 => Type::SPARC_LM22,
    1891            0 :             0x50000025 => Type::SPARC_PC_HH22,
    1892            0 :             0x50000026 => Type::SPARC_PC_HM10,
    1893            0 :             0x50000027 => Type::SPARC_PC_LM22,
    1894            0 :             0x50000028 => Type::SPARC_WDISP16,
    1895            0 :             0x50000029 => Type::SPARC_WDISP19,
    1896            0 :             0x5000002b => Type::SPARC_7,
    1897            0 :             0x5000002c => Type::SPARC_5,
    1898            0 :             0x5000002d => Type::SPARC_6,
    1899            0 :             0x5000002e => Type::SPARC_DISP64,
    1900            0 :             0x5000002f => Type::SPARC_PLT64,
    1901            0 :             0x50000030 => Type::SPARC_HIX22,
    1902            0 :             0x50000031 => Type::SPARC_LOX10,
    1903            0 :             0x50000032 => Type::SPARC_H44,
    1904            0 :             0x50000033 => Type::SPARC_M44,
    1905            0 :             0x50000034 => Type::SPARC_L44,
    1906            0 :             0x50000035 => Type::SPARC_REGISTER,
    1907            0 :             0x50000036 => Type::SPARC_UA64,
    1908            0 :             0x50000037 => Type::SPARC_UA16,
    1909            0 :             0x50000038 => Type::SPARC_TLS_GD_HI22,
    1910            0 :             0x50000039 => Type::SPARC_TLS_GD_LO10,
    1911            0 :             0x5000003a => Type::SPARC_TLS_GD_ADD,
    1912            0 :             0x5000003b => Type::SPARC_TLS_GD_CALL,
    1913            0 :             0x5000003c => Type::SPARC_TLS_LDM_HI22,
    1914            0 :             0x5000003d => Type::SPARC_TLS_LDM_LO10,
    1915            0 :             0x5000003e => Type::SPARC_TLS_LDM_ADD,
    1916            0 :             0x5000003f => Type::SPARC_TLS_LDM_CALL,
    1917            0 :             0x50000040 => Type::SPARC_TLS_LDO_HIX22,
    1918            0 :             0x50000041 => Type::SPARC_TLS_LDO_LOX10,
    1919            0 :             0x50000042 => Type::SPARC_TLS_LDO_ADD,
    1920            0 :             0x50000043 => Type::SPARC_TLS_IE_HI22,
    1921            0 :             0x50000044 => Type::SPARC_TLS_IE_LO10,
    1922            0 :             0x50000045 => Type::SPARC_TLS_IE_LD,
    1923            0 :             0x50000046 => Type::SPARC_TLS_IE_LDX,
    1924            0 :             0x50000047 => Type::SPARC_TLS_IE_ADD,
    1925            0 :             0x50000048 => Type::SPARC_TLS_LE_HIX22,
    1926            0 :             0x50000049 => Type::SPARC_TLS_LE_LOX10,
    1927            0 :             0x5000004a => Type::SPARC_TLS_DTPMOD32,
    1928            0 :             0x5000004b => Type::SPARC_TLS_DTPMOD64,
    1929            0 :             0x5000004c => Type::SPARC_TLS_DTPOFF32,
    1930            0 :             0x5000004d => Type::SPARC_TLS_DTPOFF64,
    1931            0 :             0x5000004e => Type::SPARC_TLS_TPOFF32,
    1932            0 :             0x5000004f => Type::SPARC_TLS_TPOFF64,
    1933            0 :             0x50000050 => Type::SPARC_GOTDATA_HIX22,
    1934            0 :             0x50000051 => Type::SPARC_GOTDATA_LOX10,
    1935            0 :             0x50000052 => Type::SPARC_GOTDATA_OP_HIX22,
    1936            0 :             0x50000053 => Type::SPARC_GOTDATA_OP_LOX10,
    1937            0 :             0x50000054 => Type::SPARC_GOTDATA_OP,
    1938            0 :             0x58000000 => Type::SYSZ_NONE,
    1939            0 :             0x58000001 => Type::SYSZ_8,
    1940            0 :             0x58000002 => Type::SYSZ_12,
    1941            0 :             0x58000003 => Type::SYSZ_16,
    1942            0 :             0x58000004 => Type::SYSZ_32,
    1943            0 :             0x58000005 => Type::SYSZ_PC32,
    1944            0 :             0x58000006 => Type::SYSZ_GOT12,
    1945            0 :             0x58000007 => Type::SYSZ_GOT32,
    1946            0 :             0x58000008 => Type::SYSZ_PLT32,
    1947            0 :             0x58000009 => Type::SYSZ_COPY,
    1948            0 :             0x5800000a => Type::SYSZ_GLOB_DAT,
    1949            0 :             0x5800000b => Type::SYSZ_JMP_SLOT,
    1950            0 :             0x5800000c => Type::SYSZ_RELATIVE,
    1951            0 :             0x5800000d => Type::SYSZ_GOTOFF,
    1952            0 :             0x5800000e => Type::SYSZ_GOTPC,
    1953            0 :             0x5800000f => Type::SYSZ_GOT16,
    1954            0 :             0x58000010 => Type::SYSZ_PC16,
    1955            0 :             0x58000011 => Type::SYSZ_PC16DBL,
    1956            0 :             0x58000012 => Type::SYSZ_PLT16DBL,
    1957            0 :             0x58000013 => Type::SYSZ_PC32DBL,
    1958            0 :             0x58000014 => Type::SYSZ_PLT32DBL,
    1959            0 :             0x58000015 => Type::SYSZ_GOTPCDBL,
    1960            0 :             0x58000016 => Type::SYSZ_64,
    1961            0 :             0x58000017 => Type::SYSZ_PC64,
    1962            0 :             0x58000018 => Type::SYSZ_GOT64,
    1963            0 :             0x58000019 => Type::SYSZ_PLT64,
    1964            0 :             0x5800001a => Type::SYSZ_GOTENT,
    1965            0 :             0x5800001b => Type::SYSZ_GOTOFF16,
    1966            0 :             0x5800001c => Type::SYSZ_GOTOFF64,
    1967            0 :             0x5800001d => Type::SYSZ_GOTPLT12,
    1968            0 :             0x5800001e => Type::SYSZ_GOTPLT16,
    1969            0 :             0x5800001f => Type::SYSZ_GOTPLT32,
    1970            0 :             0x58000020 => Type::SYSZ_GOTPLT64,
    1971            0 :             0x58000021 => Type::SYSZ_GOTPLTENT,
    1972            0 :             0x58000022 => Type::SYSZ_PLTOFF16,
    1973            0 :             0x58000023 => Type::SYSZ_PLTOFF32,
    1974            0 :             0x58000024 => Type::SYSZ_PLTOFF64,
    1975            0 :             0x58000025 => Type::SYSZ_TLS_LOAD,
    1976            0 :             0x58000026 => Type::SYSZ_TLS_GDCALL,
    1977            0 :             0x58000027 => Type::SYSZ_TLS_LDCALL,
    1978            0 :             0x58000028 => Type::SYSZ_TLS_GD32,
    1979            0 :             0x58000029 => Type::SYSZ_TLS_GD64,
    1980            0 :             0x5800002a => Type::SYSZ_TLS_GOTIE12,
    1981            0 :             0x5800002b => Type::SYSZ_TLS_GOTIE32,
    1982            0 :             0x5800002c => Type::SYSZ_TLS_GOTIE64,
    1983            0 :             0x5800002d => Type::SYSZ_TLS_LDM32,
    1984            0 :             0x5800002e => Type::SYSZ_TLS_LDM64,
    1985            0 :             0x5800002f => Type::SYSZ_TLS_IE32,
    1986            0 :             0x58000030 => Type::SYSZ_TLS_IE64,
    1987            0 :             0x58000031 => Type::SYSZ_TLS_IEENT,
    1988            0 :             0x58000032 => Type::SYSZ_TLS_LE32,
    1989            0 :             0x58000033 => Type::SYSZ_TLS_LE64,
    1990            0 :             0x58000034 => Type::SYSZ_TLS_LDO32,
    1991            0 :             0x58000035 => Type::SYSZ_TLS_LDO64,
    1992            0 :             0x58000036 => Type::SYSZ_TLS_DTPMOD,
    1993            0 :             0x58000037 => Type::SYSZ_TLS_DTPOFF,
    1994            0 :             0x58000038 => Type::SYSZ_TLS_TPOFF,
    1995            0 :             0x58000039 => Type::SYSZ_20,
    1996            0 :             0x5800003a => Type::SYSZ_GOT20,
    1997            0 :             0x5800003b => Type::SYSZ_GOTPLT20,
    1998            0 :             0x5800003c => Type::SYSZ_TLS_GOTIE20,
    1999            0 :             0x5800003d => Type::SYSZ_IRELATIVE,
    2000            0 :             0x60000000 => Type::RISCV_NONE,
    2001            0 :             0x60000001 => Type::RISCV_32,
    2002            0 :             0x60000002 => Type::RISCV_64,
    2003            0 :             0x60000003 => Type::RISCV_RELATIVE,
    2004            0 :             0x60000004 => Type::RISCV_COPY,
    2005            0 :             0x60000005 => Type::RISCV_JUMP_SLOT,
    2006            0 :             0x60000006 => Type::RISCV_TLS_DTPMOD32,
    2007            0 :             0x60000007 => Type::RISCV_TLS_DTPMOD64,
    2008            0 :             0x60000008 => Type::RISCV_TLS_DTPREL32,
    2009            0 :             0x60000009 => Type::RISCV_TLS_DTPREL64,
    2010            0 :             0x6000000a => Type::RISCV_TLS_TPREL32,
    2011            0 :             0x6000000b => Type::RISCV_TLS_TPREL64,
    2012            0 :             0x6000000c => Type::RISCV_TLSDESC,
    2013            0 :             0x60000010 => Type::RISCV_BRANCH,
    2014            0 :             0x60000011 => Type::RISCV_JAL,
    2015            0 :             0x60000012 => Type::RISCV_CALL,
    2016            0 :             0x60000013 => Type::RISCV_CALL_PLT,
    2017            0 :             0x60000014 => Type::RISCV_GOT_HI20,
    2018            0 :             0x60000015 => Type::RISCV_TLS_GOT_HI20,
    2019            0 :             0x60000016 => Type::RISCV_TLS_GD_HI20,
    2020            0 :             0x60000017 => Type::RISCV_PCREL_HI20,
    2021            0 :             0x60000018 => Type::RISCV_PCREL_LO12_I,
    2022            0 :             0x60000019 => Type::RISCV_PCREL_LO12_S,
    2023            0 :             0x6000001a => Type::RISCV_HI20,
    2024            0 :             0x6000001b => Type::RISCV_LO12_I,
    2025            0 :             0x6000001c => Type::RISCV_LO12_S,
    2026            0 :             0x6000001d => Type::RISCV_TPREL_HI20,
    2027            0 :             0x6000001e => Type::RISCV_TPREL_LO12_I,
    2028            0 :             0x6000001f => Type::RISCV_TPREL_LO12_S,
    2029            0 :             0x60000020 => Type::RISCV_TPREL_ADD,
    2030            0 :             0x60000021 => Type::RISCV_ADD8,
    2031            0 :             0x60000022 => Type::RISCV_ADD16,
    2032            0 :             0x60000023 => Type::RISCV_ADD32,
    2033            0 :             0x60000024 => Type::RISCV_ADD64,
    2034            0 :             0x60000025 => Type::RISCV_SUB8,
    2035            0 :             0x60000026 => Type::RISCV_SUB16,
    2036            0 :             0x60000027 => Type::RISCV_SUB32,
    2037            0 :             0x60000028 => Type::RISCV_SUB64,
    2038            0 :             0x60000029 => Type::RISCV_GOT32_PCREL,
    2039            0 :             0x6000002b => Type::RISCV_ALIGN,
    2040            0 :             0x6000002c => Type::RISCV_RVC_BRANCH,
    2041            0 :             0x6000002d => Type::RISCV_RVC_JUMP,
    2042            0 :             0x6000002e => Type::RISCV_RVC_LUI,
    2043            0 :             0x60000033 => Type::RISCV_RELAX,
    2044            0 :             0x60000034 => Type::RISCV_SUB6,
    2045            0 :             0x60000035 => Type::RISCV_SET6,
    2046            0 :             0x60000036 => Type::RISCV_SET8,
    2047            0 :             0x60000037 => Type::RISCV_SET16,
    2048            0 :             0x60000038 => Type::RISCV_SET32,
    2049            0 :             0x60000039 => Type::RISCV_32_PCREL,
    2050            0 :             0x6000003a => Type::RISCV_IRELATIVE,
    2051            0 :             0x6000003b => Type::RISCV_PLT32,
    2052            0 :             0x6000003c => Type::RISCV_SET_ULEB128,
    2053            0 :             0x6000003d => Type::RISCV_SUB_ULEB128,
    2054            0 :             0x6000003e => Type::RISCV_TLSDESC_HI20,
    2055            0 :             0x6000003f => Type::RISCV_TLSDESC_LOAD_LO12,
    2056            0 :             0x60000040 => Type::RISCV_TLSDESC_ADD_LO12,
    2057            0 :             0x60000041 => Type::RISCV_TLSDESC_CALL,
    2058            0 :             0x68000000 => Type::BPF_NONE,
    2059            0 :             0x68000001 => Type::BPF_64_64,
    2060            0 :             0x68000002 => Type::BPF_64_ABS64,
    2061            0 :             0x68000003 => Type::BPF_64_ABS32,
    2062            0 :             0x68000004 => Type::BPF_64_NODYLD32,
    2063            0 :             0x6800000a => Type::BPF_64_32,
    2064            0 :             _ => Type::UNKNOWN(value),
    2065              : 
    2066              :         }
    2067        16200 :     }
    2068              : }
    2069              : 
    2070              : impl From<Type> for u32 {
    2071            0 :     fn from(value: Type) -> u32 {
    2072            0 :         match value {
    2073            0 :             Type::X86_64_NONE => 0x08000000,
    2074            0 :             Type::X86_64_64 => 0x08000001,
    2075            0 :             Type::X86_64_PC32 => 0x08000002,
    2076            0 :             Type::X86_64_GOT32 => 0x08000003,
    2077            0 :             Type::X86_64_PLT32 => 0x08000004,
    2078            0 :             Type::X86_64_COPY => 0x08000005,
    2079            0 :             Type::X86_64_GLOB_DAT => 0x08000006,
    2080            0 :             Type::X86_64_JUMP_SLOT => 0x08000007,
    2081            0 :             Type::X86_64_RELATIVE => 0x08000008,
    2082            0 :             Type::X86_64_GOTPCREL => 0x08000009,
    2083            0 :             Type::X86_64_32 => 0x0800000a,
    2084            0 :             Type::X86_64_32S => 0x0800000b,
    2085            0 :             Type::X86_64_16 => 0x0800000c,
    2086            0 :             Type::X86_64_PC16 => 0x0800000d,
    2087            0 :             Type::X86_64_8 => 0x0800000e,
    2088            0 :             Type::X86_64_PC8 => 0x0800000f,
    2089            0 :             Type::X86_64_DTPMOD64 => 0x08000010,
    2090            0 :             Type::X86_64_DTPOFF64 => 0x08000011,
    2091            0 :             Type::X86_64_TPOFF64 => 0x08000012,
    2092            0 :             Type::X86_64_TLSGD => 0x08000013,
    2093            0 :             Type::X86_64_TLSLD => 0x08000014,
    2094            0 :             Type::X86_64_DTPOFF32 => 0x08000015,
    2095            0 :             Type::X86_64_GOTTPOFF => 0x08000016,
    2096            0 :             Type::X86_64_TPOFF32 => 0x08000017,
    2097            0 :             Type::X86_64_PC64 => 0x08000018,
    2098            0 :             Type::X86_64_GOTOFF64 => 0x08000019,
    2099            0 :             Type::X86_64_GOTPC32 => 0x0800001a,
    2100            0 :             Type::X86_64_GOT64 => 0x0800001b,
    2101            0 :             Type::X86_64_GOTPCREL64 => 0x0800001c,
    2102            0 :             Type::X86_64_GOTPC64 => 0x0800001d,
    2103            0 :             Type::X86_64_GOTPLT64 => 0x0800001e,
    2104            0 :             Type::X86_64_PLTOFF64 => 0x0800001f,
    2105            0 :             Type::X86_64_SIZE32 => 0x08000020,
    2106            0 :             Type::X86_64_SIZE64 => 0x08000021,
    2107            0 :             Type::X86_64_GOTPC32_TLSDESC => 0x08000022,
    2108            0 :             Type::X86_64_TLSDESC_CALL => 0x08000023,
    2109            0 :             Type::X86_64_TLSDESC => 0x08000024,
    2110            0 :             Type::X86_64_IRELATIVE => 0x08000025,
    2111            0 :             Type::X86_64_RELATIVE64 => 0x08000026,
    2112            0 :             Type::X86_64_PC32_BND => 0x08000027,
    2113            0 :             Type::X86_64_PLT32_BND => 0x08000028,
    2114            0 :             Type::X86_64_GOTPCRELX => 0x08000029,
    2115            0 :             Type::X86_64_REX_GOTPCRELX => 0x0800002a,
    2116            0 :             Type::AARCH64_NONE => 0x10000000,
    2117            0 :             Type::AARCH64_ABS64 => 0x10000101,
    2118            0 :             Type::AARCH64_ABS32 => 0x10000102,
    2119            0 :             Type::AARCH64_ABS16 => 0x10000103,
    2120            0 :             Type::AARCH64_PREL64 => 0x10000104,
    2121            0 :             Type::AARCH64_PREL32 => 0x10000105,
    2122            0 :             Type::AARCH64_PREL16 => 0x10000106,
    2123            0 :             Type::AARCH64_MOVW_UABS_G0 => 0x10000107,
    2124            0 :             Type::AARCH64_MOVW_UABS_G0_NC => 0x10000108,
    2125            0 :             Type::AARCH64_MOVW_UABS_G1 => 0x10000109,
    2126            0 :             Type::AARCH64_MOVW_UABS_G1_NC => 0x1000010a,
    2127            0 :             Type::AARCH64_MOVW_UABS_G2 => 0x1000010b,
    2128            0 :             Type::AARCH64_MOVW_UABS_G2_NC => 0x1000010c,
    2129            0 :             Type::AARCH64_MOVW_UABS_G3 => 0x1000010d,
    2130            0 :             Type::AARCH64_MOVW_SABS_G0 => 0x1000010e,
    2131            0 :             Type::AARCH64_MOVW_SABS_G1 => 0x1000010f,
    2132            0 :             Type::AARCH64_MOVW_SABS_G2 => 0x10000110,
    2133            0 :             Type::AARCH64_LD_PREL_LO19 => 0x10000111,
    2134            0 :             Type::AARCH64_ADR_PREL_LO21 => 0x10000112,
    2135            0 :             Type::AARCH64_ADR_PREL_PG_HI21 => 0x10000113,
    2136            0 :             Type::AARCH64_ADR_PREL_PG_HI21_NC => 0x10000114,
    2137            0 :             Type::AARCH64_ADD_ABS_LO12_NC => 0x10000115,
    2138            0 :             Type::AARCH64_LDST8_ABS_LO12_NC => 0x10000116,
    2139            0 :             Type::AARCH64_TSTBR14 => 0x10000117,
    2140            0 :             Type::AARCH64_CONDBR19 => 0x10000118,
    2141            0 :             Type::AARCH64_JUMP26 => 0x1000011a,
    2142            0 :             Type::AARCH64_CALL26 => 0x1000011b,
    2143            0 :             Type::AARCH64_LDST16_ABS_LO12_NC => 0x1000011c,
    2144            0 :             Type::AARCH64_LDST32_ABS_LO12_NC => 0x1000011d,
    2145            0 :             Type::AARCH64_LDST64_ABS_LO12_NC => 0x1000011e,
    2146            0 :             Type::AARCH64_MOVW_PREL_G0 => 0x1000011f,
    2147            0 :             Type::AARCH64_MOVW_PREL_G0_NC => 0x10000120,
    2148            0 :             Type::AARCH64_MOVW_PREL_G1 => 0x10000121,
    2149            0 :             Type::AARCH64_MOVW_PREL_G1_NC => 0x10000122,
    2150            0 :             Type::AARCH64_MOVW_PREL_G2 => 0x10000123,
    2151            0 :             Type::AARCH64_MOVW_PREL_G2_NC => 0x10000124,
    2152            0 :             Type::AARCH64_MOVW_PREL_G3 => 0x10000125,
    2153            0 :             Type::AARCH64_LDST128_ABS_LO12_NC => 0x1000012b,
    2154            0 :             Type::AARCH64_MOVW_GOTOFF_G0 => 0x1000012c,
    2155            0 :             Type::AARCH64_MOVW_GOTOFF_G0_NC => 0x1000012d,
    2156            0 :             Type::AARCH64_MOVW_GOTOFF_G1 => 0x1000012e,
    2157            0 :             Type::AARCH64_MOVW_GOTOFF_G1_NC => 0x1000012f,
    2158            0 :             Type::AARCH64_MOVW_GOTOFF_G2 => 0x10000130,
    2159            0 :             Type::AARCH64_MOVW_GOTOFF_G2_NC => 0x10000131,
    2160            0 :             Type::AARCH64_MOVW_GOTOFF_G3 => 0x10000132,
    2161            0 :             Type::AARCH64_GOTREL64 => 0x10000133,
    2162            0 :             Type::AARCH64_GOTREL32 => 0x10000134,
    2163            0 :             Type::AARCH64_GOT_LD_PREL19 => 0x10000135,
    2164            0 :             Type::AARCH64_LD64_GOTOFF_LO15 => 0x10000136,
    2165            0 :             Type::AARCH64_ADR_GOT_PAGE => 0x10000137,
    2166            0 :             Type::AARCH64_LD64_GOT_LO12_NC => 0x10000138,
    2167            0 :             Type::AARCH64_LD64_GOTPAGE_LO15 => 0x10000139,
    2168            0 :             Type::AARCH64_TLSGD_ADR_PREL21 => 0x10000200,
    2169            0 :             Type::AARCH64_TLSGD_ADR_PAGE21 => 0x10000201,
    2170            0 :             Type::AARCH64_TLSGD_ADD_LO12_NC => 0x10000202,
    2171            0 :             Type::AARCH64_TLSGD_MOVW_G1 => 0x10000203,
    2172            0 :             Type::AARCH64_TLSGD_MOVW_G0_NC => 0x10000204,
    2173            0 :             Type::AARCH64_TLSLD_ADR_PREL21 => 0x10000205,
    2174            0 :             Type::AARCH64_TLSLD_ADR_PAGE21 => 0x10000206,
    2175            0 :             Type::AARCH64_TLSLD_ADD_LO12_NC => 0x10000207,
    2176            0 :             Type::AARCH64_TLSLD_MOVW_G1 => 0x10000208,
    2177            0 :             Type::AARCH64_TLSLD_MOVW_G0_NC => 0x10000209,
    2178            0 :             Type::AARCH64_TLSLD_LD_PREL19 => 0x1000020a,
    2179            0 :             Type::AARCH64_TLSLD_MOVW_DTPREL_G2 => 0x1000020b,
    2180            0 :             Type::AARCH64_TLSLD_MOVW_DTPREL_G1 => 0x1000020c,
    2181            0 :             Type::AARCH64_TLSLD_MOVW_DTPREL_G1_NC => 0x1000020d,
    2182            0 :             Type::AARCH64_TLSLD_MOVW_DTPREL_G0 => 0x1000020e,
    2183            0 :             Type::AARCH64_TLSLD_MOVW_DTPREL_G0_NC => 0x1000020f,
    2184            0 :             Type::AARCH64_TLSLD_ADD_DTPREL_HI12 => 0x10000210,
    2185            0 :             Type::AARCH64_TLSLD_ADD_DTPREL_LO12 => 0x10000211,
    2186            0 :             Type::AARCH64_TLSLD_ADD_DTPREL_LO12_NC => 0x10000212,
    2187            0 :             Type::AARCH64_TLSLD_LDST8_DTPREL_LO12 => 0x10000213,
    2188            0 :             Type::AARCH64_TLSLD_LDST8_DTPREL_LO12_NC => 0x10000214,
    2189            0 :             Type::AARCH64_TLSLD_LDST16_DTPREL_LO12 => 0x10000215,
    2190            0 :             Type::AARCH64_TLSLD_LDST16_DTPREL_LO12_NC => 0x10000216,
    2191            0 :             Type::AARCH64_TLSLD_LDST32_DTPREL_LO12 => 0x10000217,
    2192            0 :             Type::AARCH64_TLSLD_LDST32_DTPREL_LO12_NC => 0x10000218,
    2193            0 :             Type::AARCH64_TLSLD_LDST64_DTPREL_LO12 => 0x10000219,
    2194            0 :             Type::AARCH64_TLSLD_LDST64_DTPREL_LO12_NC => 0x1000021a,
    2195            0 :             Type::AARCH64_TLSIE_MOVW_GOTTPREL_G1 => 0x1000021b,
    2196            0 :             Type::AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC => 0x1000021c,
    2197            0 :             Type::AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 => 0x1000021d,
    2198            0 :             Type::AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC => 0x1000021e,
    2199            0 :             Type::AARCH64_TLSIE_LD_GOTTPREL_PREL19 => 0x1000021f,
    2200            0 :             Type::AARCH64_TLSLE_MOVW_TPREL_G2 => 0x10000220,
    2201            0 :             Type::AARCH64_TLSLE_MOVW_TPREL_G1 => 0x10000221,
    2202            0 :             Type::AARCH64_TLSLE_MOVW_TPREL_G1_NC => 0x10000222,
    2203            0 :             Type::AARCH64_TLSLE_MOVW_TPREL_G0 => 0x10000223,
    2204            0 :             Type::AARCH64_TLSLE_MOVW_TPREL_G0_NC => 0x10000224,
    2205            0 :             Type::AARCH64_TLSLE_ADD_TPREL_HI12 => 0x10000225,
    2206            0 :             Type::AARCH64_TLSLE_ADD_TPREL_LO12 => 0x10000226,
    2207            0 :             Type::AARCH64_TLSLE_ADD_TPREL_LO12_NC => 0x10000227,
    2208            0 :             Type::AARCH64_TLSLE_LDST8_TPREL_LO12 => 0x10000228,
    2209            0 :             Type::AARCH64_TLSLE_LDST8_TPREL_LO12_NC => 0x10000229,
    2210            0 :             Type::AARCH64_TLSLE_LDST16_TPREL_LO12 => 0x1000022a,
    2211            0 :             Type::AARCH64_TLSLE_LDST16_TPREL_LO12_NC => 0x1000022b,
    2212            0 :             Type::AARCH64_TLSLE_LDST32_TPREL_LO12 => 0x1000022c,
    2213            0 :             Type::AARCH64_TLSLE_LDST32_TPREL_LO12_NC => 0x1000022d,
    2214            0 :             Type::AARCH64_TLSLE_LDST64_TPREL_LO12 => 0x1000022e,
    2215            0 :             Type::AARCH64_TLSLE_LDST64_TPREL_LO12_NC => 0x1000022f,
    2216            0 :             Type::AARCH64_TLSDESC_LD_PREL19 => 0x10000230,
    2217            0 :             Type::AARCH64_TLSDESC_ADR_PREL21 => 0x10000231,
    2218            0 :             Type::AARCH64_TLSDESC_ADR_PAGE21 => 0x10000232,
    2219            0 :             Type::AARCH64_TLSDESC_LD64_LO12_NC => 0x10000233,
    2220            0 :             Type::AARCH64_TLSDESC_ADD_LO12_NC => 0x10000234,
    2221            0 :             Type::AARCH64_TLSDESC_OFF_G1 => 0x10000235,
    2222            0 :             Type::AARCH64_TLSDESC_OFF_G0_NC => 0x10000236,
    2223            0 :             Type::AARCH64_TLSDESC_LDR => 0x10000237,
    2224            0 :             Type::AARCH64_TLSDESC_ADD => 0x10000238,
    2225            0 :             Type::AARCH64_TLSDESC_CALL => 0x10000239,
    2226            0 :             Type::AARCH64_TLSLE_LDST128_TPREL_LO12 => 0x1000023a,
    2227            0 :             Type::AARCH64_TLSLE_LDST128_TPREL_LO12_NC => 0x1000023b,
    2228            0 :             Type::AARCH64_TLSLD_LDST128_DTPREL_LO12 => 0x1000023c,
    2229            0 :             Type::AARCH64_TLSLD_LDST128_DTPREL_LO12_NC => 0x1000023d,
    2230            0 :             Type::AARCH64_COPY => 0x10000400,
    2231            0 :             Type::AARCH64_GLOB_DAT => 0x10000401,
    2232            0 :             Type::AARCH64_JUMP_SLOT => 0x10000402,
    2233            0 :             Type::AARCH64_RELATIVE => 0x10000403,
    2234            0 :             Type::AARCH64_TLS_DTPREL64 => 0x10000404,
    2235            0 :             Type::AARCH64_TLS_DTPMOD64 => 0x10000405,
    2236            0 :             Type::AARCH64_TLS_TPREL64 => 0x10000406,
    2237            0 :             Type::AARCH64_TLSDESC => 0x10000407,
    2238            0 :             Type::AARCH64_IRELATIVE => 0x10000408,
    2239            0 :             Type::ARM_NONE => 0x18000000,
    2240            0 :             Type::ARM_PC24 => 0x18000001,
    2241            0 :             Type::ARM_ABS32 => 0x18000002,
    2242            0 :             Type::ARM_REL32 => 0x18000003,
    2243            0 :             Type::ARM_LDR_PC_G0 => 0x18000004,
    2244            0 :             Type::ARM_ABS16 => 0x18000005,
    2245            0 :             Type::ARM_ABS12 => 0x18000006,
    2246            0 :             Type::ARM_THM_ABS5 => 0x18000007,
    2247            0 :             Type::ARM_ABS8 => 0x18000008,
    2248            0 :             Type::ARM_SBREL32 => 0x18000009,
    2249            0 :             Type::ARM_THM_CALL => 0x1800000a,
    2250            0 :             Type::ARM_THM_PC8 => 0x1800000b,
    2251            0 :             Type::ARM_BREL_ADJ => 0x1800000c,
    2252            0 :             Type::ARM_TLS_DESC => 0x1800000d,
    2253            0 :             Type::ARM_THM_SWI8 => 0x1800000e,
    2254            0 :             Type::ARM_XPC25 => 0x1800000f,
    2255            0 :             Type::ARM_THM_XPC22 => 0x18000010,
    2256            0 :             Type::ARM_TLS_DTPMOD32 => 0x18000011,
    2257            0 :             Type::ARM_TLS_DTPOFF32 => 0x18000012,
    2258            0 :             Type::ARM_TLS_TPOFF32 => 0x18000013,
    2259            0 :             Type::ARM_COPY => 0x18000014,
    2260            0 :             Type::ARM_GLOB_DAT => 0x18000015,
    2261            0 :             Type::ARM_JUMP_SLOT => 0x18000016,
    2262            0 :             Type::ARM_RELATIVE => 0x18000017,
    2263            0 :             Type::ARM_GOTOFF32 => 0x18000018,
    2264            0 :             Type::ARM_BASE_PREL => 0x18000019,
    2265            0 :             Type::ARM_GOT_BREL => 0x1800001a,
    2266            0 :             Type::ARM_PLT32 => 0x1800001b,
    2267            0 :             Type::ARM_CALL => 0x1800001c,
    2268            0 :             Type::ARM_JUMP24 => 0x1800001d,
    2269            0 :             Type::ARM_THM_JUMP24 => 0x1800001e,
    2270            0 :             Type::ARM_BASE_ABS => 0x1800001f,
    2271            0 :             Type::ARM_ALU_PCREL_7_0 => 0x18000020,
    2272            0 :             Type::ARM_ALU_PCREL_15_8 => 0x18000021,
    2273            0 :             Type::ARM_ALU_PCREL_23_15 => 0x18000022,
    2274            0 :             Type::ARM_LDR_SBREL_11_0_NC => 0x18000023,
    2275            0 :             Type::ARM_ALU_SBREL_19_12_NC => 0x18000024,
    2276            0 :             Type::ARM_ALU_SBREL_27_20_CK => 0x18000025,
    2277            0 :             Type::ARM_TARGET1 => 0x18000026,
    2278            0 :             Type::ARM_SBREL31 => 0x18000027,
    2279            0 :             Type::ARM_V4BX => 0x18000028,
    2280            0 :             Type::ARM_TARGET2 => 0x18000029,
    2281            0 :             Type::ARM_PREL31 => 0x1800002a,
    2282            0 :             Type::ARM_MOVW_ABS_NC => 0x1800002b,
    2283            0 :             Type::ARM_MOVT_ABS => 0x1800002c,
    2284            0 :             Type::ARM_MOVW_PREL_NC => 0x1800002d,
    2285            0 :             Type::ARM_MOVT_PREL => 0x1800002e,
    2286            0 :             Type::ARM_THM_MOVW_ABS_NC => 0x1800002f,
    2287            0 :             Type::ARM_THM_MOVT_ABS => 0x18000030,
    2288            0 :             Type::ARM_THM_MOVW_PREL_NC => 0x18000031,
    2289            0 :             Type::ARM_THM_MOVT_PREL => 0x18000032,
    2290            0 :             Type::ARM_THM_JUMP19 => 0x18000033,
    2291            0 :             Type::ARM_THM_JUMP6 => 0x18000034,
    2292            0 :             Type::ARM_THM_ALU_PREL_11_0 => 0x18000035,
    2293            0 :             Type::ARM_THM_PC12 => 0x18000036,
    2294            0 :             Type::ARM_ABS32_NOI => 0x18000037,
    2295            0 :             Type::ARM_REL32_NOI => 0x18000038,
    2296            0 :             Type::ARM_ALU_PC_G0_NC => 0x18000039,
    2297            0 :             Type::ARM_ALU_PC_G0 => 0x1800003a,
    2298            0 :             Type::ARM_ALU_PC_G1_NC => 0x1800003b,
    2299            0 :             Type::ARM_ALU_PC_G1 => 0x1800003c,
    2300            0 :             Type::ARM_ALU_PC_G2 => 0x1800003d,
    2301            0 :             Type::ARM_LDR_PC_G1 => 0x1800003e,
    2302            0 :             Type::ARM_LDR_PC_G2 => 0x1800003f,
    2303            0 :             Type::ARM_LDRS_PC_G0 => 0x18000040,
    2304            0 :             Type::ARM_LDRS_PC_G1 => 0x18000041,
    2305            0 :             Type::ARM_LDRS_PC_G2 => 0x18000042,
    2306            0 :             Type::ARM_LDC_PC_G0 => 0x18000043,
    2307            0 :             Type::ARM_LDC_PC_G1 => 0x18000044,
    2308            0 :             Type::ARM_LDC_PC_G2 => 0x18000045,
    2309            0 :             Type::ARM_ALU_SB_G0_NC => 0x18000046,
    2310            0 :             Type::ARM_ALU_SB_G0 => 0x18000047,
    2311            0 :             Type::ARM_ALU_SB_G1_NC => 0x18000048,
    2312            0 :             Type::ARM_ALU_SB_G1 => 0x18000049,
    2313            0 :             Type::ARM_ALU_SB_G2 => 0x1800004a,
    2314            0 :             Type::ARM_LDR_SB_G0 => 0x1800004b,
    2315            0 :             Type::ARM_LDR_SB_G1 => 0x1800004c,
    2316            0 :             Type::ARM_LDR_SB_G2 => 0x1800004d,
    2317            0 :             Type::ARM_LDRS_SB_G0 => 0x1800004e,
    2318            0 :             Type::ARM_LDRS_SB_G1 => 0x1800004f,
    2319            0 :             Type::ARM_LDRS_SB_G2 => 0x18000050,
    2320            0 :             Type::ARM_LDC_SB_G0 => 0x18000051,
    2321            0 :             Type::ARM_LDC_SB_G1 => 0x18000052,
    2322            0 :             Type::ARM_LDC_SB_G2 => 0x18000053,
    2323            0 :             Type::ARM_MOVW_BREL_NC => 0x18000054,
    2324            0 :             Type::ARM_MOVT_BREL => 0x18000055,
    2325            0 :             Type::ARM_MOVW_BREL => 0x18000056,
    2326            0 :             Type::ARM_THM_MOVW_BREL_NC => 0x18000057,
    2327            0 :             Type::ARM_THM_MOVT_BREL => 0x18000058,
    2328            0 :             Type::ARM_THM_MOVW_BREL => 0x18000059,
    2329            0 :             Type::ARM_TLS_GOTDESC => 0x1800005a,
    2330            0 :             Type::ARM_TLS_CALL => 0x1800005b,
    2331            0 :             Type::ARM_TLS_DESCSEQ => 0x1800005c,
    2332            0 :             Type::ARM_THM_TLS_CALL => 0x1800005d,
    2333            0 :             Type::ARM_PLT32_ABS => 0x1800005e,
    2334            0 :             Type::ARM_GOT_ABS => 0x1800005f,
    2335            0 :             Type::ARM_GOT_PREL => 0x18000060,
    2336            0 :             Type::ARM_GOT_BREL12 => 0x18000061,
    2337            0 :             Type::ARM_GOTOFF12 => 0x18000062,
    2338            0 :             Type::ARM_GOTRELAX => 0x18000063,
    2339            0 :             Type::ARM_GNU_VTENTRY => 0x18000064,
    2340            0 :             Type::ARM_GNU_VTINHERIT => 0x18000065,
    2341            0 :             Type::ARM_THM_JUMP11 => 0x18000066,
    2342            0 :             Type::ARM_THM_JUMP8 => 0x18000067,
    2343            0 :             Type::ARM_TLS_GD32 => 0x18000068,
    2344            0 :             Type::ARM_TLS_LDM32 => 0x18000069,
    2345            0 :             Type::ARM_TLS_LDO32 => 0x1800006a,
    2346            0 :             Type::ARM_TLS_IE32 => 0x1800006b,
    2347            0 :             Type::ARM_TLS_LE32 => 0x1800006c,
    2348            0 :             Type::ARM_TLS_LDO12 => 0x1800006d,
    2349            0 :             Type::ARM_TLS_LE12 => 0x1800006e,
    2350            0 :             Type::ARM_TLS_IE12GP => 0x1800006f,
    2351            0 :             Type::ARM_PRIVATE_0 => 0x18000070,
    2352            0 :             Type::ARM_PRIVATE_1 => 0x18000071,
    2353            0 :             Type::ARM_PRIVATE_2 => 0x18000072,
    2354            0 :             Type::ARM_PRIVATE_3 => 0x18000073,
    2355            0 :             Type::ARM_PRIVATE_4 => 0x18000074,
    2356            0 :             Type::ARM_PRIVATE_5 => 0x18000075,
    2357            0 :             Type::ARM_PRIVATE_6 => 0x18000076,
    2358            0 :             Type::ARM_PRIVATE_7 => 0x18000077,
    2359            0 :             Type::ARM_PRIVATE_8 => 0x18000078,
    2360            0 :             Type::ARM_PRIVATE_9 => 0x18000079,
    2361            0 :             Type::ARM_PRIVATE_10 => 0x1800007a,
    2362            0 :             Type::ARM_PRIVATE_11 => 0x1800007b,
    2363            0 :             Type::ARM_PRIVATE_12 => 0x1800007c,
    2364            0 :             Type::ARM_PRIVATE_13 => 0x1800007d,
    2365            0 :             Type::ARM_PRIVATE_14 => 0x1800007e,
    2366            0 :             Type::ARM_PRIVATE_15 => 0x1800007f,
    2367            0 :             Type::ARM_ME_TOO => 0x18000080,
    2368            0 :             Type::ARM_THM_TLS_DESCSEQ16 => 0x18000081,
    2369            0 :             Type::ARM_THM_TLS_DESCSEQ32 => 0x18000082,
    2370            0 :             Type::ARM_IRELATIVE => 0x180000a0,
    2371            0 :             Type::ARM_RXPC25 => 0x180000f9,
    2372            0 :             Type::ARM_RSBREL32 => 0x180000fa,
    2373            0 :             Type::ARM_THM_RPC22 => 0x180000fb,
    2374            0 :             Type::ARM_RREL32 => 0x180000fc,
    2375            0 :             Type::ARM_RPC24 => 0x180000fd,
    2376            0 :             Type::ARM_RBASE => 0x180000fe,
    2377            0 :             Type::HEX_NONE => 0x20000000,
    2378            0 :             Type::HEX_B22_PCREL => 0x20000001,
    2379            0 :             Type::HEX_B15_PCREL => 0x20000002,
    2380            0 :             Type::HEX_B7_PCREL => 0x20000003,
    2381            0 :             Type::HEX_LO16 => 0x20000004,
    2382            0 :             Type::HEX_HI16 => 0x20000005,
    2383            0 :             Type::HEX_32 => 0x20000006,
    2384            0 :             Type::HEX_16 => 0x20000007,
    2385            0 :             Type::HEX_8 => 0x20000008,
    2386            0 :             Type::HEX_GPREL16_0 => 0x20000009,
    2387            0 :             Type::HEX_GPREL16_1 => 0x2000000a,
    2388            0 :             Type::HEX_GPREL16_2 => 0x2000000b,
    2389            0 :             Type::HEX_GPREL16_3 => 0x2000000c,
    2390            0 :             Type::HEX_HL16 => 0x2000000d,
    2391            0 :             Type::HEX_B13_PCREL => 0x2000000e,
    2392            0 :             Type::HEX_B9_PCREL => 0x2000000f,
    2393            0 :             Type::HEX_B32_PCREL_X => 0x20000010,
    2394            0 :             Type::HEX_32_6_X => 0x20000011,
    2395            0 :             Type::HEX_B22_PCREL_X => 0x20000012,
    2396            0 :             Type::HEX_B15_PCREL_X => 0x20000013,
    2397            0 :             Type::HEX_B13_PCREL_X => 0x20000014,
    2398            0 :             Type::HEX_B9_PCREL_X => 0x20000015,
    2399            0 :             Type::HEX_B7_PCREL_X => 0x20000016,
    2400            0 :             Type::HEX_16_X => 0x20000017,
    2401            0 :             Type::HEX_12_X => 0x20000018,
    2402            0 :             Type::HEX_11_X => 0x20000019,
    2403            0 :             Type::HEX_10_X => 0x2000001a,
    2404            0 :             Type::HEX_9_X => 0x2000001b,
    2405            0 :             Type::HEX_8_X => 0x2000001c,
    2406            0 :             Type::HEX_7_X => 0x2000001d,
    2407            0 :             Type::HEX_6_X => 0x2000001e,
    2408            0 :             Type::HEX_32_PCREL => 0x2000001f,
    2409            0 :             Type::HEX_COPY => 0x20000020,
    2410            0 :             Type::HEX_GLOB_DAT => 0x20000021,
    2411            0 :             Type::HEX_JMP_SLOT => 0x20000022,
    2412            0 :             Type::HEX_RELATIVE => 0x20000023,
    2413            0 :             Type::HEX_PLT_B22_PCREL => 0x20000024,
    2414            0 :             Type::HEX_GOTREL_LO16 => 0x20000025,
    2415            0 :             Type::HEX_GOTREL_HI16 => 0x20000026,
    2416            0 :             Type::HEX_GOTREL_32 => 0x20000027,
    2417            0 :             Type::HEX_GOT_LO16 => 0x20000028,
    2418            0 :             Type::HEX_GOT_HI16 => 0x20000029,
    2419            0 :             Type::HEX_GOT_32 => 0x2000002a,
    2420            0 :             Type::HEX_GOT_16 => 0x2000002b,
    2421            0 :             Type::HEX_DTPMOD_32 => 0x2000002c,
    2422            0 :             Type::HEX_DTPREL_LO16 => 0x2000002d,
    2423            0 :             Type::HEX_DTPREL_HI16 => 0x2000002e,
    2424            0 :             Type::HEX_DTPREL_32 => 0x2000002f,
    2425            0 :             Type::HEX_DTPREL_16 => 0x20000030,
    2426            0 :             Type::HEX_GD_PLT_B22_PCREL => 0x20000031,
    2427            0 :             Type::HEX_GD_GOT_LO16 => 0x20000032,
    2428            0 :             Type::HEX_GD_GOT_HI16 => 0x20000033,
    2429            0 :             Type::HEX_GD_GOT_32 => 0x20000034,
    2430            0 :             Type::HEX_GD_GOT_16 => 0x20000035,
    2431            0 :             Type::HEX_IE_LO16 => 0x20000036,
    2432            0 :             Type::HEX_IE_HI16 => 0x20000037,
    2433            0 :             Type::HEX_IE_32 => 0x20000038,
    2434            0 :             Type::HEX_IE_GOT_LO16 => 0x20000039,
    2435            0 :             Type::HEX_IE_GOT_HI16 => 0x2000003a,
    2436            0 :             Type::HEX_IE_GOT_32 => 0x2000003b,
    2437            0 :             Type::HEX_IE_GOT_16 => 0x2000003c,
    2438            0 :             Type::HEX_TPREL_LO16 => 0x2000003d,
    2439            0 :             Type::HEX_TPREL_HI16 => 0x2000003e,
    2440            0 :             Type::HEX_TPREL_32 => 0x2000003f,
    2441            0 :             Type::HEX_TPREL_16 => 0x20000040,
    2442            0 :             Type::HEX_6_PCREL_X => 0x20000041,
    2443            0 :             Type::HEX_GOTREL_32_6_X => 0x20000042,
    2444            0 :             Type::HEX_GOTREL_16_X => 0x20000043,
    2445            0 :             Type::HEX_GOTREL_11_X => 0x20000044,
    2446            0 :             Type::HEX_GOT_32_6_X => 0x20000045,
    2447            0 :             Type::HEX_GOT_16_X => 0x20000046,
    2448            0 :             Type::HEX_GOT_11_X => 0x20000047,
    2449            0 :             Type::HEX_DTPREL_32_6_X => 0x20000048,
    2450            0 :             Type::HEX_DTPREL_16_X => 0x20000049,
    2451            0 :             Type::HEX_DTPREL_11_X => 0x2000004a,
    2452            0 :             Type::HEX_GD_GOT_32_6_X => 0x2000004b,
    2453            0 :             Type::HEX_GD_GOT_16_X => 0x2000004c,
    2454            0 :             Type::HEX_GD_GOT_11_X => 0x2000004d,
    2455            0 :             Type::HEX_IE_32_6_X => 0x2000004e,
    2456            0 :             Type::HEX_IE_16_X => 0x2000004f,
    2457            0 :             Type::HEX_IE_GOT_32_6_X => 0x20000050,
    2458            0 :             Type::HEX_IE_GOT_16_X => 0x20000051,
    2459            0 :             Type::HEX_IE_GOT_11_X => 0x20000052,
    2460            0 :             Type::HEX_TPREL_32_6_X => 0x20000053,
    2461            0 :             Type::HEX_TPREL_16_X => 0x20000054,
    2462            0 :             Type::HEX_TPREL_11_X => 0x20000055,
    2463            0 :             Type::HEX_LD_PLT_B22_PCREL => 0x20000056,
    2464            0 :             Type::HEX_LD_GOT_LO16 => 0x20000057,
    2465            0 :             Type::HEX_LD_GOT_HI16 => 0x20000058,
    2466            0 :             Type::HEX_LD_GOT_32 => 0x20000059,
    2467            0 :             Type::HEX_LD_GOT_16 => 0x2000005a,
    2468            0 :             Type::HEX_LD_GOT_32_6_X => 0x2000005b,
    2469            0 :             Type::HEX_LD_GOT_16_X => 0x2000005c,
    2470            0 :             Type::HEX_LD_GOT_11_X => 0x2000005d,
    2471            0 :             Type::X86_NONE => 0x28000000,
    2472            0 :             Type::X86_32 => 0x28000001,
    2473            0 :             Type::X86_PC32 => 0x28000002,
    2474            0 :             Type::X86_GOT32 => 0x28000003,
    2475            0 :             Type::X86_PLT32 => 0x28000004,
    2476            0 :             Type::X86_COPY => 0x28000005,
    2477            0 :             Type::X86_GLOB_DAT => 0x28000006,
    2478            0 :             Type::X86_JUMP_SLOT => 0x28000007,
    2479            0 :             Type::X86_RELATIVE => 0x28000008,
    2480            0 :             Type::X86_GOTOFF => 0x28000009,
    2481            0 :             Type::X86_GOTPC => 0x2800000a,
    2482            0 :             Type::X86_32PLT => 0x2800000b,
    2483            0 :             Type::X86_TLS_TPOFF => 0x2800000e,
    2484            0 :             Type::X86_TLS_IE => 0x2800000f,
    2485            0 :             Type::X86_TLS_GOTIE => 0x28000010,
    2486            0 :             Type::X86_TLS_LE => 0x28000011,
    2487            0 :             Type::X86_TLS_GD => 0x28000012,
    2488            0 :             Type::X86_TLS_LDM => 0x28000013,
    2489            0 :             Type::X86_16 => 0x28000014,
    2490            0 :             Type::X86_PC16 => 0x28000015,
    2491            0 :             Type::X86_8 => 0x28000016,
    2492            0 :             Type::X86_PC8 => 0x28000017,
    2493            0 :             Type::X86_TLS_GD_32 => 0x28000018,
    2494            0 :             Type::X86_TLS_GD_PUSH => 0x28000019,
    2495            0 :             Type::X86_TLS_GD_CALL => 0x2800001a,
    2496            0 :             Type::X86_TLS_GD_POP => 0x2800001b,
    2497            0 :             Type::X86_TLS_LDM_32 => 0x2800001c,
    2498            0 :             Type::X86_TLS_LDM_PUSH => 0x2800001d,
    2499            0 :             Type::X86_TLS_LDM_CALL => 0x2800001e,
    2500            0 :             Type::X86_TLS_LDM_POP => 0x2800001f,
    2501            0 :             Type::X86_TLS_LDO_32 => 0x28000020,
    2502            0 :             Type::X86_TLS_IE_32 => 0x28000021,
    2503            0 :             Type::X86_TLS_LE_32 => 0x28000022,
    2504            0 :             Type::X86_TLS_DTPMOD32 => 0x28000023,
    2505            0 :             Type::X86_TLS_DTPOFF32 => 0x28000024,
    2506            0 :             Type::X86_TLS_TPOFF32 => 0x28000025,
    2507            0 :             Type::X86_TLS_GOTDESC => 0x28000027,
    2508            0 :             Type::X86_TLS_DESC_CALL => 0x28000028,
    2509            0 :             Type::X86_TLS_DESC => 0x28000029,
    2510            0 :             Type::X86_IRELATIVE => 0x2800002a,
    2511            0 :             Type::LARCH_NONE => 0x30000000,
    2512            0 :             Type::LARCH_32 => 0x30000001,
    2513            0 :             Type::LARCH_64 => 0x30000002,
    2514            0 :             Type::LARCH_RELATIVE => 0x30000003,
    2515            0 :             Type::LARCH_COPY => 0x30000004,
    2516            0 :             Type::LARCH_JUMP_SLOT => 0x30000005,
    2517            0 :             Type::LARCH_TLS_DTPMOD32 => 0x30000006,
    2518            0 :             Type::LARCH_TLS_DTPMOD64 => 0x30000007,
    2519            0 :             Type::LARCH_TLS_DTPREL32 => 0x30000008,
    2520            0 :             Type::LARCH_TLS_DTPREL64 => 0x30000009,
    2521            0 :             Type::LARCH_TLS_TPREL32 => 0x3000000a,
    2522            0 :             Type::LARCH_TLS_TPREL64 => 0x3000000b,
    2523            0 :             Type::LARCH_IRELATIVE => 0x3000000c,
    2524            0 :             Type::LARCH_MARK_LA => 0x30000014,
    2525            0 :             Type::LARCH_MARK_PCREL => 0x30000015,
    2526            0 :             Type::LARCH_SOP_PUSH_PCREL => 0x30000016,
    2527            0 :             Type::LARCH_SOP_PUSH_ABSOLUTE => 0x30000017,
    2528            0 :             Type::LARCH_SOP_PUSH_DUP => 0x30000018,
    2529            0 :             Type::LARCH_SOP_PUSH_GPREL => 0x30000019,
    2530            0 :             Type::LARCH_SOP_PUSH_TLS_TPREL => 0x3000001a,
    2531            0 :             Type::LARCH_SOP_PUSH_TLS_GOT => 0x3000001b,
    2532            0 :             Type::LARCH_SOP_PUSH_TLS_GD => 0x3000001c,
    2533            0 :             Type::LARCH_SOP_PUSH_PLT_PCREL => 0x3000001d,
    2534            0 :             Type::LARCH_SOP_ASSERT => 0x3000001e,
    2535            0 :             Type::LARCH_SOP_NOT => 0x3000001f,
    2536            0 :             Type::LARCH_SOP_SUB => 0x30000020,
    2537            0 :             Type::LARCH_SOP_SL => 0x30000021,
    2538            0 :             Type::LARCH_SOP_SR => 0x30000022,
    2539            0 :             Type::LARCH_SOP_ADD => 0x30000023,
    2540            0 :             Type::LARCH_SOP_AND => 0x30000024,
    2541            0 :             Type::LARCH_SOP_IF_ELSE => 0x30000025,
    2542            0 :             Type::LARCH_SOP_POP_32_S_10_5 => 0x30000026,
    2543            0 :             Type::LARCH_SOP_POP_32_U_10_12 => 0x30000027,
    2544            0 :             Type::LARCH_SOP_POP_32_S_10_12 => 0x30000028,
    2545            0 :             Type::LARCH_SOP_POP_32_S_10_16 => 0x30000029,
    2546            0 :             Type::LARCH_SOP_POP_32_S_10_16_S2 => 0x3000002a,
    2547            0 :             Type::LARCH_SOP_POP_32_S_5_20 => 0x3000002b,
    2548            0 :             Type::LARCH_SOP_POP_32_S_0_5_10_16_S2 => 0x3000002c,
    2549            0 :             Type::LARCH_SOP_POP_32_S_0_10_10_16_S2 => 0x3000002d,
    2550            0 :             Type::LARCH_SOP_POP_32_U => 0x3000002e,
    2551            0 :             Type::LARCH_ADD8 => 0x3000002f,
    2552            0 :             Type::LARCH_ADD16 => 0x30000030,
    2553            0 :             Type::LARCH_ADD24 => 0x30000031,
    2554            0 :             Type::LARCH_ADD32 => 0x30000032,
    2555            0 :             Type::LARCH_ADD64 => 0x30000033,
    2556            0 :             Type::LARCH_SUB8 => 0x30000034,
    2557            0 :             Type::LARCH_SUB16 => 0x30000035,
    2558            0 :             Type::LARCH_SUB24 => 0x30000036,
    2559            0 :             Type::LARCH_SUB32 => 0x30000037,
    2560            0 :             Type::LARCH_SUB64 => 0x30000038,
    2561            0 :             Type::LARCH_GNU_VTINHERIT => 0x30000039,
    2562            0 :             Type::LARCH_GNU_VTENTRY => 0x3000003a,
    2563            0 :             Type::LARCH_B16 => 0x30000040,
    2564            0 :             Type::LARCH_B21 => 0x30000041,
    2565            0 :             Type::LARCH_B26 => 0x30000042,
    2566            0 :             Type::LARCH_ABS_HI20 => 0x30000043,
    2567            0 :             Type::LARCH_ABS_LO12 => 0x30000044,
    2568            0 :             Type::LARCH_ABS64_LO20 => 0x30000045,
    2569            0 :             Type::LARCH_ABS64_HI12 => 0x30000046,
    2570            0 :             Type::LARCH_PCALA_HI20 => 0x30000047,
    2571            0 :             Type::LARCH_PCALA_LO12 => 0x30000048,
    2572            0 :             Type::LARCH_PCALA64_LO20 => 0x30000049,
    2573            0 :             Type::LARCH_PCALA64_HI12 => 0x3000004a,
    2574            0 :             Type::LARCH_GOT_PC_HI20 => 0x3000004b,
    2575            0 :             Type::LARCH_GOT_PC_LO12 => 0x3000004c,
    2576            0 :             Type::LARCH_GOT64_PC_LO20 => 0x3000004d,
    2577            0 :             Type::LARCH_GOT64_PC_HI12 => 0x3000004e,
    2578            0 :             Type::LARCH_GOT_HI20 => 0x3000004f,
    2579            0 :             Type::LARCH_GOT_LO12 => 0x30000050,
    2580            0 :             Type::LARCH_GOT64_LO20 => 0x30000051,
    2581            0 :             Type::LARCH_GOT64_HI12 => 0x30000052,
    2582            0 :             Type::LARCH_TLS_LE_HI20 => 0x30000053,
    2583            0 :             Type::LARCH_TLS_LE_LO12 => 0x30000054,
    2584            0 :             Type::LARCH_TLS_LE64_LO20 => 0x30000055,
    2585            0 :             Type::LARCH_TLS_LE64_HI12 => 0x30000056,
    2586            0 :             Type::LARCH_TLS_IE_PC_HI20 => 0x30000057,
    2587            0 :             Type::LARCH_TLS_IE_PC_LO12 => 0x30000058,
    2588            0 :             Type::LARCH_TLS_IE64_PC_LO20 => 0x30000059,
    2589            0 :             Type::LARCH_TLS_IE64_PC_HI12 => 0x3000005a,
    2590            0 :             Type::LARCH_TLS_IE_HI20 => 0x3000005b,
    2591            0 :             Type::LARCH_TLS_IE_LO12 => 0x3000005c,
    2592            0 :             Type::LARCH_TLS_IE64_LO20 => 0x3000005d,
    2593            0 :             Type::LARCH_TLS_IE64_HI12 => 0x3000005e,
    2594            0 :             Type::LARCH_TLS_LD_PC_HI20 => 0x3000005f,
    2595            0 :             Type::LARCH_TLS_LD_HI20 => 0x30000060,
    2596            0 :             Type::LARCH_TLS_GD_PC_HI20 => 0x30000061,
    2597            0 :             Type::LARCH_TLS_GD_HI20 => 0x30000062,
    2598            0 :             Type::LARCH_32_PCREL => 0x30000063,
    2599            0 :             Type::LARCH_RELAX => 0x30000064,
    2600            0 :             Type::LARCH_ALIGN => 0x30000066,
    2601            0 :             Type::LARCH_PCREL20_S2 => 0x30000067,
    2602            0 :             Type::LARCH_ADD6 => 0x30000069,
    2603            0 :             Type::LARCH_SUB6 => 0x3000006a,
    2604            0 :             Type::LARCH_ADD_ULEB128 => 0x3000006b,
    2605            0 :             Type::LARCH_SUB_ULEB128 => 0x3000006c,
    2606            0 :             Type::LARCH_64_PCREL => 0x3000006d,
    2607            0 :             Type::LARCH_CALL36 => 0x3000006e,
    2608            0 :             Type::LARCH_TLS_DESC32 => 0x3000000d,
    2609            0 :             Type::LARCH_TLS_DESC64 => 0x3000000e,
    2610            0 :             Type::LARCH_TLS_DESC_PC_HI20 => 0x3000006f,
    2611            0 :             Type::LARCH_TLS_DESC_PC_LO12 => 0x30000070,
    2612            0 :             Type::LARCH_TLS_DESC64_PC_LO20 => 0x30000071,
    2613            0 :             Type::LARCH_TLS_DESC64_PC_HI12 => 0x30000072,
    2614            0 :             Type::LARCH_TLS_DESC_HI20 => 0x30000073,
    2615            0 :             Type::LARCH_TLS_DESC_LO12 => 0x30000074,
    2616            0 :             Type::LARCH_TLS_DESC64_LO20 => 0x30000075,
    2617            0 :             Type::LARCH_TLS_DESC64_HI12 => 0x30000076,
    2618            0 :             Type::LARCH_TLS_DESC_LD => 0x30000077,
    2619            0 :             Type::LARCH_TLS_DESC_CALL => 0x30000078,
    2620            0 :             Type::LARCH_TLS_LE_HI20_R => 0x30000079,
    2621            0 :             Type::LARCH_TLS_LE_ADD_R => 0x3000007a,
    2622            0 :             Type::LARCH_TLS_LE_LO12_R => 0x3000007b,
    2623            0 :             Type::LARCH_TLS_LD_PCREL20_S2 => 0x3000007c,
    2624            0 :             Type::LARCH_TLS_GD_PCREL20_S2 => 0x3000007d,
    2625            0 :             Type::LARCH_TLS_DESC_PCREL20_S2 => 0x3000007e,
    2626            0 :             Type::MIPS_NONE => 0x38000000,
    2627            0 :             Type::MIPS_16 => 0x38000001,
    2628            0 :             Type::MIPS_32 => 0x38000002,
    2629            0 :             Type::MIPS_REL32 => 0x38000003,
    2630            0 :             Type::MIPS_26 => 0x38000004,
    2631            0 :             Type::MIPS_HI16 => 0x38000005,
    2632            0 :             Type::MIPS_LO16 => 0x38000006,
    2633            0 :             Type::MIPS_GPREL16 => 0x38000007,
    2634            0 :             Type::MIPS_LITERAL => 0x38000008,
    2635            0 :             Type::MIPS_GOT16 => 0x38000009,
    2636            0 :             Type::MIPS_PC16 => 0x3800000a,
    2637            0 :             Type::MIPS_CALL16 => 0x3800000b,
    2638            0 :             Type::MIPS_GPREL32 => 0x3800000c,
    2639            0 :             Type::MIPS_UNUSED1 => 0x3800000d,
    2640            0 :             Type::MIPS_UNUSED2 => 0x3800000e,
    2641            0 :             Type::MIPS_UNUSED3 => 0x3800000f,
    2642            0 :             Type::MIPS_SHIFT5 => 0x38000010,
    2643            0 :             Type::MIPS_SHIFT6 => 0x38000011,
    2644            0 :             Type::MIPS_64 => 0x38000012,
    2645            0 :             Type::MIPS_GOT_DISP => 0x38000013,
    2646            0 :             Type::MIPS_GOT_PAGE => 0x38000014,
    2647            0 :             Type::MIPS_GOT_OFST => 0x38000015,
    2648            0 :             Type::MIPS_GOT_HI16 => 0x38000016,
    2649            0 :             Type::MIPS_GOT_LO16 => 0x38000017,
    2650            0 :             Type::MIPS_SUB => 0x38000018,
    2651            0 :             Type::MIPS_INSERT_A => 0x38000019,
    2652            0 :             Type::MIPS_INSERT_B => 0x3800001a,
    2653            0 :             Type::MIPS_DELETE => 0x3800001b,
    2654            0 :             Type::MIPS_HIGHER => 0x3800001c,
    2655            0 :             Type::MIPS_HIGHEST => 0x3800001d,
    2656            0 :             Type::MIPS_CALL_HI16 => 0x3800001e,
    2657            0 :             Type::MIPS_CALL_LO16 => 0x3800001f,
    2658            0 :             Type::MIPS_SCN_DISP => 0x38000020,
    2659            0 :             Type::MIPS_REL16 => 0x38000021,
    2660            0 :             Type::MIPS_ADD_IMMEDIATE => 0x38000022,
    2661            0 :             Type::MIPS_PJUMP => 0x38000023,
    2662            0 :             Type::MIPS_RELGOT => 0x38000024,
    2663            0 :             Type::MIPS_JALR => 0x38000025,
    2664            0 :             Type::MIPS_TLS_DTPMOD32 => 0x38000026,
    2665            0 :             Type::MIPS_TLS_DTPREL32 => 0x38000027,
    2666            0 :             Type::MIPS_TLS_DTPMOD64 => 0x38000028,
    2667            0 :             Type::MIPS_TLS_DTPREL64 => 0x38000029,
    2668            0 :             Type::MIPS_TLS_GD => 0x3800002a,
    2669            0 :             Type::MIPS_TLS_LDM => 0x3800002b,
    2670            0 :             Type::MIPS_TLS_DTPREL_HI16 => 0x3800002c,
    2671            0 :             Type::MIPS_TLS_DTPREL_LO16 => 0x3800002d,
    2672            0 :             Type::MIPS_TLS_GOTTPREL => 0x3800002e,
    2673            0 :             Type::MIPS_TLS_TPREL32 => 0x3800002f,
    2674            0 :             Type::MIPS_TLS_TPREL64 => 0x38000030,
    2675            0 :             Type::MIPS_TLS_TPREL_HI16 => 0x38000031,
    2676            0 :             Type::MIPS_TLS_TPREL_LO16 => 0x38000032,
    2677            0 :             Type::MIPS_GLOB_DAT => 0x38000033,
    2678            0 :             Type::MIPS_PC21_S2 => 0x3800003c,
    2679            0 :             Type::MIPS_PC26_S2 => 0x3800003d,
    2680            0 :             Type::MIPS_PC18_S3 => 0x3800003e,
    2681            0 :             Type::MIPS_PC19_S2 => 0x3800003f,
    2682            0 :             Type::MIPS_PCHI16 => 0x38000040,
    2683            0 :             Type::MIPS_PCLO16 => 0x38000041,
    2684            0 :             Type::MIPS16_26 => 0x38000064,
    2685            0 :             Type::MIPS16_GPREL => 0x38000065,
    2686            0 :             Type::MIPS16_GOT16 => 0x38000066,
    2687            0 :             Type::MIPS16_CALL16 => 0x38000067,
    2688            0 :             Type::MIPS16_HI16 => 0x38000068,
    2689            0 :             Type::MIPS16_LO16 => 0x38000069,
    2690            0 :             Type::MIPS16_TLS_GD => 0x3800006a,
    2691            0 :             Type::MIPS16_TLS_LDM => 0x3800006b,
    2692            0 :             Type::MIPS16_TLS_DTPREL_HI16 => 0x3800006c,
    2693            0 :             Type::MIPS16_TLS_DTPREL_LO16 => 0x3800006d,
    2694            0 :             Type::MIPS16_TLS_GOTTPREL => 0x3800006e,
    2695            0 :             Type::MIPS16_TLS_TPREL_HI16 => 0x3800006f,
    2696            0 :             Type::MIPS16_TLS_TPREL_LO16 => 0x38000070,
    2697            0 :             Type::MIPS_COPY => 0x3800007e,
    2698            0 :             Type::MIPS_JUMP_SLOT => 0x3800007f,
    2699            0 :             Type::MICROMIPS_26_S1 => 0x38000085,
    2700            0 :             Type::MICROMIPS_HI16 => 0x38000086,
    2701            0 :             Type::MICROMIPS_LO16 => 0x38000087,
    2702            0 :             Type::MICROMIPS_GPREL16 => 0x38000088,
    2703            0 :             Type::MICROMIPS_LITERAL => 0x38000089,
    2704            0 :             Type::MICROMIPS_GOT16 => 0x3800008a,
    2705            0 :             Type::MICROMIPS_PC7_S1 => 0x3800008b,
    2706            0 :             Type::MICROMIPS_PC10_S1 => 0x3800008c,
    2707            0 :             Type::MICROMIPS_PC16_S1 => 0x3800008d,
    2708            0 :             Type::MICROMIPS_CALL16 => 0x3800008e,
    2709            0 :             Type::MICROMIPS_GOT_DISP => 0x38000091,
    2710            0 :             Type::MICROMIPS_GOT_PAGE => 0x38000092,
    2711            0 :             Type::MICROMIPS_GOT_OFST => 0x38000093,
    2712            0 :             Type::MICROMIPS_GOT_HI16 => 0x38000094,
    2713            0 :             Type::MICROMIPS_GOT_LO16 => 0x38000095,
    2714            0 :             Type::MICROMIPS_SUB => 0x38000096,
    2715            0 :             Type::MICROMIPS_HIGHER => 0x38000097,
    2716            0 :             Type::MICROMIPS_HIGHEST => 0x38000098,
    2717            0 :             Type::MICROMIPS_CALL_HI16 => 0x38000099,
    2718            0 :             Type::MICROMIPS_CALL_LO16 => 0x3800009a,
    2719            0 :             Type::MICROMIPS_SCN_DISP => 0x3800009b,
    2720            0 :             Type::MICROMIPS_JALR => 0x3800009c,
    2721            0 :             Type::MICROMIPS_HI0_LO16 => 0x3800009d,
    2722            0 :             Type::MICROMIPS_TLS_GD => 0x380000a2,
    2723            0 :             Type::MICROMIPS_TLS_LDM => 0x380000a3,
    2724            0 :             Type::MICROMIPS_TLS_DTPREL_HI16 => 0x380000a4,
    2725            0 :             Type::MICROMIPS_TLS_DTPREL_LO16 => 0x380000a5,
    2726            0 :             Type::MICROMIPS_TLS_GOTTPREL => 0x380000a6,
    2727            0 :             Type::MICROMIPS_TLS_TPREL_HI16 => 0x380000a9,
    2728            0 :             Type::MICROMIPS_TLS_TPREL_LO16 => 0x380000aa,
    2729            0 :             Type::MICROMIPS_GPREL7_S2 => 0x380000ac,
    2730            0 :             Type::MICROMIPS_PC23_S2 => 0x380000ad,
    2731            0 :             Type::MICROMIPS_PC21_S2 => 0x380000ae,
    2732            0 :             Type::MICROMIPS_PC26_S2 => 0x380000af,
    2733            0 :             Type::MICROMIPS_PC18_S3 => 0x380000b0,
    2734            0 :             Type::MICROMIPS_PC19_S2 => 0x380000b1,
    2735            0 :             Type::MIPS_NUM => 0x380000da,
    2736            0 :             Type::MIPS_PC32 => 0x380000f8,
    2737            0 :             Type::MIPS_EH => 0x380000f9,
    2738            0 :             Type::PPC_NONE => 0x40000000,
    2739            0 :             Type::PPC_ADDR32 => 0x40000001,
    2740            0 :             Type::PPC_ADDR24 => 0x40000002,
    2741            0 :             Type::PPC_ADDR16 => 0x40000003,
    2742            0 :             Type::PPC_ADDR16_LO => 0x40000004,
    2743            0 :             Type::PPC_ADDR16_HI => 0x40000005,
    2744            0 :             Type::PPC_ADDR16_HA => 0x40000006,
    2745            0 :             Type::PPC_ADDR14 => 0x40000007,
    2746            0 :             Type::PPC_ADDR14_BRTAKEN => 0x40000008,
    2747            0 :             Type::PPC_ADDR14_BRNTAKEN => 0x40000009,
    2748            0 :             Type::PPC_REL24 => 0x4000000a,
    2749            0 :             Type::PPC_REL14 => 0x4000000b,
    2750            0 :             Type::PPC_REL14_BRTAKEN => 0x4000000c,
    2751            0 :             Type::PPC_REL14_BRNTAKEN => 0x4000000d,
    2752            0 :             Type::PPC_GOT16 => 0x4000000e,
    2753            0 :             Type::PPC_GOT16_LO => 0x4000000f,
    2754            0 :             Type::PPC_GOT16_HI => 0x40000010,
    2755            0 :             Type::PPC_GOT16_HA => 0x40000011,
    2756            0 :             Type::PPC_PLTREL24 => 0x40000012,
    2757            0 :             Type::PPC_JMP_SLOT => 0x40000015,
    2758            0 :             Type::PPC_RELATIVE => 0x40000016,
    2759            0 :             Type::PPC_LOCAL24PC => 0x40000017,
    2760            0 :             Type::PPC_REL32 => 0x4000001a,
    2761            0 :             Type::PPC_TLS => 0x40000043,
    2762            0 :             Type::PPC_DTPMOD32 => 0x40000044,
    2763            0 :             Type::PPC_TPREL16 => 0x40000045,
    2764            0 :             Type::PPC_TPREL16_LO => 0x40000046,
    2765            0 :             Type::PPC_TPREL16_HI => 0x40000047,
    2766            0 :             Type::PPC_TPREL16_HA => 0x40000048,
    2767            0 :             Type::PPC_TPREL32 => 0x40000049,
    2768            0 :             Type::PPC_DTPREL16 => 0x4000004a,
    2769            0 :             Type::PPC_DTPREL16_LO => 0x4000004b,
    2770            0 :             Type::PPC_DTPREL16_HI => 0x4000004c,
    2771            0 :             Type::PPC_DTPREL16_HA => 0x4000004d,
    2772            0 :             Type::PPC_DTPREL32 => 0x4000004e,
    2773            0 :             Type::PPC_GOT_TLSGD16 => 0x4000004f,
    2774            0 :             Type::PPC_GOT_TLSGD16_LO => 0x40000050,
    2775            0 :             Type::PPC_GOT_TLSGD16_HI => 0x40000051,
    2776            0 :             Type::PPC_GOT_TLSGD16_HA => 0x40000052,
    2777            0 :             Type::PPC_GOT_TLSLD16 => 0x40000053,
    2778            0 :             Type::PPC_GOT_TLSLD16_LO => 0x40000054,
    2779            0 :             Type::PPC_GOT_TLSLD16_HI => 0x40000055,
    2780            0 :             Type::PPC_GOT_TLSLD16_HA => 0x40000056,
    2781            0 :             Type::PPC_GOT_TPREL16 => 0x40000057,
    2782            0 :             Type::PPC_GOT_TPREL16_LO => 0x40000058,
    2783            0 :             Type::PPC_GOT_TPREL16_HI => 0x40000059,
    2784            0 :             Type::PPC_GOT_TPREL16_HA => 0x4000005a,
    2785            0 :             Type::PPC_GOT_DTPREL16 => 0x4000005b,
    2786            0 :             Type::PPC_GOT_DTPREL16_LO => 0x4000005c,
    2787            0 :             Type::PPC_GOT_DTPREL16_HI => 0x4000005d,
    2788            0 :             Type::PPC_GOT_DTPREL16_HA => 0x4000005e,
    2789            0 :             Type::PPC_TLSGD => 0x4000005f,
    2790            0 :             Type::PPC_TLSLD => 0x40000060,
    2791            0 :             Type::PPC_REL16 => 0x400000f9,
    2792            0 :             Type::PPC_REL16_LO => 0x400000fa,
    2793            0 :             Type::PPC_REL16_HI => 0x400000fb,
    2794            0 :             Type::PPC_REL16_HA => 0x400000fc,
    2795            0 :             Type::PPC64_NONE => 0x48000000,
    2796            0 :             Type::PPC64_ADDR32 => 0x48000001,
    2797            0 :             Type::PPC64_ADDR24 => 0x48000002,
    2798            0 :             Type::PPC64_ADDR16 => 0x48000003,
    2799            0 :             Type::PPC64_ADDR16_LO => 0x48000004,
    2800            0 :             Type::PPC64_ADDR16_HI => 0x48000005,
    2801            0 :             Type::PPC64_ADDR16_HA => 0x48000006,
    2802            0 :             Type::PPC64_ADDR14 => 0x48000007,
    2803            0 :             Type::PPC64_ADDR14_BRTAKEN => 0x48000008,
    2804            0 :             Type::PPC64_ADDR14_BRNTAKEN => 0x48000009,
    2805            0 :             Type::PPC64_REL24 => 0x4800000a,
    2806            0 :             Type::PPC64_REL14 => 0x4800000b,
    2807            0 :             Type::PPC64_REL14_BRTAKEN => 0x4800000c,
    2808            0 :             Type::PPC64_REL14_BRNTAKEN => 0x4800000d,
    2809            0 :             Type::PPC64_GOT16 => 0x4800000e,
    2810            0 :             Type::PPC64_GOT16_LO => 0x4800000f,
    2811            0 :             Type::PPC64_GOT16_HI => 0x48000010,
    2812            0 :             Type::PPC64_GOT16_HA => 0x48000011,
    2813            0 :             Type::PPC64_JMP_SLOT => 0x48000015,
    2814            0 :             Type::PPC64_RELATIVE => 0x48000016,
    2815            0 :             Type::PPC64_REL32 => 0x4800001a,
    2816            0 :             Type::PPC64_ADDR64 => 0x48000026,
    2817            0 :             Type::PPC64_ADDR16_HIGHER => 0x48000027,
    2818            0 :             Type::PPC64_ADDR16_HIGHERA => 0x48000028,
    2819            0 :             Type::PPC64_ADDR16_HIGHEST => 0x48000029,
    2820            0 :             Type::PPC64_ADDR16_HIGHESTA => 0x4800002a,
    2821            0 :             Type::PPC64_REL64 => 0x4800002c,
    2822            0 :             Type::PPC64_TOC16 => 0x4800002f,
    2823            0 :             Type::PPC64_TOC16_LO => 0x48000030,
    2824            0 :             Type::PPC64_TOC16_HI => 0x48000031,
    2825            0 :             Type::PPC64_TOC16_HA => 0x48000032,
    2826            0 :             Type::PPC64_TOC => 0x48000033,
    2827            0 :             Type::PPC64_ADDR16_DS => 0x48000038,
    2828            0 :             Type::PPC64_ADDR16_LO_DS => 0x48000039,
    2829            0 :             Type::PPC64_GOT16_DS => 0x4800003a,
    2830            0 :             Type::PPC64_GOT16_LO_DS => 0x4800003b,
    2831            0 :             Type::PPC64_TOC16_DS => 0x4800003f,
    2832            0 :             Type::PPC64_TOC16_LO_DS => 0x48000040,
    2833            0 :             Type::PPC64_TLS => 0x48000043,
    2834            0 :             Type::PPC64_DTPMOD64 => 0x48000044,
    2835            0 :             Type::PPC64_TPREL16 => 0x48000045,
    2836            0 :             Type::PPC64_TPREL16_LO => 0x48000046,
    2837            0 :             Type::PPC64_TPREL16_HI => 0x48000047,
    2838            0 :             Type::PPC64_TPREL16_HA => 0x48000048,
    2839            0 :             Type::PPC64_TPREL64 => 0x48000049,
    2840            0 :             Type::PPC64_DTPREL16 => 0x4800004a,
    2841            0 :             Type::PPC64_DTPREL16_LO => 0x4800004b,
    2842            0 :             Type::PPC64_DTPREL16_HI => 0x4800004c,
    2843            0 :             Type::PPC64_DTPREL16_HA => 0x4800004d,
    2844            0 :             Type::PPC64_DTPREL64 => 0x4800004e,
    2845            0 :             Type::PPC64_GOT_TLSGD16 => 0x4800004f,
    2846            0 :             Type::PPC64_GOT_TLSGD16_LO => 0x48000050,
    2847            0 :             Type::PPC64_GOT_TLSGD16_HI => 0x48000051,
    2848            0 :             Type::PPC64_GOT_TLSGD16_HA => 0x48000052,
    2849            0 :             Type::PPC64_GOT_TLSLD16 => 0x48000053,
    2850            0 :             Type::PPC64_GOT_TLSLD16_LO => 0x48000054,
    2851            0 :             Type::PPC64_GOT_TLSLD16_HI => 0x48000055,
    2852            0 :             Type::PPC64_GOT_TLSLD16_HA => 0x48000056,
    2853            0 :             Type::PPC64_GOT_TPREL16_DS => 0x48000057,
    2854            0 :             Type::PPC64_GOT_TPREL16_LO_DS => 0x48000058,
    2855            0 :             Type::PPC64_GOT_TPREL16_HI => 0x48000059,
    2856            0 :             Type::PPC64_GOT_TPREL16_HA => 0x4800005a,
    2857            0 :             Type::PPC64_GOT_DTPREL16_DS => 0x4800005b,
    2858            0 :             Type::PPC64_GOT_DTPREL16_LO_DS => 0x4800005c,
    2859            0 :             Type::PPC64_GOT_DTPREL16_HI => 0x4800005d,
    2860            0 :             Type::PPC64_GOT_DTPREL16_HA => 0x4800005e,
    2861            0 :             Type::PPC64_TPREL16_DS => 0x4800005f,
    2862            0 :             Type::PPC64_TPREL16_LO_DS => 0x48000060,
    2863            0 :             Type::PPC64_TPREL16_HIGHER => 0x48000061,
    2864            0 :             Type::PPC64_TPREL16_HIGHERA => 0x48000062,
    2865            0 :             Type::PPC64_TPREL16_HIGHEST => 0x48000063,
    2866            0 :             Type::PPC64_TPREL16_HIGHESTA => 0x48000064,
    2867            0 :             Type::PPC64_DTPREL16_DS => 0x48000065,
    2868            0 :             Type::PPC64_DTPREL16_LO_DS => 0x48000066,
    2869            0 :             Type::PPC64_DTPREL16_HIGHER => 0x48000067,
    2870            0 :             Type::PPC64_DTPREL16_HIGHERA => 0x48000068,
    2871            0 :             Type::PPC64_DTPREL16_HIGHEST => 0x48000069,
    2872            0 :             Type::PPC64_DTPREL16_HIGHESTA => 0x4800006a,
    2873            0 :             Type::PPC64_TLSGD => 0x4800006b,
    2874            0 :             Type::PPC64_TLSLD => 0x4800006c,
    2875            0 :             Type::PPC64_REL16 => 0x480000f9,
    2876            0 :             Type::PPC64_REL16_LO => 0x480000fa,
    2877            0 :             Type::PPC64_REL16_HI => 0x480000fb,
    2878            0 :             Type::PPC64_REL16_HA => 0x480000fc,
    2879            0 :             Type::SPARC_NONE => 0x50000000,
    2880            0 :             Type::SPARC_8 => 0x50000001,
    2881            0 :             Type::SPARC_16 => 0x50000002,
    2882            0 :             Type::SPARC_32 => 0x50000003,
    2883            0 :             Type::SPARC_DISP8 => 0x50000004,
    2884            0 :             Type::SPARC_DISP16 => 0x50000005,
    2885            0 :             Type::SPARC_DISP32 => 0x50000006,
    2886            0 :             Type::SPARC_WDISP30 => 0x50000007,
    2887            0 :             Type::SPARC_WDISP22 => 0x50000008,
    2888            0 :             Type::SPARC_HI22 => 0x50000009,
    2889            0 :             Type::SPARC_22 => 0x5000000a,
    2890            0 :             Type::SPARC_13 => 0x5000000b,
    2891            0 :             Type::SPARC_LO10 => 0x5000000c,
    2892            0 :             Type::SPARC_GOT10 => 0x5000000d,
    2893            0 :             Type::SPARC_GOT13 => 0x5000000e,
    2894            0 :             Type::SPARC_GOT22 => 0x5000000f,
    2895            0 :             Type::SPARC_PC10 => 0x50000010,
    2896            0 :             Type::SPARC_PC22 => 0x50000011,
    2897            0 :             Type::SPARC_WPLT30 => 0x50000012,
    2898            0 :             Type::SPARC_COPY => 0x50000013,
    2899            0 :             Type::SPARC_GLOB_DAT => 0x50000014,
    2900            0 :             Type::SPARC_JMP_SLOT => 0x50000015,
    2901            0 :             Type::SPARC_RELATIVE => 0x50000016,
    2902            0 :             Type::SPARC_UA32 => 0x50000017,
    2903            0 :             Type::SPARC_PLT32 => 0x50000018,
    2904            0 :             Type::SPARC_HIPLT22 => 0x50000019,
    2905            0 :             Type::SPARC_LOPLT10 => 0x5000001a,
    2906            0 :             Type::SPARC_PCPLT32 => 0x5000001b,
    2907            0 :             Type::SPARC_PCPLT22 => 0x5000001c,
    2908            0 :             Type::SPARC_PCPLT10 => 0x5000001d,
    2909            0 :             Type::SPARC_10 => 0x5000001e,
    2910            0 :             Type::SPARC_11 => 0x5000001f,
    2911            0 :             Type::SPARC_64 => 0x50000020,
    2912            0 :             Type::SPARC_OLO10 => 0x50000021,
    2913            0 :             Type::SPARC_HH22 => 0x50000022,
    2914            0 :             Type::SPARC_HM10 => 0x50000023,
    2915            0 :             Type::SPARC_LM22 => 0x50000024,
    2916            0 :             Type::SPARC_PC_HH22 => 0x50000025,
    2917            0 :             Type::SPARC_PC_HM10 => 0x50000026,
    2918            0 :             Type::SPARC_PC_LM22 => 0x50000027,
    2919            0 :             Type::SPARC_WDISP16 => 0x50000028,
    2920            0 :             Type::SPARC_WDISP19 => 0x50000029,
    2921            0 :             Type::SPARC_7 => 0x5000002b,
    2922            0 :             Type::SPARC_5 => 0x5000002c,
    2923            0 :             Type::SPARC_6 => 0x5000002d,
    2924            0 :             Type::SPARC_DISP64 => 0x5000002e,
    2925            0 :             Type::SPARC_PLT64 => 0x5000002f,
    2926            0 :             Type::SPARC_HIX22 => 0x50000030,
    2927            0 :             Type::SPARC_LOX10 => 0x50000031,
    2928            0 :             Type::SPARC_H44 => 0x50000032,
    2929            0 :             Type::SPARC_M44 => 0x50000033,
    2930            0 :             Type::SPARC_L44 => 0x50000034,
    2931            0 :             Type::SPARC_REGISTER => 0x50000035,
    2932            0 :             Type::SPARC_UA64 => 0x50000036,
    2933            0 :             Type::SPARC_UA16 => 0x50000037,
    2934            0 :             Type::SPARC_TLS_GD_HI22 => 0x50000038,
    2935            0 :             Type::SPARC_TLS_GD_LO10 => 0x50000039,
    2936            0 :             Type::SPARC_TLS_GD_ADD => 0x5000003a,
    2937            0 :             Type::SPARC_TLS_GD_CALL => 0x5000003b,
    2938            0 :             Type::SPARC_TLS_LDM_HI22 => 0x5000003c,
    2939            0 :             Type::SPARC_TLS_LDM_LO10 => 0x5000003d,
    2940            0 :             Type::SPARC_TLS_LDM_ADD => 0x5000003e,
    2941            0 :             Type::SPARC_TLS_LDM_CALL => 0x5000003f,
    2942            0 :             Type::SPARC_TLS_LDO_HIX22 => 0x50000040,
    2943            0 :             Type::SPARC_TLS_LDO_LOX10 => 0x50000041,
    2944            0 :             Type::SPARC_TLS_LDO_ADD => 0x50000042,
    2945            0 :             Type::SPARC_TLS_IE_HI22 => 0x50000043,
    2946            0 :             Type::SPARC_TLS_IE_LO10 => 0x50000044,
    2947            0 :             Type::SPARC_TLS_IE_LD => 0x50000045,
    2948            0 :             Type::SPARC_TLS_IE_LDX => 0x50000046,
    2949            0 :             Type::SPARC_TLS_IE_ADD => 0x50000047,
    2950            0 :             Type::SPARC_TLS_LE_HIX22 => 0x50000048,
    2951            0 :             Type::SPARC_TLS_LE_LOX10 => 0x50000049,
    2952            0 :             Type::SPARC_TLS_DTPMOD32 => 0x5000004a,
    2953            0 :             Type::SPARC_TLS_DTPMOD64 => 0x5000004b,
    2954            0 :             Type::SPARC_TLS_DTPOFF32 => 0x5000004c,
    2955            0 :             Type::SPARC_TLS_DTPOFF64 => 0x5000004d,
    2956            0 :             Type::SPARC_TLS_TPOFF32 => 0x5000004e,
    2957            0 :             Type::SPARC_TLS_TPOFF64 => 0x5000004f,
    2958            0 :             Type::SPARC_GOTDATA_HIX22 => 0x50000050,
    2959            0 :             Type::SPARC_GOTDATA_LOX10 => 0x50000051,
    2960            0 :             Type::SPARC_GOTDATA_OP_HIX22 => 0x50000052,
    2961            0 :             Type::SPARC_GOTDATA_OP_LOX10 => 0x50000053,
    2962            0 :             Type::SPARC_GOTDATA_OP => 0x50000054,
    2963            0 :             Type::SYSZ_NONE => 0x58000000,
    2964            0 :             Type::SYSZ_8 => 0x58000001,
    2965            0 :             Type::SYSZ_12 => 0x58000002,
    2966            0 :             Type::SYSZ_16 => 0x58000003,
    2967            0 :             Type::SYSZ_32 => 0x58000004,
    2968            0 :             Type::SYSZ_PC32 => 0x58000005,
    2969            0 :             Type::SYSZ_GOT12 => 0x58000006,
    2970            0 :             Type::SYSZ_GOT32 => 0x58000007,
    2971            0 :             Type::SYSZ_PLT32 => 0x58000008,
    2972            0 :             Type::SYSZ_COPY => 0x58000009,
    2973            0 :             Type::SYSZ_GLOB_DAT => 0x5800000a,
    2974            0 :             Type::SYSZ_JMP_SLOT => 0x5800000b,
    2975            0 :             Type::SYSZ_RELATIVE => 0x5800000c,
    2976            0 :             Type::SYSZ_GOTOFF => 0x5800000d,
    2977            0 :             Type::SYSZ_GOTPC => 0x5800000e,
    2978            0 :             Type::SYSZ_GOT16 => 0x5800000f,
    2979            0 :             Type::SYSZ_PC16 => 0x58000010,
    2980            0 :             Type::SYSZ_PC16DBL => 0x58000011,
    2981            0 :             Type::SYSZ_PLT16DBL => 0x58000012,
    2982            0 :             Type::SYSZ_PC32DBL => 0x58000013,
    2983            0 :             Type::SYSZ_PLT32DBL => 0x58000014,
    2984            0 :             Type::SYSZ_GOTPCDBL => 0x58000015,
    2985            0 :             Type::SYSZ_64 => 0x58000016,
    2986            0 :             Type::SYSZ_PC64 => 0x58000017,
    2987            0 :             Type::SYSZ_GOT64 => 0x58000018,
    2988            0 :             Type::SYSZ_PLT64 => 0x58000019,
    2989            0 :             Type::SYSZ_GOTENT => 0x5800001a,
    2990            0 :             Type::SYSZ_GOTOFF16 => 0x5800001b,
    2991            0 :             Type::SYSZ_GOTOFF64 => 0x5800001c,
    2992            0 :             Type::SYSZ_GOTPLT12 => 0x5800001d,
    2993            0 :             Type::SYSZ_GOTPLT16 => 0x5800001e,
    2994            0 :             Type::SYSZ_GOTPLT32 => 0x5800001f,
    2995            0 :             Type::SYSZ_GOTPLT64 => 0x58000020,
    2996            0 :             Type::SYSZ_GOTPLTENT => 0x58000021,
    2997            0 :             Type::SYSZ_PLTOFF16 => 0x58000022,
    2998            0 :             Type::SYSZ_PLTOFF32 => 0x58000023,
    2999            0 :             Type::SYSZ_PLTOFF64 => 0x58000024,
    3000            0 :             Type::SYSZ_TLS_LOAD => 0x58000025,
    3001            0 :             Type::SYSZ_TLS_GDCALL => 0x58000026,
    3002            0 :             Type::SYSZ_TLS_LDCALL => 0x58000027,
    3003            0 :             Type::SYSZ_TLS_GD32 => 0x58000028,
    3004            0 :             Type::SYSZ_TLS_GD64 => 0x58000029,
    3005            0 :             Type::SYSZ_TLS_GOTIE12 => 0x5800002a,
    3006            0 :             Type::SYSZ_TLS_GOTIE32 => 0x5800002b,
    3007            0 :             Type::SYSZ_TLS_GOTIE64 => 0x5800002c,
    3008            0 :             Type::SYSZ_TLS_LDM32 => 0x5800002d,
    3009            0 :             Type::SYSZ_TLS_LDM64 => 0x5800002e,
    3010            0 :             Type::SYSZ_TLS_IE32 => 0x5800002f,
    3011            0 :             Type::SYSZ_TLS_IE64 => 0x58000030,
    3012            0 :             Type::SYSZ_TLS_IEENT => 0x58000031,
    3013            0 :             Type::SYSZ_TLS_LE32 => 0x58000032,
    3014            0 :             Type::SYSZ_TLS_LE64 => 0x58000033,
    3015            0 :             Type::SYSZ_TLS_LDO32 => 0x58000034,
    3016            0 :             Type::SYSZ_TLS_LDO64 => 0x58000035,
    3017            0 :             Type::SYSZ_TLS_DTPMOD => 0x58000036,
    3018            0 :             Type::SYSZ_TLS_DTPOFF => 0x58000037,
    3019            0 :             Type::SYSZ_TLS_TPOFF => 0x58000038,
    3020            0 :             Type::SYSZ_20 => 0x58000039,
    3021            0 :             Type::SYSZ_GOT20 => 0x5800003a,
    3022            0 :             Type::SYSZ_GOTPLT20 => 0x5800003b,
    3023            0 :             Type::SYSZ_TLS_GOTIE20 => 0x5800003c,
    3024            0 :             Type::SYSZ_IRELATIVE => 0x5800003d,
    3025            0 :             Type::RISCV_NONE => 0x60000000,
    3026            0 :             Type::RISCV_32 => 0x60000001,
    3027            0 :             Type::RISCV_64 => 0x60000002,
    3028            0 :             Type::RISCV_RELATIVE => 0x60000003,
    3029            0 :             Type::RISCV_COPY => 0x60000004,
    3030            0 :             Type::RISCV_JUMP_SLOT => 0x60000005,
    3031            0 :             Type::RISCV_TLS_DTPMOD32 => 0x60000006,
    3032            0 :             Type::RISCV_TLS_DTPMOD64 => 0x60000007,
    3033            0 :             Type::RISCV_TLS_DTPREL32 => 0x60000008,
    3034            0 :             Type::RISCV_TLS_DTPREL64 => 0x60000009,
    3035            0 :             Type::RISCV_TLS_TPREL32 => 0x6000000a,
    3036            0 :             Type::RISCV_TLS_TPREL64 => 0x6000000b,
    3037            0 :             Type::RISCV_TLSDESC => 0x6000000c,
    3038            0 :             Type::RISCV_BRANCH => 0x60000010,
    3039            0 :             Type::RISCV_JAL => 0x60000011,
    3040            0 :             Type::RISCV_CALL => 0x60000012,
    3041            0 :             Type::RISCV_CALL_PLT => 0x60000013,
    3042            0 :             Type::RISCV_GOT_HI20 => 0x60000014,
    3043            0 :             Type::RISCV_TLS_GOT_HI20 => 0x60000015,
    3044            0 :             Type::RISCV_TLS_GD_HI20 => 0x60000016,
    3045            0 :             Type::RISCV_PCREL_HI20 => 0x60000017,
    3046            0 :             Type::RISCV_PCREL_LO12_I => 0x60000018,
    3047            0 :             Type::RISCV_PCREL_LO12_S => 0x60000019,
    3048            0 :             Type::RISCV_HI20 => 0x6000001a,
    3049            0 :             Type::RISCV_LO12_I => 0x6000001b,
    3050            0 :             Type::RISCV_LO12_S => 0x6000001c,
    3051            0 :             Type::RISCV_TPREL_HI20 => 0x6000001d,
    3052            0 :             Type::RISCV_TPREL_LO12_I => 0x6000001e,
    3053            0 :             Type::RISCV_TPREL_LO12_S => 0x6000001f,
    3054            0 :             Type::RISCV_TPREL_ADD => 0x60000020,
    3055            0 :             Type::RISCV_ADD8 => 0x60000021,
    3056            0 :             Type::RISCV_ADD16 => 0x60000022,
    3057            0 :             Type::RISCV_ADD32 => 0x60000023,
    3058            0 :             Type::RISCV_ADD64 => 0x60000024,
    3059            0 :             Type::RISCV_SUB8 => 0x60000025,
    3060            0 :             Type::RISCV_SUB16 => 0x60000026,
    3061            0 :             Type::RISCV_SUB32 => 0x60000027,
    3062            0 :             Type::RISCV_SUB64 => 0x60000028,
    3063            0 :             Type::RISCV_GOT32_PCREL => 0x60000029,
    3064            0 :             Type::RISCV_ALIGN => 0x6000002b,
    3065            0 :             Type::RISCV_RVC_BRANCH => 0x6000002c,
    3066            0 :             Type::RISCV_RVC_JUMP => 0x6000002d,
    3067            0 :             Type::RISCV_RVC_LUI => 0x6000002e,
    3068            0 :             Type::RISCV_RELAX => 0x60000033,
    3069            0 :             Type::RISCV_SUB6 => 0x60000034,
    3070            0 :             Type::RISCV_SET6 => 0x60000035,
    3071            0 :             Type::RISCV_SET8 => 0x60000036,
    3072            0 :             Type::RISCV_SET16 => 0x60000037,
    3073            0 :             Type::RISCV_SET32 => 0x60000038,
    3074            0 :             Type::RISCV_32_PCREL => 0x60000039,
    3075            0 :             Type::RISCV_IRELATIVE => 0x6000003a,
    3076            0 :             Type::RISCV_PLT32 => 0x6000003b,
    3077            0 :             Type::RISCV_SET_ULEB128 => 0x6000003c,
    3078            0 :             Type::RISCV_SUB_ULEB128 => 0x6000003d,
    3079            0 :             Type::RISCV_TLSDESC_HI20 => 0x6000003e,
    3080            0 :             Type::RISCV_TLSDESC_LOAD_LO12 => 0x6000003f,
    3081            0 :             Type::RISCV_TLSDESC_ADD_LO12 => 0x60000040,
    3082            0 :             Type::RISCV_TLSDESC_CALL => 0x60000041,
    3083            0 :             Type::BPF_NONE => 0x68000000,
    3084            0 :             Type::BPF_64_64 => 0x68000001,
    3085            0 :             Type::BPF_64_ABS64 => 0x68000002,
    3086            0 :             Type::BPF_64_ABS32 => 0x68000003,
    3087            0 :             Type::BPF_64_NODYLD32 => 0x68000004,
    3088            0 :             Type::BPF_64_32 => 0x6800000a,
    3089            0 :             Type::UNKNOWN(value) => value,
    3090              : 
    3091              :         }
    3092            0 :     }
    3093              : }
    3094              : 
    3095              : #[allow(non_camel_case_types)]
    3096        16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    3097              : /// The *purpose* of a relocation defines how this relocation is used by the
    3098              : /// loader.
    3099              : pub enum Purpose {
    3100              :     NONE,
    3101              :     /// The relocation is associated with the PLT/GOT resolution
    3102              :     PLTGOT,
    3103              :     /// The relocation is used for regulard data/code relocation
    3104              :     DYNAMIC,
    3105              :     /// The relocation is used in an object file
    3106              :     OBJECT,
    3107              :     UNKNOWN(u32),
    3108              : }
    3109              : 
    3110              : impl Purpose {
    3111        16200 :     pub fn from_value(value: u32) -> Self {
    3112        16200 :         match value {
    3113            0 :             0x00000000 => Purpose::NONE,
    3114         4380 :             0x00000001 => Purpose::PLTGOT,
    3115        10900 :             0x00000002 => Purpose::DYNAMIC,
    3116          920 :             0x00000003 => Purpose::OBJECT,
    3117            0 :             _ => Purpose::UNKNOWN(value),
    3118              : 
    3119              :         }
    3120        16200 :     }
    3121              : }
    3122              : 
    3123              : 
    3124              : #[allow(non_camel_case_types)]
    3125        16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    3126              : pub enum Encoding {
    3127              :     /// The relocation is using the regular Elf_Rel structure
    3128              :     REL,
    3129              :     /// The relocation is using the regular Elf_Rela structure
    3130              :     RELA,
    3131              :     /// The relocation is using the relative relocation format
    3132              :     RELR,
    3133              :     /// The relocation is using the packed Android-SLEB128 format
    3134              :     ANDROID_SLEB,
    3135              :     UNKNOWN(u32),
    3136              : }
    3137              : 
    3138              : impl Encoding {
    3139        27100 :     pub fn from_value(value: u32) -> Self {
    3140        27100 :         match value {
    3141        15220 :             0x00000001 => Encoding::REL,
    3142        11880 :             0x00000002 => Encoding::RELA,
    3143            0 :             0x00000003 => Encoding::RELR,
    3144            0 :             0x00000004 => Encoding::ANDROID_SLEB,
    3145            0 :             _ => Encoding::UNKNOWN(value),
    3146              : 
    3147              :         }
    3148        27100 :     }
    3149              : }
    3150              : 
    3151              : impl Relocation<'_> {
    3152              :     /// Additional value that can be involved in the relocation processing
    3153        16200 :     pub fn addend(&self) -> i64 {
    3154        16200 :         self.ptr.addend()
    3155        16200 :     }
    3156              : 
    3157              :     /// Type of the relocation
    3158        16200 :     pub fn get_type(&self) -> Type {
    3159        16200 :         Type::from(self.ptr.get_type())
    3160        16200 :     }
    3161              : 
    3162              :     /// Check if the relocation uses the explicit [`Relocation::addend`] field
    3163              :     /// (this is usually the case for 64 bits binaries)
    3164         1650 :     pub fn is_rela(&self) -> bool {
    3165         1650 :         self.ptr.is_rela()
    3166         1650 :     }
    3167              : 
    3168              :     /// Check if the relocation uses the implicit addend
    3169              :     /// (i.e. not present in the ELF structure)
    3170         3800 :     pub fn is_rel(&self) -> bool {
    3171         3800 :         self.ptr.is_rel()
    3172         3800 :     }
    3173              : 
    3174              :     /// Relocation info which contains, for instance, the symbol index
    3175        16200 :     pub fn info(&self) -> u32 {
    3176        16200 :         self.ptr.info()
    3177        16200 :     }
    3178              : 
    3179              :     /// Target architecture for this relocation
    3180        16200 :     pub fn architecture(&self) -> u32 {
    3181        16200 :         self.ptr.architecture()
    3182        16200 :     }
    3183              : 
    3184              :     /// The purpose of the relocation
    3185        16200 :     pub fn purpose(&self) -> Purpose {
    3186        16200 :         Purpose::from_value(self.ptr.purpose())
    3187        16200 :     }
    3188              : 
    3189              :     /// The encoding of the relocation
    3190        27100 :     pub fn encoding(&self) -> Encoding {
    3191        27100 :         Encoding::from_value(self.ptr.encoding())
    3192        27100 :     }
    3193              : 
    3194              :     /// Symbol associated with the relocation (if any)
    3195        16200 :     pub fn symbol(&self) -> Option<Symbol> {
    3196        16200 :         into_optional(self.ptr.symbol())
    3197        16200 :     }
    3198              : 
    3199              :     /// The section in which the relocation is applied (if any)
    3200        16200 :     pub fn section(&self) -> Option<Section> {
    3201        16200 :         into_optional(self.ptr.section())
    3202        16200 :     }
    3203              : 
    3204              :     /// The associated symbol table (if any)
    3205        16200 :     pub fn symbol_table(&self) -> Option<Section> {
    3206        16200 :         into_optional(self.ptr.symbol_table())
    3207        16200 :     }
    3208              : 
    3209              :     /// Try to resolve the value of the relocation with the provided base address.
    3210              :     ///
    3211              :     /// The returned value could be used such as: `*address = resolve_with_base_address(...)`
    3212              :     ///
    3213              :     /// See: [`Relocation::resolve`]
    3214            0 :     pub fn resolve_with_base_address(&self, base_address: u64) -> Result<u64, Error> {
    3215            0 :         to_result!(ffi::ELF_Relocation::resolve, &self, base_address);
    3216            0 :     }
    3217              : 
    3218              :     /// Try to resolve the value of the relocation.
    3219              :     /// The returned value could be used such as: `*address = resolve(...)`
    3220              :     ///
    3221              :     /// See: [`Relocation::resolve_with_base_address`]
    3222            0 :     pub fn resolve(&self) -> Result<u64, Error> {
    3223            0 :         self.resolve_with_base_address(0)
    3224            0 :     }
    3225              : }
    3226              : 
    3227              : impl std::fmt::Debug for Relocation<'_> {
    3228        16200 :     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    3229        16200 :         let base = self as &dyn generic::Relocation;
    3230        16200 :         f.debug_struct("Relocation")
    3231        16200 :             .field("base", &base)
    3232        16200 :             .field("addend", &self.addend())
    3233        16200 :             .field("type", &self.get_type())
    3234        16200 :             .field("info", &self.info())
    3235        16200 :             .field("architecture", &self.architecture())
    3236        16200 :             .field("purpose", &self.purpose())
    3237        16200 :             .field("encoding", &self.encoding())
    3238        16200 :             .field("symbol", &self.symbol())
    3239        16200 :             .field("section", &self.section())
    3240        16200 :             .field("symbol_table", &self.symbol_table())
    3241        16200 :             .finish()
    3242        16200 :     }
    3243              : }
    3244              : 
    3245              : impl FromFFI<ffi::ELF_Relocation> for Relocation<'_> {
    3246        16220 :     fn from_ffi(ptr: cxx::UniquePtr<ffi::ELF_Relocation>) -> Self {
    3247        16220 :         Relocation {
    3248        16220 :             ptr,
    3249        16220 :             _owner: PhantomData
    3250        16220 :         }
    3251        16220 :     }
    3252              : }
    3253              : 
    3254              : impl generic::Relocation for Relocation<'_> {
    3255        32400 :     fn as_generic(&self) -> &ffi::AbstractRelocation {
    3256        32400 :         self.ptr.as_ref().unwrap().as_ref()
    3257        32400 :     }
    3258              : }
    3259              : 
    3260         8100 : declare_iterator!(Relocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_relocations);
    3261         2190 : declare_iterator!(PltGotRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_pltgot_relocations);
    3262         5450 : declare_iterator!(DynamicRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_dynamic_relocations);
    3263          460 : declare_iterator!(ObjectRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_object_relocations);
        

Generated by: LCOV version 2.1-1